|
|
|
import * as main from "../contracts/main";
|
|
|
|
import { Address, toNano, TupleSlice, WalletContract } from "ton";
|
|
|
|
import { sendInternalMessageWithWallet } from "../test/helpers";
|
|
|
|
|
|
|
|
// return the init Cell of the contract storage (according to load_data() contract method)
|
|
|
|
export function initData() {
|
|
|
|
return main.data({
|
|
|
|
ownerAddress: Address.parseFriendly("EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N").address,
|
|
|
|
counter: 0,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
// return the op that should be sent to the contract on deployment, can be "null" to send an empty message
|
|
|
|
export function initMessage() {
|
|
|
|
return main.increment();
|
|
|
|
}
|
|
|
|
|
|
|
|
// optional end-to-end sanity test for the actual on-chain contract to see it is actually working on-chain
|
|
|
|
export async function postDeployTest(walletContract: WalletContract, secretKey: Buffer, contractAddress: Address) {
|
|
|
|
const call = await walletContract.client.callGetMethod(contractAddress, "counter");
|
|
|
|
const counter = new TupleSlice(call.stack).readBigNumber();
|
|
|
|
console.log(` # Getter 'counter' = ${counter.toString()}`);
|
|
|
|
|
|
|
|
const message = main.increment();
|
|
|
|
await sendInternalMessageWithWallet({ walletContract, secretKey, to: contractAddress, value: toNano(0.02), body: message });
|
|
|
|
console.log(` # Sent 'increment' op message`);
|
|
|
|
|
|
|
|
const call2 = await walletContract.client.callGetMethod(contractAddress, "counter");
|
|
|
|
const counter2 = new TupleSlice(call2.stack).readBigNumber();
|
|
|
|
console.log(` # Getter 'counter' = ${counter2.toString()}`);
|
|
|
|
}
|