如何部署 Atomic NFT 示例可以查看我们的实用手册 github repo.
这份 repo 中包含在 bin/
子目录中一系列有用脚本以及在 src/
目录下的合约示例。
想要部署 Atomic NFT,您需要有一个已有的模板合约。目前,Koii 已有三个模板可供使用:
第一步,进入 /CreateNFT/contracts/
目录:
cd /CreateNFT/contracts/
第二步,查看 .env 文件,确保路径是您的 arweavewallet.json
WALLET_LOCATION = path/to/your/wallet
第三步,在/src/nft/init_state.json 文件,输入编辑您的个人信息。
准备就绪。现在开始部署模板合约:
yarn deploy [contract]
示例:
yarn deploy koii
yarn deploy attention
这将返回合约 ID,在下一步骤您会需要。
现在开始部署 Atomic NFT:
查看 creatingNewNFT.js 文件。更改为您的个人信息:
记住更改合约 ID:
contractSrc => [contract ID]
完成信息更新,即可部署:
yarn
node creatingNewNFT.js
一切就绪。仅需几分钟,您即可在 https://viewblock.io/arweave搜索您的 txID。
import Arweave from 'arweave';
const arweave = Arweave.init({
host: 'arweave.net',
protocol: 'https',
port: 443
});
async function createContract() {
// Let's first create the contract transaction.
const contractTx = await arweave.createTransaction({ data: contractSource }, wallet);
contractTx.addTag('App-Name', 'SmartWeaveContractSource');
contractTx.addTag('App-Version', '0.3.0');
contractTx.addTag('Content-Type', 'application/javascript');
// Sign
await arweave.transactions.sign(contractTx, wallet);
// Let's keep the ID, it will be used in the state transaction.
const contractSourceTxId = contractTx.id;
// Deploy the contract source
await arweave.transactions.post(contractTx);
// Now, let's create the Initial State transaction
const initialStateTx = await arweave.createTransaction({ data: initialState }, wallet);
initialState.addTag('App-Name', 'SmartWeaveContract');
initialState.addTag('App-Version', '0.3.0');
initialState.addTag('Contract-Src', contractSourceTxId);
initialState.addTag('Content-Type', 'application/json');
// Sign
await arweave.transactions.sign(initialState, wallet);
const initialStateTxId = initialState.id;
// Deploy
await arweave.transactions.post(initialState);
}
createContract();