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

相关推荐
CTA终结者11 小时前
期货量化主力换月程序怎么移仓:天勤 underlying_symbol 与任务切换
python·区块链
小Q的编程笔记15 小时前
Pump.fun 的核心是什么?用 300 行 Solidity 实现 Bonding Curve 与自动 LP 销毁
前端·后端·智能合约
CTA量化套保18 小时前
期货量化临期合约还能不能做:程序化到期禁开与强平写法
python·区块链
下午写HelloWorld18 小时前
【概念与应用】轻量级加密算法LEA、动态脱敏算法DDA、零知识证明ZKP和优化协同交互协议OCIP
算法·区块链·密码学·安全架构·零知识证明
2601_9563198820 小时前
期货报单被拒怎么识别与处理:order 状态与 last_msg 用法
python·区块链
CryptoPP1 天前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
栗子~~1 天前
ethers - 区块链变更链上状态与在确认(对账)说明
区块链
Jinkxs1 天前
Java 跨域14-Java 与区块链(Hyperledger)集成
java·开发语言·区块链
cmes_love1 天前
期货Level 2五档Tick历史数据详解
区块链
Man on the moon1 天前
Solidity 零基础入门:从语法到实战,快速掌握智能合约开发
web3·区块链·智能合约