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 9.9.0 to 10.0.0

dist/boc/CellType.d.ts

39

dist/block/parse.d.ts

@@ -208,1 +208,40 @@ /// <reference types="node" />

} | null;
export declare type RawShardIdent = {
shardPrefixBits: number;
workchainId: number;
shardPrefix: BN;
};
export declare function parseShardIdent(cs: Slice): {
shardPrefixBits: number;
workchainId: number;
shardPrefix: BN;
};
export declare type RawShardAccount = {
address: Address | null;
lastTransHash: Buffer;
lastTransLt: BN;
};
export declare function parseShardAccount(cs: Slice): RawShardAccount;
export declare type RawDepthBalanceInfo = {
splitDepth: number;
balance: RawCurrencyCollection;
};
export declare function parseDepthBalanceInfo(cs: Slice): RawDepthBalanceInfo;
export declare type RawShardAccountRef = {
shardAccount: RawShardAccount;
depthBalanceInfo: RawDepthBalanceInfo;
};
export declare function parseShardAccounts(cs: Slice): Map<string, RawShardAccountRef>;
export declare type RawShardStateUnsplit = {
globalId: number;
shardId: RawShardIdent;
seqno: number;
vertSeqNo: number;
genUtime: number;
genLt: BN;
minRefSeqno: number;
beforeSplit: boolean;
accounts: Map<string, RawShardAccountRef>;
custom: Cell | null;
};
export declare function parseShardStateUnsplit(cs: Slice): RawShardStateUnsplit;

90

dist/block/parse.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseAccount = exports.parseAccountStorage = exports.parseAccountState = exports.parseStorageInfo = exports.parseStorageUsed = exports.parseTransaction = exports.parseTransactionDescription = exports.parseBouncePhase = exports.parseActionPhase = exports.parseComputePhase = exports.parseCreditPhase = exports.parseStoragePhase = exports.parseStorageUsedShort = exports.parseAccountChange = exports.parseHashUpdate = exports.parseMessage = exports.parseStateInit = exports.parseRawTickTock = exports.parseCommonMsgInfo = exports.parseCurrencyCollection = exports.parseAccountStatus = void 0;
exports.parseShardStateUnsplit = exports.parseShardAccounts = exports.parseDepthBalanceInfo = exports.parseShardAccount = exports.parseShardIdent = exports.parseAccount = exports.parseAccountStorage = exports.parseAccountState = exports.parseStorageInfo = exports.parseStorageUsed = exports.parseTransaction = exports.parseTransactionDescription = exports.parseBouncePhase = exports.parseActionPhase = exports.parseComputePhase = exports.parseCreditPhase = exports.parseStoragePhase = exports.parseStorageUsedShort = exports.parseAccountChange = exports.parseHashUpdate = exports.parseMessage = exports.parseStateInit = exports.parseRawTickTock = exports.parseCommonMsgInfo = exports.parseCurrencyCollection = exports.parseAccountStatus = void 0;
const __1 = require("..");
const parseDict_1 = require("../boc/dict/parseDict");
function parseAccountStatus(slice) {

@@ -19,3 +20,3 @@ const status = slice.readUintNumber(2);

}
throw Error('Unreachable');
throw Error('Invalid data');
}

@@ -130,3 +131,3 @@ exports.parseAccountStatus = parseAccountStatus;

if (slice.readUintNumber(8) !== 0x72) {
throw Error('Invalid transaction');
throw Error('Invalid data');
}

@@ -362,3 +363,3 @@ const oldHash = slice.readBuffer(32);

if (slice.readUintNumber(4) !== 0x07) {
throw Error('Invalid transaction');
throw Error('Invalid data');
}

@@ -465,1 +466,82 @@ // Read address

