1
我試圖從Maker合同中創建一個Taker合同的新實例,並向它發送一些值。來自其他合同的調用函數solidity
再後來我想從合同刺輥
maker.change.value(5)(y);
但是它不能找到所謂的「變化」的功能,並引發錯誤發送的值回製作合同。我能想到的唯一可能的解釋是它們需要異步執行,但是同時編譯。
Untitled:27:3: Error: Member "change" not found or not visible after argument-dependent lookup in address
maker.change.value(5)(y);
^----------^
(這在瀏覽器密實度,復仇Studio和松露測試 - 都具有相同的錯誤消息)
以下是完整代碼。
我將非常感謝任何關於如何解決這個(和或參考)的建議。
謝謝!
pragma solidity ^0.4.2;
contract Maker {
uint x;
function Maker() {
x = 5;
Taker take = new Taker(this, 2);
bool a = take.call.gas(200000).value(10)();
}
function change(uint val) external payable {
x = val;
}
}
contract Taker {
uint y;
address maker;
function Taker(address makerAddr, uint val) {
y = val;
maker = makerAddr;
}
function sendChange() {
maker.change.value(5)(y);
}
}