solidity合约创建

合约可以通过使用new关键字来创建其他合约的实例。

这个过程会执行被创建合约的构造函数(如果存在的话),并返回一个指向新创建合约的地址的引用。

这种方式允许智能合约动态地在区块链上部署新合约,并与它们交互。

通过 new 创建合约

当你在使用new关键字创建一个合约实例时,这个新创建的合约会被部署到以太坊区块链上,并且会有一个独一无二的地址与之对应。

这个地址是合约在区块链上的唯一标识,可以用来与合约进行交互。 也可以单独交互

javascript 复制代码
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

contract A {
    function getName() public pure returns (string memory) {
        return "success";
    }
}

contract C {
    // 通过new 创建一个合约
    A public ac = new A();

    function getAc() public view returns (address) {
        return address(ac);
    }

    function createA() public {
        A a = new A();
        a.getName();
    }
}

注释事项:

合约地址是通过创建合约的地址和该地址所发起的交易数量(也被称作"nonce")来生成的。

每当一个地址发起一个新的交易,它的nonce就会增加。

这种方式下,合约地址的生成是预定的,即在交易被矿工处理之前,就可以根据发起者地址和其当前的nonce来预测新合约的地址。

相关推荐
小攻城狮长成ing2 小时前
从0开始学区块链第12天—如何使用可见性标识符
web3·区块链·智能合约·solidity·以太坊
小小测试开发4 小时前
Python Web3库入门:从零开始与以太坊区块链交互
python·web3·区块链
旺仔Sec4 小时前
2025年江西省职业院校技能大赛高职组“区块链技术应用”任务书(3卷)
区块链
软件工程小施同学12 小时前
区块链论文速读 CCF A--USENIX Security 2025(3)
区块链
热心网友俣先生14 小时前
2025年大湾区杯粤港澳金融数模竞赛B题完整数据集分享
金融·区块链
旺仔Sec16 小时前
2025年江西省职业院校技能大赛高职组“区块链技术应用”任务书(2卷)
区块链
懒猫gg16 小时前
Paillier 同态加密
区块链·同态加密
阿登林1 天前
区块链技术在生产数据管理中的应用:Hyperledger Fabric与蚂蚁链智能合约设计
区块链·智能合约·fabric
Ashlee_code1 天前
**新一代券商与机构专业交易系统开发:从国际金融变局到技术架构重构**
重构·架构·系统架构·区块链·私募·柜台·中资券商
CryptoRzz1 天前
印度实时股票数据源接口对接文档-IPO新股、k线数据
java·开发语言·数据库·区块链