Для получения примера того, как развернуть Atomic NFT, вам нужно обратиться к нашему порталу github repo.
В этом репозитории вы найдете несколько полезных скриптов в подкаталоге bin/
, а также примеры контрактов в каталоге src/
.
Для того чтобы развернуть атомарный NFT, вам сначала нужно иметь уже развернутый шаблонный контракт. В настоящее время в Koii доступны три таких контракта:
Стандартный NFT (аналогичный koi.rocks или Finnie wallet defaults) - r_ibeOTHJW8McJvivPJjHxjMwkYfAKRjs-LjAeaBcLc
Erc1155 Мост-совместимый NFT - 1ZjIecqKGYdGTFMWR9kdGrmi77lMmZnA6dxEzWulyjo
(Экспериментальный) Динамический NFT - 1ZjIecqKGYdGTFMWR9kdGrmi77lMmZnA6dxEzWulyjo
Для начала войдите в директорию /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
.Это вернет идентификатор контракта, который понадобится вам на следующем шаге.
Теперь давайте развернем атомарный NFT:
Проверьте файл creatingNewNFT.js. Измените информацию на свою собственную:
Не забудьте изменить ID контракта:
contractSrc => [ID контракта]
После того, как информация будет готова, разверните его:
yarn
node creatingNewNFT.js
Все готово, через несколько минут вы сможете найти свой txID на https://viewblock.io/arweave
import Arweave from 'arweave';
const arweave = Arweave.init({
host: 'arweave.net',
protocol: 'https',
port: 443
});
async function createContract() {
// Сначала создадим транзакцию контракта.
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');
// Подписание
await arweave.transactions.sign(contractTx, wallet);
// Сохраним ID, он будет использоваться в статусу транзакции.
const contractSourceTxId = contractTx.id;
// Развертывание источника контракта
await arweave.transactions.post(contractTx);
// Теперь создадим транзакцию начального состояния
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');
// Подписание
await arweave.transactions.sign(initialState, wallet);
const initialStateTxId = initialState.id;
// Развертывание
await arweave.transactions.post(initialState);
}
createContract();