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')); }