universal-wallet-contract/scripts/sendUpdateCode.ts

31 lines
1.4 KiB
TypeScript

import {toNano, Address, beginCell, Cell} from '@ton/core';
import { UniversalWalletContract } from '../wrappers/UniversalWalletContract';
import { compile, NetworkProvider, UIProvider } from '@ton/blueprint';
import {promptAddress, promptAmount, promptBool, promptUrl} from '../wrappers/ui-utils';
import * as tweetnacl from 'tweetnacl-ts';
import {JettonWallet} from "@ton/ton";
export async function run(provider: NetworkProvider) {
const ui = provider.ui();
const sender = provider.sender();
let walletAddress = await promptAddress('Please specify wallet address:', ui);
let newDataCellHex = await ui.input(`Please specify new data cell hex: `);
let newDataCell = Cell.fromBoc(Buffer.from(newDataCellHex, 'hex'))[0];
let dataCorrect = false;
do {
ui.write("Please verify data:\n")
ui.write(`Wallet address:${walletAddress}\n\n`);
ui.write(`New data cell:${newDataCellHex}\n`);
ui.write(`New data cell refs:${newDataCell.refs.length}\n${newDataCell}\n`);
dataCorrect = await promptBool('Is everything ok?(y/n)', ['y','n'], ui);
} while(!dataCorrect);
const walletContract = UniversalWalletContract.createFromAddress(walletAddress);
const walletContractProvider = provider.open(walletContract);
await walletContractProvider.sendEditCode(sender, toNano('0.03'), await compile('UniversalWalletContract'), newDataCell);
}