You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
48 lines
1.8 KiB
48 lines
1.8 KiB
2 years ago
|
import { Address, Cell, contractAddress, StateInit } from "ton";
|
||
|
import BN from 'bn.js';
|
||
|
import qs from 'qs';
|
||
|
|
||
|
export function printSeparator() {
|
||
|
console.log("========================================================================================");
|
||
|
}
|
||
|
|
||
|
export function printHeader(name: string) {
|
||
|
printSeparator();
|
||
|
console.log('Contract: ' + name);
|
||
|
printSeparator();
|
||
|
}
|
||
|
|
||
|
export function printAddress(address: Address, testnet: boolean = true) {
|
||
|
console.log("Address: " + address.toFriendly({ testOnly: testnet }));
|
||
|
console.log("Explorer: " + "https://" + (testnet ? 'testnet.' : '') + "tonwhales.com/explorer/address/" + address.toFriendly({ testOnly: testnet }));
|
||
|
printSeparator();
|
||
|
}
|
||
|
|
||
|
export function printDeploy(init: { code: Cell, data: Cell }, amount: BN, command: Cell | string, testnet: boolean = true) {
|
||
|
|
||
|
// Resolve target address
|
||
|
let to = contractAddress({ workchain: 0, initialCode: init.code, initialData: init.data });
|
||
|
|
||
|
// Resovle init
|
||
|
let cell = new Cell();
|
||
|
new StateInit(init).writeTo(cell);
|
||
|
let initStr = cell.toBoc({ idx: false }).toString("base64");
|
||
|
|
||
|
let link: string;
|
||
|
if (typeof command === 'string') {
|
||
|
link = `https://${testnet ? 'test.' : ''}tonhub.com/transfer/` + to.toFriendly({ testOnly: testnet }) + "?" + qs.stringify({
|
||
|
text: command,
|
||
|
amount: amount.toString(10),
|
||
|
init: initStr
|
||
|
});
|
||
|
} else {
|
||
|
link = `https://${testnet ? 'test.' : ''}tonhub.com/transfer/` + to.toFriendly({ testOnly: testnet }) + "?" + qs.stringify({
|
||
|
text: "Deploy contract",
|
||
|
amount: amount.toString(10),
|
||
|
init: initStr,
|
||
|
bin: command.toBoc({ idx: false }).toString('base64'),
|
||
|
});
|
||
|
}
|
||
|
console.log("Deploy: " + link);
|
||
|
printSeparator();
|
||
|
}
|