我在学稳固的东西。
我想写一个复杂的演示场景来测试坚固性和智能契约的威力。
我对智能合同之间的互动表示怀疑。
如果有很多聪明的合同,那么它们之间的最佳互动方式是什么呢?
pragma solidity ^0.6.0;
contract HelloWord
{
string hello= "Hi buddy";
function getSaluto () public view returns (string memory saluto ){
return hello;
}
}另一个具有另一个合同的文件:
pragma solidity ^0.6.0;
import "HelloWord.sol";
contract ContractA is HelloWord
{
event LogString(
string errore,
string saluto
);
receive() external payable {
emit LogString("errore receive saluto " , HelloWord.getSaluto() ); //call to HelloWord function
}
}但是,这是与另一个契约交互的最佳方式吗?
非常感谢。
发布于 2020-04-07 12:45:22
在您的示例中,智能契约之间没有交互。HelloWord.getSaluto()实际上是一个内部调用,即您的智能契约调用自己的函数,仅在基本智能契约中定义。真正的交互场景如下所示:
contract A {
uint state = 0;
function foo (uint x) public returns (uint) {
return state += x;
}
}
contract B {
A a;
constructor (A _a) public {
a = _a;
}
function bar (uint y) public {
emit Zoo (a.foo (y));
}
event Zoo (uint z);
}https://ethereum.stackexchange.com/questions/82225
复制相似问题