universal-wallet-contract/scripts/deployUniversalWalletContra...

41 lines
1.8 KiB
TypeScript

import { toNano, Address } from '@ton/core';
import { UniversalWalletContract } from '../wrappers/UniversalWalletContract';
import { compile, NetworkProvider, UIProvider } from '@ton/blueprint';
// import { JettonMinter, JettonMinterContent, jettonContentToCell, jettonMinterConfigToCell } from '../wrappers/JettonMinter';
import { promptAddress, promptBool, promptUrl } from '../wrappers/ui-utils';
import * as tweetnacl from 'tweetnacl-ts';
export async function run(provider: NetworkProvider) {
const ui = provider.ui();
const sender = provider.sender();
const adminPrompt = `Please specify admin address`;
let admin= await promptAddress(adminPrompt, ui, sender.address);
ui.write(`Admin address:${admin}\n`);
let subwalletId = parseInt(await ui.input('Please specify subwallet id: '));
ui.write(`Subwallet id:${subwalletId}\n`);
let backendPublicKey = await ui.input('Please specify backend public key: ');
ui.write(`Backend publicKey address:${backendPublicKey}\n`);
let publicKeyBuffer = Buffer.from(backendPublicKey, 'hex');
if (publicKeyBuffer.length !== 32) {
throw new Error('Public key should be 32 bytes long');
}
let dataCorrect = false;
do {
ui.write("Please verify data:\n")
ui.write(`Admin:${admin}\n\n`);
ui.write(`Subwallet id:${subwalletId}\n`);
ui.write(`Backend publicKey address:${backendPublicKey}\n`);
dataCorrect = await promptBool('Is everything ok?(y/n)', ['y','n'], ui);
} while(!dataCorrect);
let memCode = await compile('SignatureMemContract');
const lotteryContract = UniversalWalletContract.createFromConfig({
admin, publicKey: publicKeyBuffer, subwalletId, memCode
}, await compile('UniversalWalletContract'));
await provider.deploy(lotteryContract, toNano('0.03'));
}