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

相关推荐
我是前端小学生11 小时前
一文了解以太坊合约事件解析
智能合约
CryptoPP13 小时前
使用WebSocket实时获取印度股票数据源(无调用次数限制)实战
后端·python·websocket·网络协议·区块链
全干engineer17 小时前
Web3 借贷与清算机制全解析:链上金融的运行逻辑
金融·web3·去中心化·区块链·智能合约
禺垣21 小时前
区块链技术概述
大数据·人工智能·分布式·物联网·去中心化·区块链
区块链蓝海2 天前
Fluence推出“Pointless计划”:五种方式参与RWA算力资产新时代
web3·区块链
weixin_442316982 天前
北京大学肖臻老师《区块链技术与应用》公开课:12-BTC-比特币的匿名性
区块链
科技快报3 天前
微算法科技(NASDAQ:MLGO)基于信任的集成共识和灰狼优化(GWO)算法,搭建高信任水平的区块链网络
科技·区块链
电报号dapp1193 天前
加密货币钱包开发指南:多链资产管理与非托管安全范式
安全·web3·去中心化·区块链·智能合约
这儿有一堆花3 天前
比特币:固若金汤的数字堡垒与它的四道防线
算法·区块链·哈希算法
穗余3 天前
NodeJS全栈WEB3面试题——P2智能合约与 Solidity
web3·区块链·智能合约