1
Maker 계약에서 Taker 계약의 새 인스턴스를 만들고 값을 보내려고합니다.다른 계약의 함수 호출하기 견고 함
그런 다음 나중에 나는 "변화"라는 기능을 발견하고 오류가 발생 할 수 그러나 테이커 계약
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);
^----------^
(이 브라우저 견고성, 에테 리움 스튜디오와 트러플에 테스트 - 같은 오류 메시지가 모든)
다음은 전체 코드입니다.
이 문제를 해결하는 방법에 대한 조언이 있으면 매우 감사 할 것입니다.
감사합니다.
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);
}
}