【问题标题】:Can we deploy same ERC20-token on different blockchains?我们可以在不同的区块链上部署相同的 ERC20 代币吗?
【发布时间】:2021-10-18 11:56:43
【问题描述】:

我想在不同的区块链上部署我自己的 ERC-20 代币,那么有没有可能在不同的区块链上部署相同的代币合约。如果我们这样做,我们就不能为三个区块链提供相同的名称和符号。谁能告诉我这个问题的解决方案是什么?或者我们可以在三个区块链上部署具有相同合约地址的合约吗?

【问题讨论】:

    标签: ethereum polygon ibm-blockchain erc20 binance-smart-chain


    【解决方案1】:

    我们可以在三个区块链上部署具有相同合约地址的合约吗?

    这取决于您要部署到的网络和您要部署的地址。假设您选择的网络具有相同的 1) 地址格式和 2) 已部署合约地址的计算 - 那么是的,您将能够在多个网络上的同一地址上部署您的合约。

    例如,以太坊和 BSC 确实具有这两个功能。但即使波场网络支持与 EVM 兼容的智能合约,它的地址计算方式也不同,因此无法将合约部署在与以太坊或 BSC 上相同的地址的波场网络上。

    在多个网络上部署合约到同一个地址的关键是从同一个地址部署,并使用相同的参数:

    1. 对于常规的CREATE 操作码,部署合约的交易需要在所有网络中具有相同的nonce(和相同的from)值。

    2. 或者,如果您使用CREATE2 操作码,您需要传递相同的合约字节码、相同的盐(到CREATE2),并且再次,您需要从相同的地址发送部署交易。


    如果我们这样做,我们就不能为三个区块链提供相同的名称和符号

    这在技术上是可行的,所以我假设这“只是”您的业务案例或您正在使用的某些工具的限制,或者可能是对 ERC-20 标准如何工作的简单误解。

    pragma solidity ^0.8;
    
    contract MyToken {
        string public constant name = "MyToken";
        string public constant symbol = "MyT";
        
        // TODO rest of your token contract source code
    }
    

    【讨论】:

      猜你喜欢
      • 2019-01-24
      • 2018-09-10
      • 2019-01-08
      • 2021-01-29
      • 1970-01-01
      • 2021-02-16
      • 2011-04-28
      • 1970-01-01
      • 2015-02-27
      相关资源
      最近更新 更多