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来预测新合约的地址。

相关推荐
北冥you鱼1 天前
OpenZeppelin Contracts 完全指南:从入门到精通,构建安全的智能合约
安全·区块链·智能合约
财迅通Ai2 天前
科源制药领投企业航脑科技布局梳理:北大实验室、EXROBOT与工作犬脑电课题
人工智能·科技·区块链·科源制药
ZDGJ60992 天前
外盘与国内期货交易品种核心区
区块链
维克兜率天3 天前
【维克】量化交易的法律边界:程序化交易和“拔网线“的区别
区块链
Web3_Daisy3 天前
什么是 Robinhood Chain?
大数据·人工智能·web3·区块链
黄焖鸡能干四碗3 天前
IT数据架构规划设计方案(PPT文件)
大数据·网络·数据库·人工智能·架构·区块链
cmes_love4 天前
CME、LME、CBOT、NYMEX等交易所外盘期货tick和分钟历史行情数据下载和分析
数据库·区块链
应用市场4 天前
# 从零搭建一个 Kraken 永续合约量化交易机器人:架构设计、踩坑实录与风险思考
区块链
双缝观察者4 天前
现金兑换虚拟资产,技术追溯与角色切割
区块链
北冥you鱼5 天前
ERC-20 代币实战:从铸造到转账的完整开发指南
区块链