import { toNano, Address } from "ton"; import { ContractSystem } from "ton-emulator"; import {SampleJetton} from './output/jetton_SampleJetton'; import { default_content } from './config'; import { JettonDefaultWallet } from './output/jetton_JettonDefaultWallet'; import { toBufferBE } from "bigint-buffer"; describe('jetton', () => { it('should deploy', async () => { // Create jetton let system = await ContractSystem.create(); let owner = system.treasure('owner'); let contract = system.open(await SampleJetton.fromInit(owner.address, default_content)); let tracker = system.track(contract.address); let wallet_contract = system.open(await JettonDefaultWallet.fromInit(contract.address, owner.address)); let wallet_tracker = system.track(wallet_contract.address); // Mint let res1 = await contract.send(owner, { value: toNano(1) }, { $$type: 'Mint', amount: toNano(1000000) }); let res = await system.run(); console.log(res1) console.log(res) expect(tracker.events()).toMatchSnapshot(); // expect(wallet_tracker.events()).toMatchSnapshot(); let addr_get = await contract.getGetWalletAddress(owner.address); let addr = toBufferBE(res[1].address, owner.address.hash.length); // console.log(await wallet_contract.getGetWalletData()); console.log((new Address(0, addr)).toString()) console.log(wallet_contract.address.toString()) let wc_proto = await JettonDefaultWallet.fromInit(contract.address, owner.address); // wc_proto.address = new Address(0, addr); let wallet_contract_2 = system.contract(new Address(0, addr)); let wdata = (await wallet_contract_2.get(97026, [])) as any; console.log('wdata', wdata, ) console.log(wdata.stack) console.log(wallet_contract.address.toString(), addr_get.toString()); // let c = system.open({address: addr, abi: wallet_contract.abi}); // console.log(await c.abi.getGetWalletData()); // Check owner expect((await contract.getOwner()).toString()).toEqual(owner.address.toString()); // Data let data = await contract.getGetJettonData(); // console.warn(data); console.log(tracker.events()) }); });