exports.parseAccount = parseAccount;
function parseShardIdent(cs) {
if (cs.readUintNumber(2) !== 0) {
throw Error('Invalid data');
}
let shardPrefixBits = cs.readUintNumber(6);
let workchainId = cs.readIntNumber(32);
let shardPrefix = cs.readUint(64);
return {
shardPrefixBits,
workchainId,
shardPrefix
};
}
exports.parseShardIdent = parseShardIdent;
function parseShardAccount(cs) {
let accountCell = cs.readCell();
let address = null;
if (!accountCell.isExotic) {
address = accountCell.beginParse().readAddress();
}
return {
address,
lastTransHash: cs.readBuffer(32),
lastTransLt: cs.readUint(64)
};
}
exports.parseShardAccount = parseShardAccount;
function parseDepthBalanceInfo(cs) {
return {
splitDepth: cs.readUintNumber(5),
balance: parseCurrencyCollection(cs)
};
}
exports.parseDepthBalanceInfo = parseDepthBalanceInfo;
function parseShardAccounts(cs) {
if (!cs.readBit()) {
return new Map();
}
return (0, parseDict_1.parseDict)(cs.readRef(), 256, (cs2) => {
let depthBalanceInfo = parseDepthBalanceInfo(cs2);
let shardAccount = parseShardAccount(cs2);
return {
depthBalanceInfo,
shardAccount
};
});
}
exports.parseShardAccounts = parseShardAccounts;
function parseShardStateUnsplit(cs) {
if (cs.readUintNumber(32) !== 0x9023afe2) {
throw Error('Invalid data');
}
let globalId = cs.readIntNumber(32);
let shardId = parseShardIdent(cs);
let seqno = cs.readUintNumber(32);
let vertSeqNo = cs.readUintNumber(32);
let genUtime = cs.readUintNumber(32);
let genLt = cs.readUint(64);
let minRefSeqno = cs.readUintNumber(32);
// Skip OutMsgQueueInfo
cs.readCell();
let beforeSplit = cs.readBit();
let accounts = parseShardAccounts(cs.readRef());
// Skip
cs.readCell();
let mcStateExtra = cs.readBit();
let custom = mcStateExtra ? cs.readCell() : null;
return {
globalId,
shardId,
seqno,
vertSeqNo,
genUtime,
genLt,
minRefSeqno,
beforeSplit,
accounts,
custom
};
}
exports.parseShardStateUnsplit = parseShardStateUnsplit;

@@ -27,2 +27,7 @@ "use strict";

});
it('should parse ShardState', () => {
const state = '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';
const cell = __1.Cell.fromBoc(Buffer.from(state, 'base64'))[0];
console.warn((0, parse_1.parseShardStateUnsplit)(cell.beginParse()));
});
});

@@ -222,6 +222,6 @@ "use strict";

const refNum = d1 % 8;
const dataBytesize = Math.ceil(d2 / 2);
let dataBytesize = Math.ceil(d2 / 2);
const fullfilledBytes = !(d2 % 2);
// Build Cell
let cell = new __1.Cell(isExotic);
let bits = __1.BitString.alloc(1023);
let refs = [];

@@ -232,3 +232,24 @@ if (cellData.length < dataBytesize + referenceIndexSize * refNum) {

// Cell data
cell.bits.setTopUppedArray(cellData.slice(0, dataBytesize), fullfilledBytes);
let kind = 'ordinary';
if (isExotic) {
let k = cellData.readUInt8();
if (k === 1) {
kind = 'pruned';
}
else if (k === 2) {
kind = 'library_reference';
}
else if (k === 3) {
kind = 'merkle_proof';
}
else if (k === 4) {
kind = 'merkle_update';
}
else {
throw Error('Invalid cell type');
}
cellData = cellData.slice(1);
dataBytesize--;
}
bits.setTopUppedArray(cellData.slice(0, dataBytesize), fullfilledBytes);
cellData = cellData.slice(dataBytesize);

@@ -240,2 +261,4 @@ // References

}
// Resolve kind
let cell = new __1.Cell(kind, bits);
return { cell, refs, residue: cellData };

@@ -242,0 +265,0 @@ }

2

dist/boc/Builder.js

@@ -103,3 +103,3 @@ "use strict";

