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