Go项目中将Solidity合约部署到区块链

1: 开发Solidity自能合约

        可以选择remix上或者其他地方,开发好并且初步调试好自能合约  

2:准备 go 项目环境

        将代码导入到go 项目

        如果有导入外部合约,则需要准备npm来管理,这些包如果没有导入外部合约 请忽略

        2.1  初始化Node.js项目(并且导入外部合约)

                (1)npm init -y        

                (2)npm install @openzeppelin/contracts @chainlink/contracts

    

3. 编译Solidity合约

使用solc编译器编译你的Solidity合约。确保你已经在系统上安装了solc

  1. 安装Solidity编译器(如果尚未安装):

    npm install -g solc 
  2. 编译合约

    在项目根目录下,运行以下命令编译合约:

    solc --abi --bin contracts/NFT721Token.sol -o build/nft721 
    • --abi:生成合约的ABI文件。
    • --bin:生成合约的字节码文件。
    • -o build:指定输出目录为build文件夹。
    • 如果编译报错 {}
    • 是因为没指定有可能  node_modules/ 目录编译的时候在不到  node_modules 可以修改编译命令 
    • solc --base-path . --include-path node_modules/ --abi --bin contracts/NFTMarketplace/AuthorizedContract.sol -o build/AuthorizedContract

     4. 生成Go绑定代码                   

                检查是否已经安装好工具  

                       终端输入 abigen --version

                如果没有安装好 则需要 安装

                安装步骤

                        1. 终端输入 go get -u github.com/ethereum/go-ethereum  导入包

调转到包所在的文件夹

在终端进入文件

cd /*******/pkg/mod/github.com/ethereum/go-ethereum@v1.14.7

编译项目 go-ethereum@$ sudo make && make devtools

编译完成后,abigen工具会被放置在你的Go工作区的bin目录中。

运行以下命令,指定ABI和BIN文件的路径,并输出到一个新的Go文件中:

 

使用abigen生成Go绑定代码

假设你已经在build/NFT721目录中拥有NFT721Token.abiNFT721Token.bin文件,使用abigen命令来生成Go绑定代码:

  1. 运行abigen命令

    运行以下命令,指定ABI和BIN文件的路径,并输出到一个新的Go文件中:

    abigen --bin=build/NFT721/NFT721Token.bin --abi=build/NFT721/NFT721Token.abi --pkg=nft721token --out=nft721token.go

    参数说明:

    • --bin=build/NFT721/NFT721Token.bin:指定合约的字节码文件。
    • --abi=build/NFT721/NFT721Token.abi:指定合约的ABI文件。
    • --pkg=nft721token:指定生成的Go代码所属的包名。
    • --out=nft721token.go:指定生成的Go文件名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值