New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

ton

Package Overview
Dependencies
Maintainers
3
Versions
179
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ton - npm Package Compare versions

Comparing version 12.3.3 to 13.0.0

dist/client/api/TonCache.d.ts

8

dist/client/api/HttpApi.d.ts
/// <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 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc