Comparing version 12.3.3 to 13.0.0
/// <reference types="node" /> | ||
import { Address, Cell } from '../..'; | ||
import * as t from 'io-ts'; | ||
import { TonCache } from '../TonCache'; | ||
import { TonCache } from './TonCache'; | ||
import { AxiosAdapter } from 'axios'; | ||
import { Address, Cell, TupleItem } from 'ton-core'; | ||
declare const message: t.TypeC<{ | ||
@@ -107,3 +107,3 @@ source: t.StringC; | ||
private shardTransactionsLoader; | ||
constructor(endpoint: string, cache: TonCache, parameters?: HttpApiParameters); | ||
constructor(endpoint: string, parameters?: HttpApiParameters); | ||
getAddressInformation(address: Address): Promise<{ | ||
@@ -291,3 +291,3 @@ balance: string | number; | ||
} | null>; | ||
callGetMethod(address: Address, method: string, params: any[]): Promise<{ | ||
callGetMethod(address: Address, method: string, stack: TupleItem[]): Promise<{ | ||
gas_used: number; | ||
@@ -294,0 +294,0 @@ exit_code: number; |
@@ -29,2 +29,3 @@ "use strict"; | ||
const io_ts_reporters_1 = __importDefault(require("io-ts-reporters")); | ||
const TonCache_1 = require("./TonCache"); | ||
const dataloader_1 = __importDefault(require("dataloader")); | ||
@@ -162,11 +163,11 @@ const axios_1 = __importDefault(require("axios")); | ||
class HttpApi { | ||
constructor(endpoint, cache, parameters) { | ||
constructor(endpoint, parameters) { | ||
this.endpoint = endpoint; | ||
this.cache = cache; | ||
this.cache = new TonCache_1.InMemoryCache(); | ||
this.parameters = { | ||
timeout: (parameters === null || parameters === void 0 ? void 0 : parameters.timeout) || 30000, | ||
apiKey: parameters === null || parameters === void 0 ? void 0 : parameters.apiKey | ||
timeout: parameters?.timeout || 30000, | ||
apiKey: parameters?.apiKey | ||
}; | ||
// Shard | ||
this.shardCache = new TypedCache('ton-shard', cache, t.array(blockIdExt), (src) => src + ''); | ||
this.shardCache = new TypedCache('ton-shard', this.cache, t.array(blockIdExt), (src) => src + ''); | ||
this.shardLoader = new dataloader_1.default(async (src) => { | ||
@@ -184,3 +185,3 @@ return await Promise.all(src.map(async (v) => { | ||
// Shard Transactions | ||
this.shardTransactionsCache = new TypedCache('ton-shard-tx', cache, getBlockTransactions, (src) => src.workchain + ':' + src.shard + ':' + src.seqno); | ||
this.shardTransactionsCache = new TypedCache('ton-shard-tx', this.cache, getBlockTransactions, (src) => src.workchain + ':' + src.shard + ':' + src.seqno); | ||
this.shardTransactionsLoader = new dataloader_1.default(async (src) => { | ||
@@ -248,4 +249,4 @@ return await Promise.all(src.map(async (v) => { | ||
} | ||
async callGetMethod(address, method, params) { | ||
return await this.doCall('runGetMethod', { address: address.toString(), method, stack: params }, callGetMethod); | ||
async callGetMethod(address, method, stack) { | ||
return await this.doCall('runGetMethod', { address: address.toString(), method, stack: serializeStack(stack) }, callGetMethod); | ||
} | ||
@@ -257,6 +258,6 @@ async sendBoc(body) { | ||
return await this.doCall('estimateFee', { | ||
address: address.toFriendly(), | ||
body: (await args.body.toBoc({ idx: false })).toString('base64'), | ||
'init_data': args.initData ? (await args.initData.toBoc({ idx: false })).toString('base64') : '', | ||
'init_code': args.initCode ? (await args.initCode.toBoc({ idx: false })).toString('base64') : '', | ||
address: address.toString(), | ||
body: args.body.toBoc().toString('base64'), | ||
'init_data': args.initData ? args.initData.toBoc().toString('base64') : '', | ||
'init_code': args.initCode ? args.initCode.toBoc().toString('base64') : '', | ||
ignore_chksig: args.ignoreSignature | ||
@@ -295,1 +296,22 @@ }, feeResponse); | ||
exports.HttpApi = HttpApi; | ||
function serializeStack(src) { | ||
let stack = []; | ||
for (let s of src) { | ||
if (s.type === 'int') { | ||
stack.push(['num', s.value.toString()]); | ||
} | ||
else if (s.type === 'cell') { | ||
stack.push(['tvm.Cell', s.cell.toBoc().toString('base64')]); | ||
} | ||
else if (s.type === 'slice') { | ||
stack.push(['tvm.Slice', s.cell.toBoc().toString('base64')]); | ||
} | ||
else if (s.type === 'builder') { | ||
stack.push(['tvm.Builder', s.cell.toBoc().toString('base64')]); | ||
} | ||
else { | ||
throw Error('Unsupported stack item type: ' + s.type); | ||
} | ||
} | ||
return stack; | ||
} |
@@ -1,17 +0,10 @@ | ||
/// <reference types="bn.js" /> | ||
/// <reference types="node" /> | ||
import { Address } from "../address/Address"; | ||
import { Message } from "../messages/Message"; | ||
import { Cell } from "../boc/Cell"; | ||
import { Contract } from "../contracts/Contract"; | ||
import { Wallet } from "./Wallet"; | ||
import { Maybe } from '../types'; | ||
import { WalletContractType, WalletSource } from '..'; | ||
import { TonTransaction } from './TonTransaction'; | ||
import { ConfigContract } from '../contracts/ConfigContract'; | ||
import { TonCache } from './TonCache'; | ||
import { TonClientTransaction } from './api/TonClientTransaction'; | ||
import { AxiosAdapter } from 'axios'; | ||
import { Address, Cell, Contract, ContractProvider, Message, TupleItem, TupleReader } from 'ton-core'; | ||
export declare type TonClientParameters = { | ||
/** | ||
* API Endpoint | ||
*/ | ||
endpoint: string; | ||
cache?: Maybe<TonCache>; | ||
/** | ||
@@ -30,12 +23,5 @@ * HTTP request timeout in milliseconds. | ||
}; | ||
export declare type TonClientResolvedParameters = { | ||
endpoint: string; | ||
cache: TonCache; | ||
}; | ||
export declare class TonClient { | ||
#private; | ||
readonly parameters: TonClientResolvedParameters; | ||
services: { | ||
configs: ConfigContract; | ||
}; | ||
readonly parameters: TonClientParameters; | ||
constructor(parameters: TonClientParameters); | ||
@@ -47,3 +33,3 @@ /** | ||
*/ | ||
getBalance(address: Address): Promise<import("bn.js")>; | ||
getBalance(address: Address): Promise<bigint>; | ||
/** | ||
@@ -56,5 +42,5 @@ * Invoke get method | ||
*/ | ||
callGetMethod(address: Address, name: string, params?: any[]): Promise<{ | ||
callGetMethod(address: Address, name: string, stack?: TupleItem[]): Promise<{ | ||
gas_used: number; | ||
stack: any[]; | ||
stack: TupleReader; | ||
}>; | ||
@@ -70,3 +56,3 @@ /** | ||
gas_used: number; | ||
stack: any[]; | ||
stack: TupleReader; | ||
exit_code: number; | ||
@@ -84,3 +70,3 @@ }>; | ||
inclusive?: boolean; | ||
}): Promise<TonTransaction[]>; | ||
}): Promise<TonClientTransaction[]>; | ||
/** | ||
@@ -93,3 +79,3 @@ * Get transaction by it's id | ||
*/ | ||
getTransaction(address: Address, lt: string, hash: string): Promise<TonTransaction | null>; | ||
getTransaction(address: Address, lt: string, hash: string): Promise<TonClientTransaction | null>; | ||
/** | ||
@@ -172,3 +158,3 @@ * Fetch latest masterchain info | ||
getContractState(address: Address): Promise<{ | ||
balance: import("bn.js"); | ||
balance: bigint; | ||
state: "active" | "uninitialized" | "frozen"; | ||
@@ -189,57 +175,17 @@ code: Buffer | null; | ||
/** | ||
* Open Wallet from address | ||
* @param source wallet address | ||
* @returns wallet with specified address | ||
* Open contract | ||
* @param src source contract | ||
* @returns contract | ||
*/ | ||
openWalletFromAddress(args: { | ||
source: Address; | ||
}): Wallet; | ||
open<T extends Contract>(src: T): { [P in keyof T]: P extends `get${string}` | `send${string}` ? T[P] extends (x: ContractProvider, ...args: infer P_1) => infer R ? (...args: P_1) => R : never : T[P]; }; | ||
/** | ||
* Open Wallet from secret key. Searches for best wallet contract. | ||
* @param workchain wallet workchain | ||
* @param secretKey wallet secret key | ||
* @returns best matched wallet | ||
* Create a provider | ||
* @param address address | ||
* @param init optional init | ||
* @returns provider | ||
*/ | ||
findWalletFromSecretKey(args: { | ||
workchain: number; | ||
secretKey: Buffer; | ||
}): Promise<Wallet>; | ||
/** | ||
* Open wallet with default contract | ||
* @param args workchain and secret key | ||
* @returns wallet | ||
*/ | ||
openWalletDefaultFromSecretKey(args: { | ||
workchain: number; | ||
secretKey: Buffer; | ||
}): Wallet; | ||
/** | ||
* Open wallet with default contract | ||
* @param args workchain and secret key | ||
* @returns wallet | ||
*/ | ||
openWalletFromSecretKey(args: { | ||
workchain: number; | ||
secretKey: Buffer; | ||
type: WalletContractType; | ||
}): Wallet; | ||
/** | ||
* Opens wallet from custom contract | ||
* @param src source | ||
* @returns wallet | ||
*/ | ||
openWalletFromCustomContract(src: WalletSource): Wallet; | ||
/** | ||
* Securely creates new wallet | ||
* @param password optional password | ||
*/ | ||
createNewWallet(args: { | ||
workchain: number; | ||
password?: Maybe<string>; | ||
type?: Maybe<WalletContractType>; | ||
}): Promise<{ | ||
mnemonic: string[]; | ||
key: import("ton-crypto").KeyPair; | ||
wallet: Wallet; | ||
}>; | ||
provider(address: Address, init: { | ||
code: Cell | null; | ||
data: Cell | null; | ||
} | null): ContractProvider; | ||
} |
@@ -16,21 +16,12 @@ "use strict"; | ||
exports.TonClient = void 0; | ||
const ton_crypto_1 = require("ton-crypto"); | ||
const Address_1 = require("../address/Address"); | ||
const Cell_1 = require("../boc/Cell"); | ||
const HttpApi_1 = require("./api/HttpApi"); | ||
const ExternalMessage_1 = require("../messages/ExternalMessage"); | ||
const CommonMessageInfo_1 = require("../messages/CommonMessageInfo"); | ||
const StateInit_1 = require("../messages/StateInit"); | ||
const Wallet_1 = require("./Wallet"); | ||
const bn_js_1 = require("bn.js"); | ||
const __1 = require(".."); | ||
const ConfigContract_1 = require("../contracts/ConfigContract"); | ||
const TonCache_1 = require("./TonCache"); | ||
const ton_core_1 = require("ton-core"); | ||
const doOpen_1 = require("./doOpen"); | ||
function convertMessage(t) { | ||
return { | ||
source: t.source !== '' ? Address_1.Address.parseFriendly(t.source).address : null, | ||
destination: t.destination !== '' ? Address_1.Address.parseFriendly(t.destination).address : null, | ||
forwardFee: new bn_js_1.BN(t.fwd_fee), | ||
ihrFee: new bn_js_1.BN(t.ihr_fee), | ||
value: new bn_js_1.BN(t.value), | ||
source: t.source !== '' ? ton_core_1.Address.parseFriendly(t.source).address : null, | ||
destination: t.destination !== '' ? ton_core_1.Address.parseFriendly(t.destination).address : null, | ||
forwardFee: BigInt(t.fwd_fee), | ||
ihrFee: BigInt(t.ihr_fee), | ||
value: BigInt(t.value), | ||
createdLt: t.created_lt, | ||
@@ -49,5 +40,5 @@ body: (t.msg_data['@type'] === 'msg.dataRaw' | ||
data: r.data, | ||
storageFee: new bn_js_1.BN(r.storage_fee), | ||
otherFee: new bn_js_1.BN(r.other_fee), | ||
fee: new bn_js_1.BN(r.fee), | ||
storageFee: BigInt(r.storage_fee), | ||
otherFee: BigInt(r.other_fee), | ||
fee: BigInt(r.fee), | ||
inMessage: r.in_msg ? convertMessage(r.in_msg) : null, | ||
@@ -60,10 +51,6 @@ outMessages: r.out_msgs.map(convertMessage) | ||
_TonClient_api.set(this, void 0); | ||
this.services = { | ||
configs: new ConfigContract_1.ConfigContract(this) | ||
}; | ||
this.parameters = { | ||
endpoint: parameters.endpoint, | ||
cache: parameters.cache ? parameters.cache : new TonCache_1.InMemoryCache() | ||
endpoint: parameters.endpoint | ||
}; | ||
__classPrivateFieldSet(this, _TonClient_api, new HttpApi_1.HttpApi(this.parameters.endpoint, this.parameters.cache, { | ||
__classPrivateFieldSet(this, _TonClient_api, new HttpApi_1.HttpApi(this.parameters.endpoint, { | ||
timeout: parameters.timeout, | ||
@@ -89,8 +76,8 @@ apiKey: parameters.apiKey, | ||
*/ | ||
async callGetMethod(address, name, params = []) { | ||
let res = await __classPrivateFieldGet(this, _TonClient_api, "f").callGetMethod(address, name, params); | ||
async callGetMethod(address, name, stack = []) { | ||
let res = await __classPrivateFieldGet(this, _TonClient_api, "f").callGetMethod(address, name, stack); | ||
if (res.exit_code !== 0) { | ||
throw Error('Unable to execute get method. Got exit_code: ' + res.exit_code); | ||
} | ||
return { gas_used: res.gas_used, stack: res.stack }; | ||
return { gas_used: res.gas_used, stack: parseStack(res.stack) }; | ||
} | ||
@@ -106,3 +93,3 @@ /** | ||
let res = await __classPrivateFieldGet(this, _TonClient_api, "f").callGetMethod(address, name, params); | ||
return { gas_used: res.gas_used, stack: res.stack, exit_code: res.exit_code }; | ||
return { gas_used: res.gas_used, stack: parseStack(res.stack), exit_code: res.exit_code }; | ||
} | ||
@@ -175,3 +162,3 @@ /** | ||
return tx.transactions.map((v) => ({ | ||
account: Address_1.Address.parseRaw(v.account), | ||
account: ton_core_1.Address.parseRaw(v.account), | ||
lt: v.lt, | ||
@@ -186,5 +173,6 @@ hash: v.hash | ||
async sendMessage(src) { | ||
const cell = new Cell_1.Cell(); | ||
src.writeTo(cell); | ||
const boc = await cell.toBoc({ idx: false }); | ||
const boc = (0, ton_core_1.beginCell)() | ||
.storeWritable(src) | ||
.endCell() | ||
.toBoc(); | ||
await __classPrivateFieldGet(this, _TonClient_api, "f").sendBoc(boc); | ||
@@ -213,7 +201,7 @@ } | ||
async sendExternalMessage(contract, src) { | ||
if (await this.isContractDeployed(contract.address)) { | ||
const message = new ExternalMessage_1.ExternalMessage({ | ||
if (await this.isContractDeployed(contract.address) || !contract.init) { | ||
const message = new ton_core_1.ExternalMessage({ | ||
to: contract.address, | ||
body: new CommonMessageInfo_1.CommonMessageInfo({ | ||
body: new __1.CellMessage(src) | ||
body: new ton_core_1.CommonMessageInfo({ | ||
body: new ton_core_1.CellMessage(src) | ||
}) | ||
@@ -224,7 +212,7 @@ }); | ||
else { | ||
const message = new ExternalMessage_1.ExternalMessage({ | ||
const message = new ton_core_1.ExternalMessage({ | ||
to: contract.address, | ||
body: new CommonMessageInfo_1.CommonMessageInfo({ | ||
stateInit: new StateInit_1.StateInit({ code: contract.source.initialCode, data: contract.source.initialData }), | ||
body: new __1.CellMessage(src) | ||
body: new ton_core_1.CommonMessageInfo({ | ||
stateInit: new ton_core_1.StateInit({ code: contract.init.code, data: contract.init.data }), | ||
body: new ton_core_1.CellMessage(src) | ||
}) | ||
@@ -249,3 +237,3 @@ }); | ||
let info = await __classPrivateFieldGet(this, _TonClient_api, "f").getAddressInformation(address); | ||
let balance = new bn_js_1.BN(info.balance); | ||
let balance = BigInt(info.balance); | ||
let state = info.state; | ||
@@ -270,59 +258,151 @@ return { | ||
/** | ||
* Open Wallet from address | ||
* @param source wallet address | ||
* @returns wallet with specified address | ||
* Open contract | ||
* @param src source contract | ||
* @returns contract | ||
*/ | ||
openWalletFromAddress(args) { | ||
return Wallet_1.Wallet.open(this, args.source); | ||
open(src) { | ||
return (0, doOpen_1.doOpen)(src, (args) => createProvider(this, args.address, args.init)); | ||
} | ||
/** | ||
* Open Wallet from secret key. Searches for best wallet contract. | ||
* @param workchain wallet workchain | ||
* @param secretKey wallet secret key | ||
* @returns best matched wallet | ||
* Create a provider | ||
* @param address address | ||
* @param init optional init | ||
* @returns provider | ||
*/ | ||
findWalletFromSecretKey(args) { | ||
return Wallet_1.Wallet.findBestBySecretKey(this, args.workchain, args.secretKey); | ||
provider(address, init) { | ||
return createProvider(this, address, init); | ||
} | ||
/** | ||
* Open wallet with default contract | ||
* @param args workchain and secret key | ||
* @returns wallet | ||
*/ | ||
openWalletDefaultFromSecretKey(args) { | ||
return Wallet_1.Wallet.openDefault(this, args.workchain, args.secretKey); | ||
} | ||
/** | ||
* Open wallet with default contract | ||
* @param args workchain and secret key | ||
* @returns wallet | ||
*/ | ||
openWalletFromSecretKey(args) { | ||
return Wallet_1.Wallet.openByType(this, args.workchain, args.secretKey, args.type); | ||
} | ||
/** | ||
* Opens wallet from custom contract | ||
* @param src source | ||
* @returns wallet | ||
*/ | ||
openWalletFromCustomContract(src) { | ||
return Wallet_1.Wallet.openFromSource(this, src); | ||
} | ||
/** | ||
* Securely creates new wallet | ||
* @param password optional password | ||
*/ | ||
async createNewWallet(args) { | ||
let mnemonic = await (0, ton_crypto_1.mnemonicNew)(24, args.password); | ||
let key = await (0, ton_crypto_1.mnemonicToWalletKey)(mnemonic, args.password); | ||
let kind = args.type || 'org.ton.wallets.v3'; | ||
let wallet = Wallet_1.Wallet.openByType(this, args.workchain, key.secretKey, kind); | ||
return { | ||
mnemonic, | ||
key, | ||
wallet | ||
}; | ||
} | ||
} | ||
exports.TonClient = TonClient; | ||
_TonClient_api = new WeakMap(); | ||
function parseStack(src) { | ||
let stack = []; | ||
for (let s of src) { | ||
if (s[0] === 'num') { | ||
let val = s[1]; | ||
if (val.startsWith('-')) { | ||
stack.push({ type: 'int', value: -BigInt(val.slice(1)) }); | ||
} | ||
else { | ||
stack.push({ type: 'int', value: BigInt(val) }); | ||
} | ||
} | ||
else if (s[0] === 'null') { | ||
stack.push({ type: 'null' }); | ||
} | ||
else if (s[0] === 'cell') { | ||
stack.push({ type: 'cell', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] }); | ||
} | ||
else if (s[0] === 'slice') { | ||
stack.push({ type: 'slice', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] }); | ||
} | ||
else if (s[0] === 'builder') { | ||
stack.push({ type: 'builder', cell: ton_core_1.Cell.fromBoc(Buffer.from(s[1].bytes, 'base64'))[0] }); | ||
} | ||
else { | ||
throw Error('Unsupported stack item type: ' + s[0]); | ||
} | ||
} | ||
return new ton_core_1.TupleReader(stack); | ||
} | ||
function createProvider(client, address, init) { | ||
return { | ||
async getState() { | ||
let state = await client.getContractState(address); | ||
let balance = state.balance; | ||
let last = state.lastTransaction ? { lt: BigInt(state.lastTransaction.lt), hash: Buffer.from(state.lastTransaction.hash, 'base64') } : null; | ||
let storage; | ||
if (state.state === 'active') { | ||
storage = { | ||
type: 'active', | ||
code: state.code ? state.code : null, | ||
data: state.data ? state.data : null, | ||
}; | ||
} | ||
else if (state.state === 'uninitialized') { | ||
storage = { | ||
type: 'uninit', | ||
}; | ||
} | ||
else if (state.state === 'frozen') { | ||
storage = { | ||
type: 'frozen', | ||
stateHash: Buffer.alloc(0), | ||
}; | ||
} | ||
else { | ||
throw Error('Unsupported state'); | ||
} | ||
return { | ||
balance, | ||
last, | ||
state: storage, | ||
}; | ||
}, | ||
async get(name, args) { | ||
let method = await client.callGetMethod(address, name, args); | ||
return { stack: method.stack }; | ||
}, | ||
async external(message) { | ||
// | ||
// Resolve init | ||
// | ||
let neededInit = null; | ||
if (init && !await client.isContractDeployed(address)) { | ||
neededInit = init; | ||
} | ||
// | ||
// Send package | ||
// | ||
const ext = new ton_core_1.ExternalMessage({ | ||
to: address, | ||
body: new ton_core_1.CommonMessageInfo({ | ||
stateInit: neededInit ? new ton_core_1.StateInit({ code: neededInit.code, data: neededInit.data }) : null, | ||
body: new ton_core_1.CellMessage(message) | ||
}) | ||
}); | ||
let boc = (0, ton_core_1.beginCell)() | ||
.storeWritable(ext) | ||
.endCell() | ||
.toBoc(); | ||
await client.sendFile(boc); | ||
}, | ||
async internal(via, message) { | ||
// Resolve init | ||
let neededInit = null; | ||
if (init && (!await client.isContractDeployed(address))) { | ||
neededInit = init; | ||
} | ||
// Resolve bounce | ||
let bounce = true; | ||
if (message.bounce !== null && message.bounce !== undefined) { | ||
bounce = message.bounce; | ||
} | ||
// Resolve value | ||
let value; | ||
if (typeof message.value === 'string') { | ||
value = (0, ton_core_1.toNano)(message.value); | ||
} | ||
else { | ||
value = message.value; | ||
} | ||
// Resolve body | ||
let body = null; | ||
if (typeof message.body === 'string') { | ||
body = (0, ton_core_1.comment)(message.body); | ||
} | ||
else if (message.body) { | ||
body = message.body; | ||
} | ||
// Send internal message | ||
await via.send({ | ||
to: address, | ||
value, | ||
bounce, | ||
sendMode: message.sendMode, | ||
init: neededInit, | ||
body | ||
}); | ||
} | ||
}; | ||
} |
/// <reference types="node" /> | ||
import { AxiosAdapter } from "axios"; | ||
import BN from "bn.js"; | ||
import { Address } from "../address/Address"; | ||
import { StackItem } from "../block/stack"; | ||
import { Cell } from "../boc/Cell"; | ||
import { Address, Cell, Contract, ContractProvider, TupleItem } from "ton-core"; | ||
export declare type TonClient4Parameters = { | ||
@@ -24,2 +21,6 @@ /** | ||
constructor(args: TonClient4Parameters); | ||
/** | ||
* Get Last Block | ||
* @returns last block info | ||
*/ | ||
getLastBlock(): Promise<{ | ||
@@ -40,2 +41,7 @@ last: { | ||
}>; | ||
/** | ||
* Get block info | ||
* @param seqno block sequence number | ||
* @returns block info | ||
*/ | ||
getBlock(seqno: number): Promise<{ | ||
@@ -55,2 +61,7 @@ shards: { | ||
}>; | ||
/** | ||
* Get block info by unix timestamp | ||
* @param ts unix timestamp | ||
* @returns block info | ||
*/ | ||
getBlockByUtime(ts: number): Promise<{ | ||
@@ -70,2 +81,8 @@ shards: { | ||
}>; | ||
/** | ||
* Get block info by unix timestamp | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @returns account info | ||
*/ | ||
getAccount(seqno: number, address: Address): Promise<{ | ||
@@ -108,2 +125,8 @@ account: { | ||
}>; | ||
/** | ||
* Get account lite info (without code and data) | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @returns account lite info | ||
*/ | ||
getAccountLite(seqno: number, address: Address): Promise<{ | ||
@@ -139,3 +162,10 @@ account: { | ||
}>; | ||
isAccountChanged(seqno: number, address: Address, lt: BN): Promise<{ | ||
/** | ||
* Check if account was updated since | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @param lt account last transaction lt | ||
* @returns account change info | ||
*/ | ||
isAccountChanged(seqno: number, address: Address, lt: bigint): Promise<{ | ||
changed: boolean; | ||
@@ -150,3 +180,10 @@ block: { | ||
}>; | ||
getAccountTransactions(address: Address, lt: BN, hash: Buffer): Promise<{ | ||
/** | ||
* Load unparsed account transactions | ||
* @param address address | ||
* @param lt last transaction lt | ||
* @param hash last transaction hash | ||
* @returns unparsed transactions | ||
*/ | ||
getAccountTransactions(address: Address, lt: bigint, hash: Buffer): Promise<{ | ||
block: { | ||
@@ -161,2 +198,8 @@ workchain: number; | ||
}[]>; | ||
/** | ||
* Get network config | ||
* @param seqno block sequence number | ||
* @param ids optional config ids | ||
* @returns network config | ||
*/ | ||
getConfig(seqno: number, ids?: number[]): Promise<{ | ||
@@ -171,5 +214,13 @@ config: { | ||
}>; | ||
runMethod(seqno: number, address: Address, name: string, args?: StackItem[]): Promise<{ | ||
/** | ||
* Execute run method | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @param name method name | ||
* @param args method arguments | ||
* @returns method result | ||
*/ | ||
runMethod(seqno: number, address: Address, name: string, args?: TupleItem[]): Promise<{ | ||
exitCode: number; | ||
result: StackItem[]; | ||
result: TupleItem[]; | ||
resultRaw: string | null; | ||
@@ -191,5 +242,44 @@ block: { | ||
}>; | ||
/** | ||
* Send external message | ||
* @param message message boc | ||
* @returns message status | ||
*/ | ||
sendMessage(message: Buffer): Promise<{ | ||
status: number; | ||
}>; | ||
/** | ||
* Open smart contract | ||
* @param contract contract | ||
* @returns opened contract | ||
*/ | ||
open<T extends Contract>(contract: T): { [P in keyof T]: P extends `get${string}` | `send${string}` ? T[P] extends (x: ContractProvider, ...args: infer P_1) => infer R ? (...args: P_1) => R : never : T[P]; }; | ||
/** | ||
* Open smart contract | ||
* @param block block number | ||
* @param contract contract | ||
* @returns opened contract | ||
*/ | ||
openAt<T extends Contract>(block: number, contract: T): { [P in keyof T]: P extends `get${string}` | `send${string}` ? T[P] extends (x: ContractProvider, ...args: infer P_1) => infer R ? (...args: P_1) => R : never : T[P]; }; | ||
/** | ||
* Create provider | ||
* @param address address | ||
* @param init optional init data | ||
* @returns provider | ||
*/ | ||
provider(address: Address, init?: { | ||
code: Cell; | ||
data: Cell; | ||
} | null): ContractProvider; | ||
/** | ||
* Create provider at specified block number | ||
* @param block block number | ||
* @param address address | ||
* @param init optional init data | ||
* @returns provider | ||
*/ | ||
providerAt(block: number, address: Address, init?: { | ||
code: Cell; | ||
data: Cell; | ||
} | null): ContractProvider; | ||
} |
@@ -40,5 +40,5 @@ "use strict"; | ||
const t = __importStar(require("io-ts")); | ||
const stack_1 = require("../block/stack"); | ||
const Cell_1 = require("../boc/Cell"); | ||
const ton_core_1 = require("ton-core"); | ||
const toUrlSafe_1 = require("../utils/toUrlSafe"); | ||
const doOpen_1 = require("./doOpen"); | ||
class TonClient4 { | ||
@@ -53,2 +53,6 @@ constructor(args) { | ||
} | ||
/** | ||
* Get Last Block | ||
* @returns last block info | ||
*/ | ||
async getLastBlock() { | ||
@@ -61,2 +65,7 @@ let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/latest', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
} | ||
/** | ||
* Get block info | ||
* @param seqno block sequence number | ||
* @returns block info | ||
*/ | ||
async getBlock(seqno) { | ||
@@ -72,2 +81,7 @@ let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
} | ||
/** | ||
* Get block info by unix timestamp | ||
* @param ts unix timestamp | ||
* @returns block info | ||
*/ | ||
async getBlockByUtime(ts) { | ||
@@ -83,4 +97,10 @@ let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/utime/' + ts, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
} | ||
/** | ||
* Get block info by unix timestamp | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @returns account info | ||
*/ | ||
async getAccount(seqno, address) { | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toFriendly({ urlSafe: true }), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
if (!accountCodec.is(res.data)) { | ||
@@ -91,4 +111,10 @@ throw Error('Mailformed response'); | ||
} | ||
/** | ||
* Get account lite info (without code and data) | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @returns account lite info | ||
*/ | ||
async getAccountLite(seqno, address) { | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toFriendly({ urlSafe: true }) + '/lite', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/lite', { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
if (!accountLiteCodec.is(res.data)) { | ||
@@ -99,4 +125,11 @@ throw Error('Mailformed response'); | ||
} | ||
/** | ||
* Check if account was updated since | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @param lt account last transaction lt | ||
* @returns account change info | ||
*/ | ||
async isAccountChanged(seqno, address, lt) { | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toFriendly({ urlSafe: true }) + '/changed/' + lt.toString(10), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/changed/' + lt.toString(10), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
if (!changedCodec.is(res.data)) { | ||
@@ -107,4 +140,11 @@ throw Error('Mailformed response'); | ||
} | ||
/** | ||
* Load unparsed account transactions | ||
* @param address address | ||
* @param lt last transaction lt | ||
* @param hash last transaction hash | ||
* @returns unparsed transactions | ||
*/ | ||
async getAccountTransactions(address, lt, hash) { | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/account/' + address.toFriendly({ urlSafe: true }) + '/tx/' + lt.toString(10) + '/' + (0, toUrlSafe_1.toUrlSafe)(hash.toString('base64')), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
let res = await axios_1.default.get(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/account/' + address.toString({ urlSafe: true }) + '/tx/' + lt.toString(10) + '/' + (0, toUrlSafe_1.toUrlSafe)(hash.toString('base64')), { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
if (!transactionsCodec.is(res.data)) { | ||
@@ -115,3 +155,3 @@ throw Error('Mailformed response'); | ||
let tx = []; | ||
let cells = Cell_1.Cell.fromBoc(Buffer.from(data.boc, 'base64')); | ||
let cells = ton_core_1.Cell.fromBoc(Buffer.from(data.boc, 'base64')); | ||
for (let i = 0; i < data.blocks.length; i++) { | ||
@@ -125,2 +165,8 @@ tx.push({ | ||
} | ||
/** | ||
* Get network config | ||
* @param seqno block sequence number | ||
* @param ids optional config ids | ||
* @returns network config | ||
*/ | ||
async getConfig(seqno, ids) { | ||
@@ -137,5 +183,13 @@ let tail = ''; | ||
} | ||
/** | ||
* Execute run method | ||
* @param seqno block sequence number | ||
* @param address account address | ||
* @param name method name | ||
* @param args method arguments | ||
* @returns method result | ||
*/ | ||
async runMethod(seqno, address, name, args) { | ||
let tail = args && args.length > 0 ? '/' + (0, toUrlSafe_1.toUrlSafe)((0, stack_1.serializeStack)(args).toBoc({ idx: false, crc32: false }).toString('base64')) : ''; | ||
let url = __classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toFriendly({ urlSafe: true }) + '/run/' + name + tail; | ||
let tail = args && args.length > 0 ? '/' + (0, toUrlSafe_1.toUrlSafe)((0, ton_core_1.serializeTuple)(args).toBoc({ idx: false, crc32: false }).toString('base64')) : ''; | ||
let url = __classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/block/' + seqno + '/' + address.toString({ urlSafe: true }) + '/run/' + name + tail; | ||
let res = await axios_1.default.get(url, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
@@ -147,3 +201,3 @@ if (!runMethodCodec.is(res.data)) { | ||
exitCode: res.data.exitCode, | ||
result: res.data.resultRaw ? (0, stack_1.parseStack)(Cell_1.Cell.fromBoc(Buffer.from(res.data.resultRaw, 'base64'))[0]) : [], | ||
result: res.data.resultRaw ? (0, ton_core_1.parseTuple)(ton_core_1.Cell.fromBoc(Buffer.from(res.data.resultRaw, 'base64'))[0]) : [], | ||
resultRaw: res.data.resultRaw, | ||
@@ -154,2 +208,7 @@ block: res.data.block, | ||
} | ||
/** | ||
* Send external message | ||
* @param message message boc | ||
* @returns message status | ||
*/ | ||
async sendMessage(message) { | ||
@@ -162,5 +221,159 @@ let res = await axios_1.default.post(__classPrivateFieldGet(this, _TonClient4_endpoint, "f") + '/send', { boc: message.toString('base64') }, { adapter: __classPrivateFieldGet(this, _TonClient4_adapter, "f"), timeout: __classPrivateFieldGet(this, _TonClient4_timeout, "f") }); | ||
} | ||
/** | ||
* Open smart contract | ||
* @param contract contract | ||
* @returns opened contract | ||
*/ | ||
open(contract) { | ||
return (0, doOpen_1.doOpen)(contract, (args) => createProvider(this, null, args.address, args.init)); | ||
} | ||
/** | ||
* Open smart contract | ||
* @param block block number | ||
* @param contract contract | ||
* @returns opened contract | ||
*/ | ||
openAt(block, contract) { | ||
return (0, doOpen_1.doOpen)(contract, (args) => createProvider(this, block, args.address, args.init)); | ||
} | ||
/** | ||
* Create provider | ||
* @param address address | ||
* @param init optional init data | ||
* @returns provider | ||
*/ | ||
provider(address, init) { | ||
return createProvider(this, null, address, init ? init : null); | ||
} | ||
/** | ||
* Create provider at specified block number | ||
* @param block block number | ||
* @param address address | ||
* @param init optional init data | ||
* @returns provider | ||
*/ | ||
providerAt(block, address, init) { | ||
return createProvider(this, block, address, init ? init : null); | ||
} | ||
} | ||
exports.TonClient4 = TonClient4; | ||
_TonClient4_endpoint = new WeakMap(), _TonClient4_timeout = new WeakMap(), _TonClient4_adapter = new WeakMap(); | ||
function createProvider(client, block, address, init) { | ||
return { | ||
async getState() { | ||
// Resolve block | ||
let sq = block; | ||
if (sq === null) { | ||
let res = await client.getLastBlock(); | ||
sq = res.last.seqno; | ||
} | ||
// Load state | ||
let state = await client.getAccount(sq, address); | ||
// Convert state | ||
let last = state.account.last ? { lt: BigInt(state.account.last.lt), hash: Buffer.from(state.account.last.hash, 'base64') } : null; | ||
let storage; | ||
if (state.account.state.type === 'active') { | ||
storage = { | ||
type: 'active', | ||
code: state.account.state.code ? Buffer.from(state.account.state.code, 'base64') : null, | ||
data: state.account.state.data ? Buffer.from(state.account.state.data, 'base64') : null, | ||
}; | ||
} | ||
else if (state.account.state.type === 'uninit') { | ||
storage = { | ||
type: 'uninit', | ||
}; | ||
} | ||
else if (state.account.state.type === 'frozen') { | ||
storage = { | ||
type: 'frozen', | ||
stateHash: Buffer.from(state.account.state.stateHash, 'base64'), | ||
}; | ||
} | ||
else { | ||
throw Error('Unsupported state'); | ||
} | ||
return { | ||
balance: BigInt(state.account.balance.coins), | ||
last: last, | ||
state: storage | ||
}; | ||
}, | ||
async get(name, args) { | ||
let sq = block; | ||
if (sq === null) { | ||
let res = await client.getLastBlock(); | ||
sq = res.last.seqno; | ||
} | ||
let method = await client.runMethod(sq, address, name, args); | ||
if (method.exitCode !== 0 && method.exitCode !== 1) { | ||
throw Error('Exit code: ' + method.exitCode); | ||
} | ||
return { | ||
stack: new ton_core_1.TupleReader(method.result), | ||
}; | ||
}, | ||
async external(message) { | ||
// Resolve last | ||
let last = await client.getLastBlock(); | ||
// Resolve init | ||
let neededInit = null; | ||
if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') { | ||
neededInit = init; | ||
} | ||
// Send with state init | ||
const ext = new ton_core_1.ExternalMessage({ | ||
to: address, | ||
body: new ton_core_1.CommonMessageInfo({ | ||
stateInit: neededInit ? new ton_core_1.StateInit({ code: neededInit.code, data: neededInit.data }) : null, | ||
body: new ton_core_1.CellMessage(message) | ||
}) | ||
}); | ||
let pkg = (0, ton_core_1.beginCell)() | ||
.storeWritable(ext) | ||
.endCell() | ||
.toBoc(); | ||
await client.sendMessage(pkg); | ||
}, | ||
async internal(via, message) { | ||
// Resolve last | ||
let last = await client.getLastBlock(); | ||
// Resolve init | ||
let neededInit = null; | ||
if (init && (await client.getAccountLite(last.last.seqno, address)).account.state.type !== 'active') { | ||
neededInit = init; | ||
} | ||
// Resolve bounce | ||
let bounce = true; | ||
if (message.bounce !== null && message.bounce !== undefined) { | ||
bounce = message.bounce; | ||
} | ||
// Resolve value | ||
let value; | ||
if (typeof message.value === 'string') { | ||
value = (0, ton_core_1.toNano)(message.value); | ||
} | ||
else { | ||
value = message.value; | ||
} | ||
// Resolve body | ||
let body = null; | ||
if (typeof message.body === 'string') { | ||
body = (0, ton_core_1.comment)(message.body); | ||
} | ||
else if (message.body) { | ||
body = message.body; | ||
} | ||
// Send internal message | ||
await via.send({ | ||
to: address, | ||
value, | ||
bounce, | ||
sendMode: message.sendMode, | ||
init: neededInit, | ||
body | ||
}); | ||
} | ||
}; | ||
} | ||
// | ||
@@ -167,0 +380,0 @@ // Codecs |
@@ -1,59 +0,15 @@ | ||
export { BitString } from './boc/BitString'; | ||
export { BitStringReader } from './boc/BitStringReader'; | ||
export { Cell } from './boc/Cell'; | ||
export { CellType } from './boc/CellType'; | ||
export * from 'ton-core'; | ||
export { HttpApi } from './client/api/HttpApi'; | ||
export { TonClient } from './client/TonClient'; | ||
export { Wallet, validateWalletType, WalletContractType, allTypes as AllWalletContractTypes } from './client/Wallet'; | ||
export { Address } from './address/Address'; | ||
export { AddressExternal } from './address/AddressExternal'; | ||
export { toNano, fromNano } from './utils/convert'; | ||
export { KeyStore, KeyRecord } from './keystore/KeyStore'; | ||
export { TonTransaction, TonMessage, TonMessageData } from './client/TonTransaction'; | ||
export { SendMode } from './client/SendMode'; | ||
export { TonCache, InMemoryCache } from './client/TonCache'; | ||
export { HttpApi } from './client/api/HttpApi'; | ||
export { Slice } from './boc/Slice'; | ||
export { ADNLAddress } from './address/ADNLAddress'; | ||
export { ADNLKey } from './keystore/ADNLKey'; | ||
export { Builder, beginCell } from './boc/Builder'; | ||
export { DictBuilder, beginDict } from './boc/DictBuilder'; | ||
export { bnToAddress } from './utils/bnToAddress'; | ||
export { TupleSlice } from './boc/TupleSlice'; | ||
export { TupleSlice4 } from './boc/TupleSlice4'; | ||
export { getSupportedInterfaces, resolveKnownInterface, getSupportedInterfacesRaw, KnownInterface, SupportedInterface } from './introspection/getSupportedInterfaces'; | ||
export { SupportedMessage, parseSupportedMessage } from './introspection/parseSupportedMessage'; | ||
export { Message } from './messages/Message'; | ||
export { CellMessage } from './messages/CellMessage'; | ||
export { InternalMessage } from './messages/InternalMessage'; | ||
export { ExternalMessage } from './messages/ExternalMessage'; | ||
export { EmptyMessage } from './messages/EmptyMessage'; | ||
export { StateInit } from './messages/StateInit'; | ||
export { CommonMessageInfo } from './messages/CommonMessageInfo'; | ||
export { CommentMessage } from './messages/CommentMessage'; | ||
export { BinaryMessage } from './messages/BinaryMessage'; | ||
export { Contract } from './contracts/Contract'; | ||
export { WalletContract } from './contracts/WalletContract'; | ||
export { createWalletTransferV1, createWalletTransferV2, createWalletTransferV3 } from './contracts/messages/createWalletTransfer'; | ||
export { contractAddress } from './contracts/contractAddress'; | ||
export { ContractSource } from './contracts/sources/ContractSource'; | ||
export { WalletSource } from './contracts/sources/WalletSource'; | ||
export { UnknownContractSource } from './contracts/sources/UnknownContractSource'; | ||
export { WalletV1R1Source } from './contracts/sources/WalletV1R1Source'; | ||
export { WalletV1R2Source } from './contracts/sources/WalletV1R2Source'; | ||
export { WalletV1R3Source } from './contracts/sources/WalletV1R3Source'; | ||
export { WalletV2R1Source } from './contracts/sources/WalletV2R1Source'; | ||
export { WalletV2R2Source } from './contracts/sources/WalletV2R2Source'; | ||
export { WalletV3R1Source } from './contracts/sources/WalletV3R1Source'; | ||
export { WalletV3R2Source } from './contracts/sources/WalletV3R2Source'; | ||
export { WalletV4Source } from './contracts/sources/WalletV4Source'; | ||
export { ConfigStore } from './utils/ConfigStore'; | ||
export { parseDict, parseDictBitString, parseDictRefs } from './boc/dict/parseDict'; | ||
export { serializeDict } from './boc/dict/serializeDict'; | ||
export { safeSign, safeSignVerify } from './client/safeSign'; | ||
export { parseTransaction, parseAccountStatus, parseCurrencyCollection, parseCommonMsgInfo, parseStateInit, parseMessage, parseMessageRelaxed, parseHashUpdate, parseAccountChange, parseStorageUsedShort, parseStoragePhase, parseCreditPhase, parseComputePhase, parseActionPhase, parseBouncePhase, parseTransactionDescription, parseRawTickTock, parseStorageUsed, parseStorageInfo, parseAccountState, parseAccountStorage, parseAccount, parseShardIdent, parseShardAccount, parseDepthBalanceInfo, parseShardAccounts, parseShardStateUnsplit, parseMasterchainStateExtra, RawAccountStatus, RawCurrencyCollection, RawCommonMessageInfo, InternalCommonMessageInfo, ExternalOutCommonMessageInfo, ExternalInCommonMessageInfo, InternalCommonMessageInfoRelaxed, ExternalOutCommonMessageInfoRelaxed, RawStateInit, RawMessage, RawHashUpdate, RawAccountStatusChange, RawStorageUsedShort, RawStoragePhase, RawComputePhase, SkippedComputePhase, ComputedComputePhase, RawActionPhase, RawBouncePhase, OkBouncePhase, NoFundsBouncePhase, NegativeFundsBouncePhase, RawTransactionDescription, GenericTransactionDescription, StorageTransactionDescription, TickTockTransactionDescription, RawTransaction, RawTickTock, RawStorageUsed, RawStorageInfo, RawAccountState, ActiveAccountState, UninitAccountState, FrozenAccountState, RawAccountStorage, RawAccount, RawShardIdent, RawShardAccount, RawDepthBalanceInfo, RawShardAccountRef, RawShardStateUnsplit, RawCreditPhase, RawMasterChainStateExtra, } from './block/parse'; | ||
export { StackNull, StackInt, StackNaN, StackCell, StackSlice, StackBuilder, StackTuple, StackItem, serializeStack, parseStack } from './block/stack'; | ||
export { TonClientTransaction, TonClientMessage, TonClientMessageData } from './client/api/TonClientTransaction'; | ||
export { TonClient4, TonClient4Parameters } from './client/TonClient4'; | ||
export { computeStorageFees, computeFwdFees, computeGasPrices, computeExternalMessageFees, computeMessageForwardFees, } from './block/fees'; | ||
export { configParseMasterAddress, configParseWorkchainDescriptor, parseValidatorDescr, parseValidatorSet, parseBridge, configParseMasterAddressRequired, configParse15, configParse16, configParse17, configParse18, configParse8, configParse40, configParse12, configParseValidatorSet, configParseBridge, configParseGasLimitsPrices, GasLimitsPrices, configParseMsgPrices, MsgPrices, parseFullConfig, configParse28, configParse29 } from './contracts/configs/configParsing'; | ||
export { Traits } from './traits/index'; | ||
export { readString, stringToCell } from './utils/strings'; | ||
export { WalletContractV1R1 } from './wallets/WalletContractV1R1'; | ||
export { WalletContractV1R2 } from './wallets/WalletContractV1R2'; | ||
export { WalletContractV1R3 } from './wallets/WalletContractV1R3'; | ||
export { WalletContractV2R1 } from './wallets/WalletContractV2R1'; | ||
export { WalletContractV2R2 } from './wallets/WalletContractV2R2'; | ||
export { WalletContractV3R1 } from './wallets/WalletContractV3R1'; | ||
export { WalletContractV3R2 } from './wallets/WalletContractV3R2'; | ||
export { WalletContractV4 } from './wallets/WalletContractV4'; | ||
export { JettonMaster } from './jetton/JettonMaster'; | ||
export { JettonWallet } from './jetton/JettonWallet'; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.WalletV3R2Source = exports.WalletV3R1Source = exports.WalletV2R2Source = exports.WalletV2R1Source = exports.WalletV1R3Source = exports.WalletV1R2Source = exports.WalletV1R1Source = exports.UnknownContractSource = exports.contractAddress = exports.createWalletTransferV3 = exports.createWalletTransferV2 = exports.createWalletTransferV1 = exports.WalletContract = exports.BinaryMessage = exports.CommentMessage = exports.CommonMessageInfo = exports.StateInit = exports.EmptyMessage = exports.ExternalMessage = exports.InternalMessage = exports.CellMessage = exports.parseSupportedMessage = exports.getSupportedInterfacesRaw = exports.resolveKnownInterface = exports.getSupportedInterfaces = exports.TupleSlice4 = exports.TupleSlice = exports.bnToAddress = exports.beginDict = exports.DictBuilder = exports.beginCell = exports.Builder = exports.ADNLKey = exports.ADNLAddress = exports.Slice = exports.HttpApi = exports.InMemoryCache = exports.SendMode = exports.KeyStore = exports.fromNano = exports.toNano = exports.AddressExternal = exports.Address = exports.AllWalletContractTypes = exports.validateWalletType = exports.Wallet = exports.TonClient = exports.Cell = exports.BitStringReader = exports.BitString = void 0; | ||
exports.configParseMasterAddressRequired = exports.parseBridge = exports.parseValidatorSet = exports.parseValidatorDescr = exports.configParseWorkchainDescriptor = exports.configParseMasterAddress = exports.computeMessageForwardFees = exports.computeExternalMessageFees = exports.computeGasPrices = exports.computeFwdFees = exports.computeStorageFees = exports.TonClient4 = exports.parseStack = exports.serializeStack = exports.parseMasterchainStateExtra = exports.parseShardStateUnsplit = exports.parseShardAccounts = exports.parseDepthBalanceInfo = exports.parseShardAccount = exports.parseShardIdent = exports.parseAccount = exports.parseAccountStorage = exports.parseAccountState = exports.parseStorageInfo = exports.parseStorageUsed = exports.parseRawTickTock = exports.parseTransactionDescription = exports.parseBouncePhase = exports.parseActionPhase = exports.parseComputePhase = exports.parseCreditPhase = exports.parseStoragePhase = exports.parseStorageUsedShort = exports.parseAccountChange = exports.parseHashUpdate = exports.parseMessageRelaxed = exports.parseMessage = exports.parseStateInit = exports.parseCommonMsgInfo = exports.parseCurrencyCollection = exports.parseAccountStatus = exports.parseTransaction = exports.safeSignVerify = exports.safeSign = exports.serializeDict = exports.parseDictRefs = exports.parseDictBitString = exports.parseDict = exports.ConfigStore = exports.WalletV4Source = void 0; | ||
exports.stringToCell = exports.readString = exports.Traits = exports.configParse29 = exports.configParse28 = exports.parseFullConfig = exports.configParseMsgPrices = exports.configParseGasLimitsPrices = exports.configParseBridge = exports.configParseValidatorSet = exports.configParse12 = exports.configParse40 = exports.configParse8 = exports.configParse18 = exports.configParse17 = exports.configParse16 = exports.configParse15 = void 0; | ||
var BitString_1 = require("./boc/BitString"); | ||
Object.defineProperty(exports, "BitString", { enumerable: true, get: function () { return BitString_1.BitString; } }); | ||
var BitStringReader_1 = require("./boc/BitStringReader"); | ||
Object.defineProperty(exports, "BitStringReader", { enumerable: true, get: function () { return BitStringReader_1.BitStringReader; } }); | ||
var Cell_1 = require("./boc/Cell"); | ||
Object.defineProperty(exports, "Cell", { enumerable: true, get: function () { return Cell_1.Cell; } }); | ||
exports.JettonWallet = exports.JettonMaster = exports.WalletContractV4 = exports.WalletContractV3R2 = exports.WalletContractV3R1 = exports.WalletContractV2R2 = exports.WalletContractV2R1 = exports.WalletContractV1R3 = exports.WalletContractV1R2 = exports.WalletContractV1R1 = exports.TonClient4 = exports.TonClient = exports.HttpApi = void 0; | ||
__exportStar(require("ton-core"), exports); | ||
// | ||
// toncenter Client | ||
// | ||
var HttpApi_1 = require("./client/api/HttpApi"); | ||
Object.defineProperty(exports, "HttpApi", { enumerable: true, get: function () { return HttpApi_1.HttpApi; } }); | ||
var TonClient_1 = require("./client/TonClient"); | ||
Object.defineProperty(exports, "TonClient", { enumerable: true, get: function () { return TonClient_1.TonClient; } }); | ||
var Wallet_1 = require("./client/Wallet"); | ||
Object.defineProperty(exports, "Wallet", { enumerable: true, get: function () { return Wallet_1.Wallet; } }); | ||
Object.defineProperty(exports, "validateWalletType", { enumerable: true, get: function () { return Wallet_1.validateWalletType; } }); | ||
Object.defineProperty(exports, "AllWalletContractTypes", { enumerable: true, get: function () { return Wallet_1.allTypes; } }); | ||
var Address_1 = require("./address/Address"); | ||
Object.defineProperty(exports, "Address", { enumerable: true, get: function () { return Address_1.Address; } }); | ||
var AddressExternal_1 = require("./address/AddressExternal"); | ||
Object.defineProperty(exports, "AddressExternal", { enumerable: true, get: function () { return AddressExternal_1.AddressExternal; } }); | ||
var convert_1 = require("./utils/convert"); | ||
Object.defineProperty(exports, "toNano", { enumerable: true, get: function () { return convert_1.toNano; } }); | ||
Object.defineProperty(exports, "fromNano", { enumerable: true, get: function () { return convert_1.fromNano; } }); | ||
var KeyStore_1 = require("./keystore/KeyStore"); | ||
Object.defineProperty(exports, "KeyStore", { enumerable: true, get: function () { return KeyStore_1.KeyStore; } }); | ||
var SendMode_1 = require("./client/SendMode"); | ||
Object.defineProperty(exports, "SendMode", { enumerable: true, get: function () { return SendMode_1.SendMode; } }); | ||
var TonCache_1 = require("./client/TonCache"); | ||
Object.defineProperty(exports, "InMemoryCache", { enumerable: true, get: function () { return TonCache_1.InMemoryCache; } }); | ||
var HttpApi_1 = require("./client/api/HttpApi"); | ||
Object.defineProperty(exports, "HttpApi", { enumerable: true, get: function () { return HttpApi_1.HttpApi; } }); | ||
var Slice_1 = require("./boc/Slice"); | ||
Object.defineProperty(exports, "Slice", { enumerable: true, get: function () { return Slice_1.Slice; } }); | ||
var ADNLAddress_1 = require("./address/ADNLAddress"); | ||
Object.defineProperty(exports, "ADNLAddress", { enumerable: true, get: function () { return ADNLAddress_1.ADNLAddress; } }); | ||
var ADNLKey_1 = require("./keystore/ADNLKey"); | ||
Object.defineProperty(exports, "ADNLKey", { enumerable: true, get: function () { return ADNLKey_1.ADNLKey; } }); | ||
var Builder_1 = require("./boc/Builder"); | ||
Object.defineProperty(exports, "Builder", { enumerable: true, get: function () { return Builder_1.Builder; } }); | ||
Object.defineProperty(exports, "beginCell", { enumerable: true, get: function () { return Builder_1.beginCell; } }); | ||
var DictBuilder_1 = require("./boc/DictBuilder"); | ||
Object.defineProperty(exports, "DictBuilder", { enumerable: true, get: function () { return DictBuilder_1.DictBuilder; } }); | ||
Object.defineProperty(exports, "beginDict", { enumerable: true, get: function () { return DictBuilder_1.beginDict; } }); | ||
var bnToAddress_1 = require("./utils/bnToAddress"); | ||
Object.defineProperty(exports, "bnToAddress", { enumerable: true, get: function () { return bnToAddress_1.bnToAddress; } }); | ||
var TupleSlice_1 = require("./boc/TupleSlice"); | ||
Object.defineProperty(exports, "TupleSlice", { enumerable: true, get: function () { return TupleSlice_1.TupleSlice; } }); | ||
var TupleSlice4_1 = require("./boc/TupleSlice4"); | ||
Object.defineProperty(exports, "TupleSlice4", { enumerable: true, get: function () { return TupleSlice4_1.TupleSlice4; } }); | ||
var getSupportedInterfaces_1 = require("./introspection/getSupportedInterfaces"); | ||
Object.defineProperty(exports, "getSupportedInterfaces", { enumerable: true, get: function () { return getSupportedInterfaces_1.getSupportedInterfaces; } }); | ||
Object.defineProperty(exports, "resolveKnownInterface", { enumerable: true, get: function () { return getSupportedInterfaces_1.resolveKnownInterface; } }); | ||
Object.defineProperty(exports, "getSupportedInterfacesRaw", { enumerable: true, get: function () { return getSupportedInterfaces_1.getSupportedInterfacesRaw; } }); | ||
var parseSupportedMessage_1 = require("./introspection/parseSupportedMessage"); | ||
Object.defineProperty(exports, "parseSupportedMessage", { enumerable: true, get: function () { return parseSupportedMessage_1.parseSupportedMessage; } }); | ||
var CellMessage_1 = require("./messages/CellMessage"); | ||
Object.defineProperty(exports, "CellMessage", { enumerable: true, get: function () { return CellMessage_1.CellMessage; } }); | ||
var InternalMessage_1 = require("./messages/InternalMessage"); | ||
Object.defineProperty(exports, "InternalMessage", { enumerable: true, get: function () { return InternalMessage_1.InternalMessage; } }); | ||
var ExternalMessage_1 = require("./messages/ExternalMessage"); | ||
Object.defineProperty(exports, "ExternalMessage", { enumerable: true, get: function () { return ExternalMessage_1.ExternalMessage; } }); | ||
var EmptyMessage_1 = require("./messages/EmptyMessage"); | ||
Object.defineProperty(exports, "EmptyMessage", { enumerable: true, get: function () { return EmptyMessage_1.EmptyMessage; } }); | ||
var StateInit_1 = require("./messages/StateInit"); | ||
Object.defineProperty(exports, "StateInit", { enumerable: true, get: function () { return StateInit_1.StateInit; } }); | ||
var CommonMessageInfo_1 = require("./messages/CommonMessageInfo"); | ||
Object.defineProperty(exports, "CommonMessageInfo", { enumerable: true, get: function () { return CommonMessageInfo_1.CommonMessageInfo; } }); | ||
var CommentMessage_1 = require("./messages/CommentMessage"); | ||
Object.defineProperty(exports, "CommentMessage", { enumerable: true, get: function () { return CommentMessage_1.CommentMessage; } }); | ||
var BinaryMessage_1 = require("./messages/BinaryMessage"); | ||
Object.defineProperty(exports, "BinaryMessage", { enumerable: true, get: function () { return BinaryMessage_1.BinaryMessage; } }); | ||
var WalletContract_1 = require("./contracts/WalletContract"); | ||
Object.defineProperty(exports, "WalletContract", { enumerable: true, get: function () { return WalletContract_1.WalletContract; } }); | ||
var createWalletTransfer_1 = require("./contracts/messages/createWalletTransfer"); | ||
Object.defineProperty(exports, "createWalletTransferV1", { enumerable: true, get: function () { return createWalletTransfer_1.createWalletTransferV1; } }); | ||
Object.defineProperty(exports, "createWalletTransferV2", { enumerable: true, get: function () { return createWalletTransfer_1.createWalletTransferV2; } }); | ||
Object.defineProperty(exports, "createWalletTransferV3", { enumerable: true, get: function () { return createWalletTransfer_1.createWalletTransferV3; } }); | ||
// Sources | ||
var contractAddress_1 = require("./contracts/contractAddress"); | ||
Object.defineProperty(exports, "contractAddress", { enumerable: true, get: function () { return contractAddress_1.contractAddress; } }); | ||
var UnknownContractSource_1 = require("./contracts/sources/UnknownContractSource"); | ||
Object.defineProperty(exports, "UnknownContractSource", { enumerable: true, get: function () { return UnknownContractSource_1.UnknownContractSource; } }); | ||
var WalletV1R1Source_1 = require("./contracts/sources/WalletV1R1Source"); | ||
Object.defineProperty(exports, "WalletV1R1Source", { enumerable: true, get: function () { return WalletV1R1Source_1.WalletV1R1Source; } }); | ||
var WalletV1R2Source_1 = require("./contracts/sources/WalletV1R2Source"); | ||
Object.defineProperty(exports, "WalletV1R2Source", { enumerable: true, get: function () { return WalletV1R2Source_1.WalletV1R2Source; } }); | ||
var WalletV1R3Source_1 = require("./contracts/sources/WalletV1R3Source"); | ||
Object.defineProperty(exports, "WalletV1R3Source", { enumerable: true, get: function () { return WalletV1R3Source_1.WalletV1R3Source; } }); | ||
var WalletV2R1Source_1 = require("./contracts/sources/WalletV2R1Source"); | ||
Object.defineProperty(exports, "WalletV2R1Source", { enumerable: true, get: function () { return WalletV2R1Source_1.WalletV2R1Source; } }); | ||
var WalletV2R2Source_1 = require("./contracts/sources/WalletV2R2Source"); | ||
Object.defineProperty(exports, "WalletV2R2Source", { enumerable: true, get: function () { return WalletV2R2Source_1.WalletV2R2Source; } }); | ||
var WalletV3R1Source_1 = require("./contracts/sources/WalletV3R1Source"); | ||
Object.defineProperty(exports, "WalletV3R1Source", { enumerable: true, get: function () { return WalletV3R1Source_1.WalletV3R1Source; } }); | ||
var WalletV3R2Source_1 = require("./contracts/sources/WalletV3R2Source"); | ||
Object.defineProperty(exports, "WalletV3R2Source", { enumerable: true, get: function () { return WalletV3R2Source_1.WalletV3R2Source; } }); | ||
var WalletV4Source_1 = require("./contracts/sources/WalletV4Source"); | ||
Object.defineProperty(exports, "WalletV4Source", { enumerable: true, get: function () { return WalletV4Source_1.WalletV4Source; } }); | ||
// Utils | ||
var ConfigStore_1 = require("./utils/ConfigStore"); | ||
Object.defineProperty(exports, "ConfigStore", { enumerable: true, get: function () { return ConfigStore_1.ConfigStore; } }); | ||
var parseDict_1 = require("./boc/dict/parseDict"); | ||
Object.defineProperty(exports, "parseDict", { enumerable: true, get: function () { return parseDict_1.parseDict; } }); | ||
Object.defineProperty(exports, "parseDictBitString", { enumerable: true, get: function () { return parseDict_1.parseDictBitString; } }); | ||
Object.defineProperty(exports, "parseDictRefs", { enumerable: true, get: function () { return parseDict_1.parseDictRefs; } }); | ||
var serializeDict_1 = require("./boc/dict/serializeDict"); | ||
Object.defineProperty(exports, "serializeDict", { enumerable: true, get: function () { return serializeDict_1.serializeDict; } }); | ||
var safeSign_1 = require("./client/safeSign"); | ||
Object.defineProperty(exports, "safeSign", { enumerable: true, get: function () { return safeSign_1.safeSign; } }); | ||
Object.defineProperty(exports, "safeSignVerify", { enumerable: true, get: function () { return safeSign_1.safeSignVerify; } }); | ||
// Transaction | ||
var parse_1 = require("./block/parse"); | ||
Object.defineProperty(exports, "parseTransaction", { enumerable: true, get: function () { return parse_1.parseTransaction; } }); | ||
Object.defineProperty(exports, "parseAccountStatus", { enumerable: true, get: function () { return parse_1.parseAccountStatus; } }); | ||
Object.defineProperty(exports, "parseCurrencyCollection", { enumerable: true, get: function () { return parse_1.parseCurrencyCollection; } }); | ||
Object.defineProperty(exports, "parseCommonMsgInfo", { enumerable: true, get: function () { return parse_1.parseCommonMsgInfo; } }); | ||
Object.defineProperty(exports, "parseStateInit", { enumerable: true, get: function () { return parse_1.parseStateInit; } }); | ||
Object.defineProperty(exports, "parseMessage", { enumerable: true, get: function () { return parse_1.parseMessage; } }); | ||
Object.defineProperty(exports, "parseMessageRelaxed", { enumerable: true, get: function () { return parse_1.parseMessageRelaxed; } }); | ||
Object.defineProperty(exports, "parseHashUpdate", { enumerable: true, get: function () { return parse_1.parseHashUpdate; } }); | ||
Object.defineProperty(exports, "parseAccountChange", { enumerable: true, get: function () { return parse_1.parseAccountChange; } }); | ||
Object.defineProperty(exports, "parseStorageUsedShort", { enumerable: true, get: function () { return parse_1.parseStorageUsedShort; } }); | ||
Object.defineProperty(exports, "parseStoragePhase", { enumerable: true, get: function () { return parse_1.parseStoragePhase; } }); | ||
Object.defineProperty(exports, "parseCreditPhase", { enumerable: true, get: function () { return parse_1.parseCreditPhase; } }); | ||
Object.defineProperty(exports, "parseComputePhase", { enumerable: true, get: function () { return parse_1.parseComputePhase; } }); | ||
Object.defineProperty(exports, "parseActionPhase", { enumerable: true, get: function () { return parse_1.parseActionPhase; } }); | ||
Object.defineProperty(exports, "parseBouncePhase", { enumerable: true, get: function () { return parse_1.parseBouncePhase; } }); | ||
Object.defineProperty(exports, "parseTransactionDescription", { enumerable: true, get: function () { return parse_1.parseTransactionDescription; } }); | ||
Object.defineProperty(exports, "parseRawTickTock", { enumerable: true, get: function () { return parse_1.parseRawTickTock; } }); | ||
Object.defineProperty(exports, "parseStorageUsed", { enumerable: true, get: function () { return parse_1.parseStorageUsed; } }); | ||
Object.defineProperty(exports, "parseStorageInfo", { enumerable: true, get: function () { return parse_1.parseStorageInfo; } }); | ||
Object.defineProperty(exports, "parseAccountState", { enumerable: true, get: function () { return parse_1.parseAccountState; } }); | ||
Object.defineProperty(exports, "parseAccountStorage", { enumerable: true, get: function () { return parse_1.parseAccountStorage; } }); | ||
Object.defineProperty(exports, "parseAccount", { enumerable: true, get: function () { return parse_1.parseAccount; } }); | ||
Object.defineProperty(exports, "parseShardIdent", { enumerable: true, get: function () { return parse_1.parseShardIdent; } }); | ||
Object.defineProperty(exports, "parseShardAccount", { enumerable: true, get: function () { return parse_1.parseShardAccount; } }); | ||
Object.defineProperty(exports, "parseDepthBalanceInfo", { enumerable: true, get: function () { return parse_1.parseDepthBalanceInfo; } }); | ||
Object.defineProperty(exports, "parseShardAccounts", { enumerable: true, get: function () { return parse_1.parseShardAccounts; } }); | ||
Object.defineProperty(exports, "parseShardStateUnsplit", { enumerable: true, get: function () { return parse_1.parseShardStateUnsplit; } }); | ||
Object.defineProperty(exports, "parseMasterchainStateExtra", { enumerable: true, get: function () { return parse_1.parseMasterchainStateExtra; } }); | ||
// VM Stack | ||
var stack_1 = require("./block/stack"); | ||
Object.defineProperty(exports, "serializeStack", { enumerable: true, get: function () { return stack_1.serializeStack; } }); | ||
Object.defineProperty(exports, "parseStack", { enumerable: true, get: function () { return stack_1.parseStack; } }); | ||
// Client 4 | ||
// | ||
// API V4 Client | ||
// | ||
var TonClient4_1 = require("./client/TonClient4"); | ||
Object.defineProperty(exports, "TonClient4", { enumerable: true, get: function () { return TonClient4_1.TonClient4; } }); | ||
// Fees | ||
var fees_1 = require("./block/fees"); | ||
Object.defineProperty(exports, "computeStorageFees", { enumerable: true, get: function () { return fees_1.computeStorageFees; } }); | ||
Object.defineProperty(exports, "computeFwdFees", { enumerable: true, get: function () { return fees_1.computeFwdFees; } }); | ||
Object.defineProperty(exports, "computeGasPrices", { enumerable: true, get: function () { return fees_1.computeGasPrices; } }); | ||
Object.defineProperty(exports, "computeExternalMessageFees", { enumerable: true, get: function () { return fees_1.computeExternalMessageFees; } }); | ||
Object.defineProperty(exports, "computeMessageForwardFees", { enumerable: true, get: function () { return fees_1.computeMessageForwardFees; } }); | ||
// Config | ||
var configParsing_1 = require("./contracts/configs/configParsing"); | ||
Object.defineProperty(exports, "configParseMasterAddress", { enumerable: true, get: function () { return configParsing_1.configParseMasterAddress; } }); | ||
Object.defineProperty(exports, "configParseWorkchainDescriptor", { enumerable: true, get: function () { return configParsing_1.configParseWorkchainDescriptor; } }); | ||
Object.defineProperty(exports, "parseValidatorDescr", { enumerable: true, get: function () { return configParsing_1.parseValidatorDescr; } }); | ||
Object.defineProperty(exports, "parseValidatorSet", { enumerable: true, get: function () { return configParsing_1.parseValidatorSet; } }); | ||
Object.defineProperty(exports, "parseBridge", { enumerable: true, get: function () { return configParsing_1.parseBridge; } }); | ||
Object.defineProperty(exports, "configParseMasterAddressRequired", { enumerable: true, get: function () { return configParsing_1.configParseMasterAddressRequired; } }); | ||
Object.defineProperty(exports, "configParse15", { enumerable: true, get: function () { return configParsing_1.configParse15; } }); | ||
Object.defineProperty(exports, "configParse16", { enumerable: true, get: function () { return configParsing_1.configParse16; } }); | ||
Object.defineProperty(exports, "configParse17", { enumerable: true, get: function () { return configParsing_1.configParse17; } }); | ||
Object.defineProperty(exports, "configParse18", { enumerable: true, get: function () { return configParsing_1.configParse18; } }); | ||
Object.defineProperty(exports, "configParse8", { enumerable: true, get: function () { return configParsing_1.configParse8; } }); | ||
Object.defineProperty(exports, "configParse40", { enumerable: true, get: function () { return configParsing_1.configParse40; } }); | ||
Object.defineProperty(exports, "configParse12", { enumerable: true, get: function () { return configParsing_1.configParse12; } }); | ||
Object.defineProperty(exports, "configParseValidatorSet", { enumerable: true, get: function () { return configParsing_1.configParseValidatorSet; } }); | ||
Object.defineProperty(exports, "configParseBridge", { enumerable: true, get: function () { return configParsing_1.configParseBridge; } }); | ||
Object.defineProperty(exports, "configParseGasLimitsPrices", { enumerable: true, get: function () { return configParsing_1.configParseGasLimitsPrices; } }); | ||
Object.defineProperty(exports, "configParseMsgPrices", { enumerable: true, get: function () { return configParsing_1.configParseMsgPrices; } }); | ||
Object.defineProperty(exports, "parseFullConfig", { enumerable: true, get: function () { return configParsing_1.parseFullConfig; } }); | ||
Object.defineProperty(exports, "configParse28", { enumerable: true, get: function () { return configParsing_1.configParse28; } }); | ||
Object.defineProperty(exports, "configParse29", { enumerable: true, get: function () { return configParsing_1.configParse29; } }); | ||
// Traits | ||
var index_1 = require("./traits/index"); | ||
Object.defineProperty(exports, "Traits", { enumerable: true, get: function () { return index_1.Traits; } }); | ||
var strings_1 = require("./utils/strings"); | ||
Object.defineProperty(exports, "readString", { enumerable: true, get: function () { return strings_1.readString; } }); | ||
Object.defineProperty(exports, "stringToCell", { enumerable: true, get: function () { return strings_1.stringToCell; } }); | ||
// | ||
// Wallets | ||
// | ||
var WalletContractV1R1_1 = require("./wallets/WalletContractV1R1"); | ||
Object.defineProperty(exports, "WalletContractV1R1", { enumerable: true, get: function () { return WalletContractV1R1_1.WalletContractV1R1; } }); | ||
var WalletContractV1R2_1 = require("./wallets/WalletContractV1R2"); | ||
Object.defineProperty(exports, "WalletContractV1R2", { enumerable: true, get: function () { return WalletContractV1R2_1.WalletContractV1R2; } }); | ||
var WalletContractV1R3_1 = require("./wallets/WalletContractV1R3"); | ||
Object.defineProperty(exports, "WalletContractV1R3", { enumerable: true, get: function () { return WalletContractV1R3_1.WalletContractV1R3; } }); | ||
var WalletContractV2R1_1 = require("./wallets/WalletContractV2R1"); | ||
Object.defineProperty(exports, "WalletContractV2R1", { enumerable: true, get: function () { return WalletContractV2R1_1.WalletContractV2R1; } }); | ||
var WalletContractV2R2_1 = require("./wallets/WalletContractV2R2"); | ||
Object.defineProperty(exports, "WalletContractV2R2", { enumerable: true, get: function () { return WalletContractV2R2_1.WalletContractV2R2; } }); | ||
var WalletContractV3R1_1 = require("./wallets/WalletContractV3R1"); | ||
Object.defineProperty(exports, "WalletContractV3R1", { enumerable: true, get: function () { return WalletContractV3R1_1.WalletContractV3R1; } }); | ||
var WalletContractV3R2_1 = require("./wallets/WalletContractV3R2"); | ||
Object.defineProperty(exports, "WalletContractV3R2", { enumerable: true, get: function () { return WalletContractV3R2_1.WalletContractV3R2; } }); | ||
var WalletContractV4_1 = require("./wallets/WalletContractV4"); | ||
Object.defineProperty(exports, "WalletContractV4", { enumerable: true, get: function () { return WalletContractV4_1.WalletContractV4; } }); | ||
// | ||
// Jettons | ||
// | ||
var JettonMaster_1 = require("./jetton/JettonMaster"); | ||
Object.defineProperty(exports, "JettonMaster", { enumerable: true, get: function () { return JettonMaster_1.JettonMaster; } }); | ||
var JettonWallet_1 = require("./jetton/JettonWallet"); | ||
Object.defineProperty(exports, "JettonWallet", { enumerable: true, get: function () { return JettonWallet_1.JettonWallet; } }); |
{ | ||
"name": "ton", | ||
"version": "12.3.3", | ||
"version": "13.0.0", | ||
"repository": "https://github.com/tonwhales/ton.git", | ||
@@ -18,3 +18,2 @@ "author": "Steve Korshakov <steve@korshakov.com>", | ||
"@release-it/keep-a-changelog": "^3.1.0", | ||
"@types/bn.js": "^5.1.0", | ||
"@types/jest": "^27.0.1", | ||
@@ -31,4 +30,6 @@ "@types/node": "^16.7.10", | ||
"karma-webpack": "^5.0.0", | ||
"prando": "^6.0.1", | ||
"release-it": "^15.5.1", | ||
"tonweb": "0.0.18", | ||
"ton-core": "^0.27.0", | ||
"ton-crypto": "3.2.0", | ||
"ts-jest": "^27.0.5", | ||
@@ -42,5 +43,3 @@ "ts-loader": "^9.2.5", | ||
"axios": "^0.25.0", | ||
"bn.js": "5.2.0", | ||
"dataloader": "^2.0.0", | ||
"ethjs-unit": "0.1.6", | ||
"fp-ts": "^2.11.1", | ||
@@ -50,6 +49,8 @@ "io-ts": "^2.2.16", | ||
"symbol.inspect": "1.0.1", | ||
"teslabot": "^1.3.0", | ||
"ton-crypto": "2.1.0", | ||
"tweetnacl": "1.0.3" | ||
"teslabot": "^1.3.0" | ||
}, | ||
"peerDependencies": { | ||
"ton-core": ">=0.27.0", | ||
"ton-crypto": ">=3.2.0" | ||
}, | ||
"publishConfig": { | ||
@@ -56,0 +57,0 @@ "access": "public", |
@@ -16,3 +16,3 @@ # TON js client | ||
```bash | ||
yarn add ton buffer | ||
yarn add ton ton-crypto ton-core buffer | ||
``` | ||
@@ -35,3 +35,4 @@ | ||
```js | ||
import { TonClient } from "ton"; | ||
import { TonClient, WalletContractV4, internal } from "ton"; | ||
import { mnemonicNew, mnemonicToPrivateKey } from "ton-crypto"; | ||
@@ -43,12 +44,25 @@ // Create Client | ||
// Open Wallet | ||
const wallet = await client.openWallet('<public-key>'); | ||
console.log(wallet.address); | ||
console.log(await wallet.getBalance()); | ||
// Generate new key | ||
let mnemonics = await mnemonicNew(); | ||
let keyPair = await mnemonicToPrivateKey(mnemonics); | ||
// Transfering coins | ||
let seqno = await wallet.getSeqNo(); | ||
// Create wallet contract | ||
let workchain = 0; // Usually you need a workchain 0 | ||
let wallet = WalletContractV4.create({ workchain, publicKey: keypair.publicKey }); | ||
let contract = client.open(wallet); | ||
// In case of failure you can safely retry calling this method | ||
await wallet.transfer({ to: 'some-address', amount: 10.0, seqno, secretKey: '<secret>' }); | ||
// Get balance | ||
let balance: biging = await contract.getBalance(); | ||
// Create a transfer | ||
let seqno: number = await contract.getSeqno(); | ||
let transfer = await contract.createTransfer({ | ||
seqno, | ||
messages: [internal({ | ||
value: '1.5' | ||
dest: 'EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N', | ||
body: 'Hello world' | ||
})] | ||
}); | ||
``` | ||
@@ -55,0 +69,0 @@ |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 2 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
9
70
1
151905
21
79
4270
1
+ Addedton-core@0.53.0(transitive)
+ Addedton-crypto@3.2.0(transitive)
- Removedbn.js@5.2.0
- Removedethjs-unit@0.1.6
- Removedton-crypto@2.1.0
- Removedtweetnacl@1.0.3
- Removedbn.js@4.11.65.2.0(transitive)
- Removedethjs-unit@0.1.6(transitive)
- Removedis-hex-prefixed@1.0.0(transitive)
- Removednumber-to-bn@1.7.0(transitive)
- Removedstrip-hex-prefix@1.0.0(transitive)
- Removedton-crypto@2.1.0(transitive)