Gop*_*ram 6 polygon ethereum erc20 ibm-blockchain binance-smart-chain
我想在不同的区块链上部署自己的ERC-20代币,那么是否有可能在不同的区块链上部署相同的代币合约。如果我们这样做,我们就不能为三个区块链提供相同的名称和符号。谁能告诉我这个问题的解决方案是什么?或者我们可以将具有相同合约地址的合约部署在三个区块链上吗?
我们可以在三个区块链上部署具有相同合约地址的合约吗?
这取决于您要部署到的网络以及您要部署的地址。假设您选择的网络具有相同的 1) 地址格式和 2) 已部署合约地址的计算 - 那么是的,您将能够在多个网络上的同一地址上部署您的合约。
例如,以太坊和 BSC 确实具有这两个功能。但是,尽管 Tron 网络支持 EVM 兼容的智能合约,但它计算地址的方式不同,因此不可能在 Tron 网络上部署与以太坊或 BSC 相同地址的合约。
将合约部署到多个网络上的同一地址的关键是从同一地址进行部署,并使用相同的参数:
对于常规CREATE操作码,部署合约的交易需要在所有网络上具有相同nonce(和相同from)的值。
或者,如果您使用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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2974 次 |
| 最近记录: |