首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何创建继承其令牌的智能合同工厂?

如何创建继承其令牌的智能合同工厂?
EN

Ethereum用户
提问于 2023-01-19 07:50:33
回答 2查看 35关注 0票数 1

例如,这里有两个合同:

  • 第一个是智能合同工厂,它也实现了一个令牌。
  • 第二种是由smart合同工厂创建的智能合同模型。

因此,问题是,我应该在第二个智能契约中更改什么,以便我可以使用在第一个智能契约中创建的令牌?

我的想法是有一个“国家”(工厂)智能合同,创造自己的令牌,并产生其他“城市”合同。我的目标是,“城市”合同能够买卖在“国家”合同中创造的代币。下面是一个示例代码。

代码语言:javascript
运行
复制
import "./ERC20.sol";

contract SmartContract1 {

 ERC20Basic private token;

 constructor () public {
    token = new ERC20Basic(10000);
    owner = msg.sender;
 }

 function Factory() public {
    address new_contract_address = address (new SmartContract2(msg.sender)); 
 }
}

contract SmartContract2 {

 address public owner;

 constructor (address _direccion) public {
    owner = _direccion;
 }

}
EN

回答 2

Ethereum用户

发布于 2023-01-19 08:13:14

取决于你所说的“使用”是什么意思。如果只想调用其函数,可以导入IERC20接口并按如下方式调用其函数:

代码语言:javascript
运行
复制
(smartContract1Address).transferFrom(from,to,amount);

链接:

代码语言:javascript
运行
复制
https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/IERC20.sol
票数 1
EN

Ethereum用户

发布于 2023-01-19 11:14:42

您可以创建一个修饰符来访问这些令牌契约。您需要的是它的接口和工厂合同中的一些功能来管理子合同的状态。

代码语言:javascript
运行
复制
contract Factory {

    event NewToken(address)


    function createToken() returns bool{
        Token token = new Token(address(this))
        emit NewToken(address(token))    
    }
}

contract Token {

    address factory;

    constructor(address _factory){
        factory = _factory;
    }

    modifier isFactory {
        if(msg.sender !== factory){
            revert("Only the factory can access this");
        }
        _;
    }    

}
票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/143262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档