this.ended = true;
let res = new Cell_1.Cell(false, this.bits);
let res = new Cell_1.Cell('ordinary', this.bits);
for (let r of this.refs) {

@@ -106,0 +106,0 @@ res.refs.push(r);

@@ -6,2 +6,3 @@ /// <reference types="node" />

import { Slice } from '..';
import { CellType } from './CellType';
export declare class Cell {

@@ -11,4 +12,5 @@ static fromBoc(src: Buffer | string): Cell[];

readonly refs: Cell[];
readonly isExotic: boolean;
constructor(isExotic?: boolean, bits?: BitString);
readonly kind: CellType;
get isExotic(): boolean;
constructor(kind?: CellType, bits?: BitString);
beginParse(): Slice;

@@ -15,0 +17,0 @@ writeCell(anotherCell: Cell): void;

@@ -13,6 +13,6 @@ "use strict";

class Cell {
constructor(isExotic = false, bits = BitString_1.BitString.alloc(1023)) {
constructor(kind = 'ordinary', bits = BitString_1.BitString.alloc(1023)) {
this.refs = [];
this[_a] = () => this.toString();
this.isExotic = isExotic;
this.kind = kind;
this.bits = bits;

@@ -23,3 +23,9 @@ }

}
get isExotic() {
return this.kind !== 'ordinary';
}
beginParse() {
if (this.isExotic) {
throw Error('Unable to parse exotic cell');
}
return __1.Slice.fromCell(this);

@@ -26,0 +32,0 @@ }

@@ -41,7 +41,11 @@ "use strict";

else {
let left = slice.readRef();
let right = slice.readRef();
let left = slice.readCell();
let right = slice.readCell();
// NOTE: Left and right branches are implicitly contain prefixes '0' and '1'
doParse(pp + '0', left, n - prefixLength - 1, res, extractor);
doParse(pp + '1', right, n - prefixLength - 1, res, extractor);
if (!left.isExotic) {
doParse(pp + '0', left.beginParse(), n - prefixLength - 1, res, extractor);
}
if (!right.isExotic) {
doParse(pp + '1', right.beginParse(), n - prefixLength - 1, res, extractor);
}
}

@@ -48,0 +52,0 @@ }

@@ -26,2 +26,10 @@ "use strict";

});
it('should parse dict with exotics', () => {
const dict = Buffer.from('te6cckECMQEABTYAAhOCCc7v0txVpwSwAQIDEwEE53fpbirTglgEAwIISAEBs+lknRDMs3k2joGjp+jknI61P2rMabC6L/qACC9w7jkAAQhIAQGcUdBjRLK2XTGk56evuoGpCTwBOhaNJ3gUFm8TAe0n5QAyAxMBAye9rIc4cIC4MAYFCEgBAW8xXyW0o5rBLIX+pOz+eoPl5Z0fBZeD+gw+8nlzCIBhAAADEwEBQI3GZN/+jNgvBwgDEwEATAHi3hq0fjgKCQgISAEB7X4mvTbvptXZtPaqq5gTrwdCqEJEl390/UB0ycmJCL4AAAhIAQH6TA1tA7w5MqlUZE/iIYZlmhFY/0nMfG9YEH4IA4oG9AAmAxEA/JVwvbaVd7guDAsISAEB16y7YCM4yG1hDzXPs2L9dvwYsYEkdrb8qZoGeOZl/PUAAAIRAOC+0jznnr0oLQ0CEQDgeIc2I3nB6A8OCEgBAe5bbwbC8lILAkcW7BvTGqfH7ackw/xrJ+4xJ9g0lay7ACICDwDcWf0tZ7wILBACDwDPXe4GVoRIEhEISAEBpqnx4FY+VMV5fZOCgk11aYemGilh+4jfDQXGfVnuO2QAHwIPAMwQLzuW7ygrEwIPAMGD4CnDLugVFAhIAQHhkmjGsVW1E//8jS7VtFUP/nG+13eBz2DH8b6lkRkfowATAg8AwL3BnpH5iCoWAg8AwFv9OrsVqBgXCEgBAUnJQzkhkkoQxP70VqQNlWC2ClDLq6thxGgnH+VDOUIdABICDwDAI9NSaezIKRkCDQC0EKoS2YgbGghIAQEUW2BGLrIxcR0xUglz9exM5sN90zhfxgdRBW0FkjOQBQAPAg0ApaMONrGIHRwISAEB20MCSueWmfetSar0Li+5Q8Ip7t01JoPqgAJhVAvv4PEADAINAKFiMLr7SCgeAg0AoV/mfAxIJx8CDQCgRMc88eghIAhIAQHFrdac2QaoB3A0l38UmVSRNUC4pYwh2FyGJ5Vl+MyhJgAJAgkAbRF4aCYiAgkAZzzR6CQjCEgBAax1zsp9u3C3amDOdSJD9mQdDCqhiDj+ZgliaFHwLgWgAAIBj7rR38jjeSour5CAiFzP5jBGI24SWg7B0O37+3W43agB1e+xhmG5Sli1Zv3ZU7LzkGnD7l80gqgY14NkUTcQu0YAAC5TRp8sgyUISAEBnuyDAqn2pYKXQ/wsg9nT0mXlzYlz/XD92d92SJgRWv8AAQhIAQHEi2bfoY75oVrUbsi8DucSPG1oWEcd3KHUGYp0M+RQMQACCEgBAWJ+cuHH5x28R42OXHVN6a1Jf7VXJHmTxS88Gp/rZs2wAAIISAEBOz2DLgJl9RiydhyAtaSVoJad3MYUNnANbILzFnfSgEkADQhIAQHMnAtnlPhbBcz2DH0IRfSKuD1YfeBVgFaujjkW+iHqDgAPCEgBAVyyY7T30fyOwTmieJ8TthLedj5loRH+lxKqP5GbivrBABcISAEBuusLuLgfE7diC4/aes/bPk0SUgkgruJUU+h2pBoayZwAFwhIAQFmUFOfgo2uUi6cXR4FvV6TYWbPc7i/d5MmEQOA4FGbgQAbCEgBAV7HcGhkdhUswzXpHOx7WG6dvrqJjJdLMlC+kTQaJBqhACMISAEBG14jhyXXJ7RLRZCnKyrvsoR9OsBOvnfdOdK6ADqrS88AIQhIAQFZ+0nqF8AuEf14qz7cSjcXQjasTFC5jvk1aLELPzNMHAAnCEgBAdzBkxtJradUwhDmKe2fCZCcreVUbqwio3hW3tN6N2dBAhTWF3cC', 'base64');
const cs = Cell_1.Cell.fromBoc(dict)[0].beginParse();
let d = (0, parseDict_1.parseDict)(cs.readRef(), 256, (slice) => {
return slice.toCell();
});
console.warn(d);
});
});

@@ -104,3 +104,3 @@ "use strict";

const remaining = reader.readRemaining();
let cell = new __1.Cell(false, remaining);
let cell = new __1.Cell('ordinary', remaining);
for (let r of this.refs) {

@@ -116,2 +116,5 @@ cell.refs.push(r);

static fromCell(cell) {
if (cell.isExotic) {
throw Error('Unable to create slice from exotic');
}
return new Slice(cell.bits, cell.refs);

@@ -118,0 +121,0 @@ }

export { BitString } from './boc/BitString';
export { BitStringReader } from './boc/BitStringReader';
export { Cell } from './boc/Cell';
export { CellType } from './boc/CellType';
export { TonClient } from './client/TonClient';

@@ -5,0 +6,0 @@ export { Wallet, validateWalletType, WalletContractType } from './client/Wallet';

{
"name": "ton",
"version": "9.9.0",
"version": "10.0.0",
"repository": "https://github.com/tonwhales/ton.git",

@@ -5,0 +5,0 @@ "author": "Steve Korshakov <steve@korshakov.com>",

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