- Versión de paridad : 1.6.8
- Sistema operativo : Mac OS
- E instalado : ventana acoplable
comienza en
--desarrollo de cadena
aquí está el contrato de prueba A
contract A {
mapping (address => uint256) balances;
function testFunc1(address _to, uint256 _value) {
balances[_to] += _value;
}
function testFunc2(address _to, uint256 _value) {
balances[_to] += 1;
balances[_to] += 1;
}
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
}
aquí está el contrato de invocador B
contract B {
function testSend1(address _contract, address _to, uint256 _value) {
_contract.call.gas(400000)(bytes4(keccak256("testFunc1(address,uint256)")), _to, _value);
}
function testSend2(address _contract, address _to, uint256 _value) {
_contract.call.gas(400000)(bytes4(keccak256("testFunc2(address,uint256)")), _to, _value);
}
}
- ejecutar testFunc1 y testFunc2 de A funciona
- ejecutar testSend1 de B es trabajo
- ¿Por qué ejecutar testSend2 de B no pasó nada? 【en realidad, la dirección seleccionada debería hacer +2 en los saldos】
¿Qué tiene de malo mi código de contrato?
Oh lo tengo.
contract_A_address.call
debería ser:
A a = A(contrato_A_dirección);
a.testFunc2(_a, _valor);
q9f