41 lines
1.8 KiB
TypeScript
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'));
|
|
}
|
|
|