请检查此代码:
contract Token is StandardToken {
function transfer(address _to, uint256 _value) public returns (bool success) {
return super.transfer(_to, _value);
}
}
contract CrowdSale {
token = Token(:address)
function buyToken() payable {
token.transfer(beneficiary,tokenAmount); // OPERATION A
anotherAddress.transfer(msg.value); // OPERATION B
}
}
在上面的示例中,将在同一块中调用OPERATION A和OPERATION B吗?
或者调用buyToken调用token.transfer并等待它被挖掘,然后在第一次挖掘后在下一个块中调用anotherAddress.transfer?
答案 0 :(得分:1)
我认为你在这里误解了一些概念。块注册事务。
交易是调用方法,部署合同,“移动合同状态”的事实。
简单来说:是的,另一个合同调用的合同将在同一个区块中调用,因为区块不包含指令本身但是交易的结果强>。
为了能够通过逻辑给出事务的结果,整个指令需要在相同的块上处理,否则矿工无法确定事务是否有效然后将其注册到块中。