Vertrag ruft eine andere Vertragsfunktion auf

  • Paritätsversion : 1.6.8
  • Betriebssystem : MacOS
  • Und installiert : Docker

beginnen am

--chain dev

Hier ist Testvertrag 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];
    }
}

Hier ist Aufrufervertrag 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);
    }
}
  • Ausführen von A's testFunc1 & testFunc2 ist Arbeit
  • Das Ausführen von testSend1 von B ist Arbeit
  • warum beim Ausführen von testSend2 von B nichts passiert ist?【eigentlich sollte die ausgewählte Adresse +2 auf Guthaben sein】

Was stimmt nicht mit meinem Vertragscode?

Antworten (1)

Oh, ich habe es verstanden.

Vertrag_A_Adresse.Anruf

sollte sein:

A a = A(Vertrag_A_Adresse);

a.testFunc2(_to, _value);

Vergessen Sie nicht, Ihre Frage als angenommen zu markieren.