CTool是PlatON网络钱包交易及合约交易的综合工具,方便使用者在PlatON网络上安全,方便地进行生成钱包,转账,合约交易等操作,此文档介绍了合约工具的运行环境和工具的使用方法。
出于对钱包和私钥管理安全性的要求,需要准备两套操作环境:
-
一套离线的操作环境,专门用于生成普通钱包和HD钱包,并保管钱包和私钥,以及对交易文件的离线签名,包括批量质押,批量转账、批量锁仓,批量合约等交易文件的离线签名。
-
一套在线的操作环境,用于向 PlatON 公链发送已经完成离线签名的交易,包括批量质押,批量转账、批量锁仓、批量合约等交易。
本文档按照如下操作流程进行描述:
一台没有 wifi 网线等网络链接的 windows10 系统电脑。
一个包括 CTool安装包 CTool.exe
的U盘。
一个存储数据的U盘,用于在离线机器和在线机器之间拷贝数据。
安全考虑,离线CTool应该安装在离线机器(不连接任何网络和WIFI)上。
step1. 下载CTool安装包
下载路径待定。
step2. 通过安全存储介质(移动U盘或者移动硬盘)将安装文件 CTool.exe
转到离线机器下
step3. 在离线机器上安装CTool
双击 CTool.exe
进行安装。默认安装目录为 C:\CTool
, 建议不要更改此安装目录。弹出界面显示Completing the CTool Setup Wizard信息表示安装成功,点击Finish即可。
为支持链的 chain-id 不同版本之间的变化,增加配置文件更改链id以及ip和rpc端口。配置文件路径: C:\CTool\bin\config\config.json
,配置文件模板如下:
{
"wallet_file_base_dir": "C:\CTool\keystore\",
"prikey_file_base_dir": "C:\CTool\priatekey\",
"validator_file_base_dir": "C:\CTool\validator\",
"unsigned_transaction_file_dir": "C:\CTool\unsigned_transaction\",
"signed_transaction_file_dir": "C:\CTool\signed_transaction\",
"transaction_result_dir": "C:\CTool\transaction_result\",
"rpc_url":"http://127.0.0.1:6789",
"chain_id": 100,
"hrp_type": "lat"
}
字段说明:
- wallet_file_base_dir:生成普通钱包和HD钱包文件的目录;
- prikey_file_base_dir:生成普通钱包和HD钱包私钥二维码的目录;
- validator_file_base_dir:质押节点信息配置文件目录;
- unsigned_transaction_file_dir:保存交易待签名文件目录;
- signed_transaction_file_dir:保存交易签名文件目录;
- transaction_result_dir:保存发送交易结果和校验交易结果目录;
- rpc_url:调用节点rpc接口的路径;
- chain_id:节点所在的链ID,PlatON主网为: 100;
- hrp_type:bech32地址格式前缀;
根据实际情况,修改此配置文件。
安装完成之后,生成钱包和交易相关的配置文件在:C:\CTool\template
下;其中:
-
wallet_file.xlsx
为钱包配置文件;其中包括生成普通钱包和生成HD钱包配置;注意:
- 钱包文件和私钥文件保存在:**
私钥管理人\钱包类型\账户用途
路径下,所以私钥管理人,钱包类型,账户用途
**这三个字段的值不能含有特殊字符,如:\
等;
- 钱包文件和私钥文件保存在:**
-
transfer_file.xlsx
为转账交易配置文件; -
restrict_file.xlsx
为锁仓交易配置文件;
用户请根据文件模板格式进行修改。
操作方式和步骤参考离线CTool工具的安装。
-
生成钱包
出于安全考虑,建议在离线机器上生成;
-
交易相关
- 生成待签名文件和发送交易在在线机器上执行;
- 签名交易在离线机器上执行;
提前对C:\CTool\template
下的钱包配置文件wallet_file.xlsx
进行修改;
执行命令:
batch_generate_wallet -f C:\CTool\template\wallet_file.xlsx --empty_keystore
-f: 钱包配置文件路径;
--empty_keystore:表示清空钱包文件目录和钱包私钥目录下的文件,其中钱包文件目录和钱包私钥目录分别对应[1.3 修改config配置](#1.3 修改config配置) 的
wallet_file_base_dir
和prikey_file_base_dir
对应的目录;此参数请酌情使用,默认为不清空;执行完成之后,在配置的目录下生成普通钱包文件和普通钱包私钥文件;并生成钱包文件对应的钱包密码密码文件
password_xxxx.txt
,其中密码文件格式为:$address:$password
,$address
为地址,$password
为密码明文,其中密码明文为随机生成,如:lat1jhsv560t2cx7m90fwsu66uhegjtm2w7049s6d9:DWkRAJU8
执行命令:
batch_generate_wallet -f C:\CTool\template\wallet_file.xlsx -t hd
-f: 钱包配置文件路径;
-t:钱包类型,其中hd表示分层钱包;
执行完成之后,在配置的目录下生成HD钱包文件和HD钱包私钥文件;
提前对C:\CTool\template
下的转账交易配置文件transfer_file.xlsx
进行修改;
- 生成转账交易待签名文件
执行命令:
batch_unsigned_transfer_tx -f C:\CTool\template\transfer_file.xlsx
说明:
- -f: 转账交易配置文件;
执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名转账交易文件:unsigned_transfer_transactions.csv
文件。
- 生成转账交易签名文件
执行命令:
batch_signed_transfer_tx -f C:\CTool\unsigned_transaction\unsigned_transfer_transactions.csv -k C:\CTool\keystore
说明:
-f: 转账交易待签名文件;
-k: 转账交易钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成转账交易签名文件:signed_transfer_transaction.csv
文件。
- 发送批量转账交易
执行命令:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_transfer_transaction.csv -t transfer --no-wait
说明:
-f: 转账交易签名文件;
-t: 交易类型;包括staking\transfer\restrict;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms;
--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢)
打印交易hash,转账前from,to地址账户的金额(单位为ATP)等信息,并在发送完成所有交易之后在[1.3 修改config配置](#1.3 修改config配置) 的
transaction_result_dir
目录下生成发送交易结果文件:transfer_transaction_result.csv
文件。交易检测:
使用生成的结果文件
transfer_transaction_result.csv
校验交易是否成功:verify_transaction_result -f C:\CTool\template\transfer_file.xlsx -r C:\CTool\transaction_result\transfer_transaction_result.csv -t transfer检查完成后生成检测文件:
check_transfer_result_XXXXXXXXXXX.csv
文件,此文件记录转账前后from,to地址账户的金额(单位为ATP)等信息;如果生成
err_transfer_result_XXXXXXXXXXX.csv
表示有异常交易,需要使用transfer_file_XXXXXXXXXXX.xlsx
文件,重发转账交易。
提前对C:\CTool\template
下的批量质押配置文件staking_file.xlsx
进行修改;
- 生成批量质押待签名文件
执行命令:
batch_unsigned_staking_tx -f C:\CTool\template\staking_file.xlsx
说明:
- -f: 节点质押信息文件;
执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名质押交易文件:unsigned_staking_transactions.csv
文件。
- 生成质押交易签名文件
执行命令:
batch_signed_staking_tx -f C:\CTool\unsigned_transaction\unsigned_staking_transactions.csv -k C:\CTool\keystore
说明:
-f: 质押交易待签名文件;
-k: 质押地址的钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成质押交易签名文件:signed_staking_transaction.csv
文件。
- 发送节点质押交易
执行命令:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_staking_transaction.csv -t staking --no-wait
说明:
-f: 质押交易签名文件;
-t: 交易类型;包括staking\transfer\restrict;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms;
--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢)
打印交易hash,交易类型等信息,并在发送完成所有交易之后在[1.3 修改config配置](#1.3 修改config配置) 的
transaction_result_dir
目录下生成发送交易结果文件:staking_transaction_result.csv
文件。检查交易是否上链:
检查交易是否全部上链,执行:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_staking_transaction.csv -t staking --check
- 如果提示:
not all transactions are on the chain, please wait!!!
,表示交易还没有全部上链,请等待,先不要进行交易检测的操作(过一会再重复执行一次上述命令);- 如果提示:
all transactions are on the chain.
,表示交易全部上链,可以进行进行交易检测的操作,进行交易是否成功的检查;交易检测:
使用生成的结果文件
staking_transaction_result.csv
校验交易是否成功:verify_transaction_result -f C:\CTool\template\staking_file.xlsx -r C:\CTool\transaction_result\staking_transaction_result.csv -t staking检查完成后生成检测文件:
check_staking_result_XXXXXXXXXXX.csv
文件,此文件记录转账前后质押地址账户的金额(单位为LAT)和质押节点,以及交易结果等信息;如果生成
err_staking_result_XXXXXXXXXXX.csv
表示有异常交易,需要根据异常情况解决问题后,使用staking_file_XXXXXXXXXXX.xlsx
文件,重发质押交易。
- 生成锁仓交易待签名文件
执行命令:
batch_unsigned_restrict_tx -f C:\CTool\template\restrict_file.xlsx
说明:
- -f: 批量锁仓分配文件
执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名锁仓交易文件:unsigned_restrict_transaction.csv
文件。
- 生成锁仓分配交易签名文件
执行命令:
batch_signed_restrict_tx -f C:\CTool\unsigned_transaction\unsigned_restrict_transaction.csv -k C:\CTool\keystore
说明:
-f: 锁仓交易待签名文件;
-k: 锁仓交易钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成锁仓交易签名文件:signed_restrict_transaction.csv
文件。
- 发送锁仓分配交易
执行命令:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_restrict_transaction.csv -t restrict --no-wait
说明:
-f: 锁仓交易签名文件;
-t: 交易类型;包括staking\transfer\restrict;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms;
--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢)
打印交易hash,交易类型等信息,并在发送完成所有交易之后生成统计文件:
restrict_transaction_result.csv
。检查交易是否上链:
检查交易是否全部上链,执行:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_restrict_transaction.csv -t restrict --check
- 如果提示:
not all transactions are on the chain, please wait!!!
,表示交易还没有全部上链,请等待,先不要进行交易检测的操作(过一会再重复执行一次上述命令);- 如果提示:
all transactions are on the chain.
,表示交易全部上链,可以进行进行交易检测的操作,进行交易是否成功的检查;交易检测:
使用生成的结果文件
restrict_transaction_result.csv
校验交易是否成功:verify_transaction_result -f C:\CTool\template\restrict_file.xlsx -r C:\CTool\transaction_result\restrict_transaction_result.csv -t restrict检查完成后生成检测文件:
check_restrict_result_XXXXXXXXXXX.csv
文件,此文件记录锁仓前后from地址账户的自由金额(单位为LAT)等信息;如果生成
err_restrict_result_XXXXXXXXXXX.csv
表示有异常交易,需要使用restrict_file_XXXXXXXXXXX.xlsx
文件,重发锁仓交易。
-
准备合约的abi和bin文件
由开发提供合约的abi和bin文件,将abi和bin文件拷贝到工具的机器上;
-
生成合约交易配置文件模板
generate_erc20_file -a $abi_path -c contractName -n func_name -s $save_dir
参数说明:
-a:合约abi文件的路径;
-c:合约名称,不指定时默认为ERC20;
-n:函数名称,不指定时默认为constructor,表示部署合约;
-s:保存文件所在目录,不指定时保存在当前目录下;
执行成功后在
$save_dir
目录下生成{$contractName}_{$func_name}_file.xlsx
配置文件;其中文件中的from表示发起合约交易的地址,contract_address表示合约地址;param_xxx表示函数的参数;
-
编辑合约交易配置文件
通过根据具体的需求对
{$contractName}_{$func_name}_file.xlsx
文件进行编辑; -
生成合约交易待签名文件
将编辑好的合约交易配置文件拷贝到工具所在的在线机器上,执行:
batch_unsigned_erc20_tx -f {$contractName}_{$func_name}_file.xlsx -a $abi_path -b $bin_path -c $contractName -d $contract_address -n $func_name
参数说明:
-f:合约交易文件路径;
-a:合约abi文件的路径;
-b:合约bin文件的路径;
-c:合约名称;
-d:erc2.0合约地址,不指定时,从合约交易文件中的
contract_address
字段中读取;指定时请将 $contract_address修改为真实的合约地址;如果是部署合约则不用指定;-n:合约函数名称,不指定时,默认为:
transfer
,即合约转账交易;如果是部署合约,则需指定为:constructor;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名合约交易文件:unsigned_{$contractName}_{$func_name}_transactions.csv
文件。
- 签名合约交易
batch_signed_erc20_tx -f C:\CTool\unsigned_transaction\unsigned_{$contractName}_{$func_name}_transactions.csv -k C:\CTool\keystore
参数说明:
-f: erc2.0合约交易待签名文件;
-k: 转账交易钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成合约交易签名文件:signed_{$contractName}_{$func_name}_transactions.csv
文件。
- 发送合约交易
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_{$contractName}_{$func_name}_transactions.csv -t erc20 --no-wait
参数说明:
-f: 合约交易签名文件;
-t: 交易类型;包括staking\transfer\restrict\erc20;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms;
--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢), 如果部署合约时,结果文件需要保存合约地址,需要使用此参数
;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
transaction_result_dir
目录下生成合约交易签名文件:{$contractName}_{$func_name}_transaction_result.csv
文件。检查交易是否上链:
检查交易是否全部上链,执行:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_{$contractName}_{$func_name}_transactions.csv -t erc20 --check
- 如果提示:
not all transactions are on the chain, please wait!!!
,表示交易还没有全部上链,请等待,先不要进行交易检测的操作(过一会再重复执行一次上述命令);- 如果提示:
all transactions are on the chain.
,表示交易全部上链,可以进行进行交易检测的操作,进行交易是否成功的检查;
- 校验合约交易
使用生成的结果文件{contractName}_{func_name}_transaction_result.csv
校验交易是否成功:
verify_transaction_result -f {$contractName}_{$func_name}_file.xlsx -r C:\CTool\transaction_result\{$contractName}_{$func_name}_transaction_result.csv -t erc20
检查完成后生成检测文件:check_{$contractName}_{$func_name}_result_XXXXXXXXXXX.csv
文件,此文件记录合约转账交易校验结果信息;
如果生成err_{$contractName}_{$func_name}_result_XXXXXXXXXXX.csv
表示有异常交易,需要使用{$contractName}_{$func_name}_file_XXXXXXXXXXX.xlsx
文件,重发合约交易。
-
生成部署合约待签名文件
将编辑好的合约部署交易配置文件
C:\CTool\template\erc721_constructor_file.xlsx
拷贝到工具所在的在线机器上,执行:
batch_unsigned_erc20_tx -f C:\CTool\template\erc721_constructor_file.xlsx -a C:\CTool\bin\contract\erc721.abi -b C:\CTool\bin\contract\erc721.bin -c ERC721 -n constructor
参数说明:
-f:合约交易文件路径;
-a:NFT合约abi文件的路径;
-b:NFT合约bin文件的路径;
-c:NFT合约名称;
-n:NFT合约接口名称,
constructor
合约构造函数名称,用于部署合约使用;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名合约交易文件:unsigned_ERC721_deploy_transactions.csv
文件。
- 签名erc721合约交易
batch_signed_erc20_tx -f C:\CTool\unsigned_transaction\unsigned_ERC721_deploy_transactions.csv -k C:\CTool\keystore
参数说明:
-f: 合约交易待签名文件;
-k: 转账交易钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成合约交易签名文件:signed_ERC721_deploy_transactions.csv
文件。
- 发送合约交易
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_ERC721_deploy_transactions.csv -t erc20 --no-wait
参数说明:
-f: 合约交易签名文件;
-t: 交易类型;包括staking\transfer\restrict\erc20;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms,当指定
-m
大于0时此参数无效;--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢),如果部署合约时,结果文件需要保存合约地址,需要使用此参数
;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
transaction_result_dir
目录下生成合约交易签名文件:ERC721_deploy_transaction_result.csv
文件。检查交易是否上链:
检查交易是否全部上链,执行:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_ERC721_deploy_transactions.csv -t erc20 --check
- 如果提示:
not all transactions are on the chain, please wait!!!
,表示交易还没有全部上链,请等待,先不要进行交易检测的操作(过一会再重复执行一次上述命令);- 如果提示:
all transactions are on the chain.
,表示交易全部上链,可以进行进行交易检测的操作,进行交易是否成功的检查;
- 校验合约交易
使用生成的结果文件ERC721_deploy_transaction_result.csv
校验交易是否成功:
verify_transaction_result -f C:\CTool\template\erc721_constructor_file.xlsx -r C:\CTool\transaction_result\ERC721_deploy_transaction_result.csv -t erc20
检查完成后生成检测文件:check_ERC721_deploy_result_XXXXXXXXXXX.csv
文件,此文件记录erc721合约交易校验结果信息;
如果生成err_ERC721_deploy_result_XXXXXXXXXXX.csv
表示有异常交易,需要使用ERC721_deploy_file_XXXXXXXXXXX.xlsx
文件,重发erc721合约交易。
-
生成批量铸币交易待签名文件
将编辑好的合约转账交易配置文件
C:\CTool\template\erc721_mint_file.xlsx
拷贝到工具所在的在线机器上,执行:
batch_unsigned_erc20_tx -f C:\CTool\template\erc721_mint_file.xlsx -a C:\CTool\bin\contract\erc721.abi -b C:\CTool\bin\contract\erc721.bin -c ERC721 -n mint -d $contract_address
参数说明:
-f:合约交易文件路径;
-a:NFT合约abi文件的路径;
-b:NFT合约bin文件的路径;
-c:NFT合约名称;
-n:NFT合约接口名称,
constructor
合约构造函数名称,用于部署合约使用;-d:合约地址,不指定时,从合约交易文件中的
contract_address
字段中读取;指定时请将 $contract_address修改为真实的合约地址,可从[部署合约](#3.12.1 部署合约)返回中获取;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名合约交易文件:unsigned_ERC721_mint_transactions.csv
文件。
- 签名erc721合约交易
batch_signed_erc20_tx -f C:\CTool\unsigned_transaction\unsigned_ERC721_mint_transactions.csv -k C:\CTool\keystore
参数说明:
-f: 合约交易待签名文件;
-k: 转账交易钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成合约交易签名文件:signed_ERC721_mint_transactions.csv
文件。
- 发送erc721合约交易
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_ERC721_mint_transactions.csv -t erc20 --no-wait
参数说明:
-f: 合约交易签名文件;
-t: 交易类型;包括staking/transfer/restrict/erc20;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms,当指定
-m
大于0时此参数无效;--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢)
;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
transaction_result_dir
目录下生成合约交易签名文件:ERC721_mint_transaction_result.csv
文件。检查交易是否上链:
检查交易是否全部上链,执行:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_ERC721_mint_transactions.csv -t erc20 --check
- 如果提示:
not all transactions are on the chain, please wait!!!
,表示交易还没有全部上链,请等待,先不要进行交易检测的操作(过一会再重复执行一次上述命令);- 如果提示:
all transactions are on the chain.
,表示交易全部上链,可以进行进行交易检测的操作,进行交易是否成功的检查;
- 校验合约交易
使用生成的结果文件ERC721_mint_transaction_result.csv
校验交易是否成功:
verify_transaction_result -f C:\CTool\template\erc721_mint_file.xlsx -r C:\CTool\transaction_result\ERC721_mint_transaction_result.csv -t erc20
检查完成后生成检测文件:check_ERC721_mint_result_XXXXXXXXXXX.csv
文件,此文件记录合约铸币交易校验结果信息;
如果生成err_ERC721_mint_result_XXXXXXXXXXX.csv
表示有异常交易,需要使用ERC721_mint_file_XXXXXXXXXXX.xlsx
文件,重发erc721合约交易。
-
编辑erc721合约转账交易配置文件
通过根据具体的需求对
C:\CTool\template\erc721_safeTransferFrom_file.xlsx
文件进行编辑;from contract_address param_from param_to param_tokenId 字段说明:
- from:发送合约转账交易地址;即为铸币地址
$param_from
; - contract_address:erc721合约地址;
- param_from:铸币地址;
- param_to:NFT投票接收钱包;
- param_tokenId:令牌ID;
- from:发送合约转账交易地址;即为铸币地址
-
生成erc721合约转账交易待签名文件
将编辑好的合约转账交易配置文件
C:\CTool\template\erc721_safeTransferFrom_file.xlsx
拷贝到工具所在的在线机器上,执行:
batch_unsigned_erc20_tx -f C:\CTool\template\erc721_safeTransferFrom_file.xlsx -a C:\CTool\bin\contract\erc721.abi -b C:\CTool\bin\contract\erc721.bin -c erc721 -d $contract_address -n safeTransferFrom
参数说明:
-f:合约交易文件路径;
-a:erc721合约abi文件的路径;
-b:erc721合约bin文件的路径;
-c:erc721合约名称;
-d:erc721合约地址,不指定时,从合约交易文件中的
contract_address
字段中读取;指定时请将 $contract_address修改为真实的合约地址;-n:合约函数名称,不指定时,默认为:
transfer
,即erc721合约转账交易;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
unsigned_transaction_file_dir
目录下生成待签名合约交易文件:unsigned_erc721_safeTransferFrom_transactions.csv
文件。
- 签名erc721合约交易
batch_signed_erc20_tx -f C:\CTool\unsigned_transaction\unsigned_erc721_safeTransferFrom_transactions.csv -k C:\CTool\keystore
参数说明:
-f: erc2.0合约交易待签名文件;
-k: 转账交易钱包文件所在路径;如果钱包为外部提供,需要将钱包名命名为地址;并在钱包文件当前的密码文件
password.txt
下按格式$address:$password
添加钱包文件的地址和密码;;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
signed_transaction_file_dir
目录下生成合约交易签名文件:signed_erc721_safeTransferFrom_transactions.csv
文件。
- 发送erc721合约交易
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_erc721_safeTransferFrom_transactions.csv -t erc20 -n 1 -m 20 --no-wait
参数说明:
-f: 合约交易签名文件;
-t: 交易类型;包括staking\transfer\restrict\erc20;
-s: 发完每笔交易的休眠时间,单位毫秒,默认100ms,当指定
-m
大于0时此参数无效;-n: 发完每笔交易的最小休眠时间,单位分钟,默认为0;
-m: 发完每笔交易的最大休眠时间,单位分钟,默认为0;
--no-wait:不等交易回执,直接返回交易hash;
--wait:表示等待交易回执(此方式发送交易较慢)
;执行成功后在[1.3 修改config配置](#1.3 修改config配置) 的
transaction_result_dir
目录下生成合约交易签名文件:erc721_safeTransferFrom_transaction_result.csv
文件。检查交易是否上链:
检查交易是否全部上链,执行:
batch_send_raw_transaction -f C:\CTool\signed_transaction\signed_erc721_safeTransferFrom_transactions.csv -t erc20 --check
- 如果提示:
not all transactions are on the chain, please wait!!!
,表示交易还没有全部上链,请等待,先不要进行交易检测的操作(过一会再重复执行一次上述命令);- 如果提示:
all transactions are on the chain.
,表示交易全部上链,可以进行进行交易检测的操作,进行交易是否成功的检查;
- 校验合约交易
使用生成的结果文件erc721_safeTransferFrom_transaction_result.csv
校验交易是否成功:
verify_transaction_result -f C:\CTool\template\erc721_safeTransferFrom_file.xlsx -r C:\CTool\transaction_result\erc721_safeTransferFrom_transaction_result.csv -t erc20
检查完成后生成检测文件:check_erc721_safeTransferFrom_result_XXXXXXXXXXX.csv
文件,此文件记录erc721合约转账交易校验结果信息;
如果生成err_erc721_safeTransferFrom_result_XXXXXXXXXXX.csv
表示有异常交易,需要使用erc721_safeTransferFrom_file_XXXXXXXXXXX.xlsx
文件,重发erc721合约交易。