@tonappchain/sdk 0.9.0-rc1 → 0.9.0-rc3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +4 -4
- package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +4 -4
- package/dist/esm/src/index.mjs +1119 -245
- package/dist/src/accountAbstraction/BaseAccountAPI.d.ts +62 -0
- package/dist/src/accountAbstraction/BaseAccountAPI.js +163 -0
- package/dist/src/accountAbstraction/Ed25519.d.ts +47 -0
- package/dist/src/accountAbstraction/Ed25519.js +100 -0
- package/dist/src/accountAbstraction/HttpRpcClient.d.ts +26 -0
- package/dist/src/accountAbstraction/HttpRpcClient.js +45 -0
- package/dist/src/accountAbstraction/PaymasterAPI.d.ts +21 -0
- package/dist/src/accountAbstraction/PaymasterAPI.js +18 -0
- package/dist/src/accountAbstraction/Permit2.d.ts +37 -0
- package/dist/src/accountAbstraction/Permit2.js +41 -0
- package/dist/src/accountAbstraction/PermitFlow.d.ts +43 -0
- package/dist/src/accountAbstraction/PermitFlow.js +80 -0
- package/dist/src/accountAbstraction/TacAccountAPI.d.ts +53 -0
- package/dist/src/accountAbstraction/TacAccountAPI.js +84 -0
- package/dist/src/accountAbstraction/TacAccountSdk.d.ts +101 -0
- package/dist/src/accountAbstraction/TacAccountSdk.js +163 -0
- package/dist/src/accountAbstraction/TacERC20PaymasterAPI.d.ts +59 -0
- package/dist/src/accountAbstraction/TacERC20PaymasterAPI.js +88 -0
- package/dist/src/accountAbstraction/TransactionDetailsForUserOp.d.ts +10 -0
- package/dist/src/accountAbstraction/TransactionDetailsForUserOp.js +2 -0
- package/dist/src/accountAbstraction/abi.d.ts +3 -0
- package/dist/src/accountAbstraction/abi.js +32 -0
- package/dist/src/accountAbstraction/index.d.ts +24 -0
- package/dist/src/accountAbstraction/index.js +44 -0
- package/dist/src/accountAbstraction/internal/entryPointAbi.d.ts +1 -0
- package/dist/src/accountAbstraction/internal/entryPointAbi.js +16 -0
- package/dist/src/accountAbstraction/internal/userOp.d.ts +54 -0
- package/dist/src/accountAbstraction/internal/userOp.js +72 -0
- package/dist/src/accountAbstraction/networks.d.ts +22 -0
- package/dist/src/accountAbstraction/networks.js +20 -0
- package/dist/src/accountAbstraction/signer.d.ts +12 -0
- package/dist/src/accountAbstraction/signer.js +14 -0
- package/dist/src/adapters/LiteClientOpener.js +12 -1
- package/dist/src/adapters/SandboxOpener.d.ts +1 -1
- package/dist/src/adapters/SandboxOpener.js +20 -1
- package/dist/src/adapters/TonClient4Opener.js +15 -1
- package/dist/src/adapters/TonClientOpener.js +14 -1
- package/dist/src/assets/FT.d.ts +4 -2
- package/dist/src/assets/FT.js +26 -13
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/interfaces/ContractOpener.d.ts +1 -0
- package/dist/src/sender/BatchSender.js +2 -1
- package/dist/src/structs/InternalStruct.d.ts +5 -0
- package/dist/src/wrappers/HighloadQueryId.d.ts +2 -0
- package/dist/src/wrappers/HighloadQueryId.js +7 -6
- package/dist/src/wrappers/HighloadWalletV3.d.ts +6 -0
- package/dist/src/wrappers/HighloadWalletV3.js +16 -2
- package/package.json +1 -1
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HighloadQueryId = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
exports.HighloadQueryId = exports.HIGHLOAD_QUERY_ID_INVALID_BIT_NUMBER = exports.HIGHLOAD_QUERY_ID_BIT_NUMBER_SIZE = void 0;
|
|
4
|
+
exports.HIGHLOAD_QUERY_ID_BIT_NUMBER_SIZE = 10n;
|
|
5
|
+
exports.HIGHLOAD_QUERY_ID_INVALID_BIT_NUMBER = (1n << exports.HIGHLOAD_QUERY_ID_BIT_NUMBER_SIZE) - 1n;
|
|
6
|
+
const MAX_BIT_NUMBER = exports.HIGHLOAD_QUERY_ID_INVALID_BIT_NUMBER - 1n;
|
|
6
7
|
const MAX_SHIFT = 8191n; // 2^13 = 8192
|
|
7
8
|
class HighloadQueryId {
|
|
8
9
|
constructor() {
|
|
@@ -49,11 +50,11 @@ class HighloadQueryId {
|
|
|
49
50
|
return this.bitnumber;
|
|
50
51
|
}
|
|
51
52
|
getQueryId() {
|
|
52
|
-
return (this.shift <<
|
|
53
|
+
return (this.shift << exports.HIGHLOAD_QUERY_ID_BIT_NUMBER_SIZE) + this.bitnumber;
|
|
53
54
|
}
|
|
54
55
|
static fromQueryId(queryId) {
|
|
55
|
-
const shift = queryId >>
|
|
56
|
-
const bitnumber = queryId &
|
|
56
|
+
const shift = queryId >> exports.HIGHLOAD_QUERY_ID_BIT_NUMBER_SIZE;
|
|
57
|
+
const bitnumber = queryId & exports.HIGHLOAD_QUERY_ID_INVALID_BIT_NUMBER;
|
|
57
58
|
return this.fromShiftAndBitNumber(shift, bitnumber);
|
|
58
59
|
}
|
|
59
60
|
static fromSeqno(i) {
|
|
@@ -38,6 +38,12 @@ export declare class HighloadWalletV3 implements WalletInstanse {
|
|
|
38
38
|
}): Promise<string>;
|
|
39
39
|
static create(config: HighloadWalletV3Config, code?: Cell, workchain?: number): HighloadWalletV3;
|
|
40
40
|
static generateCreatedAt(): number;
|
|
41
|
+
/**
|
|
42
|
+
* The Highload V3 contract accepts bitnumber values [0..1022]. Query IDs
|
|
43
|
+
* are derived from createdAt, so skip timestamps whose low 10 bits are the
|
|
44
|
+
* invalid value 1023.
|
|
45
|
+
*/
|
|
46
|
+
static normalizeCreatedAt(createdAt: number): number;
|
|
41
47
|
sendExternalMessage(provider: ContractProvider, secretKey: Buffer, opts: {
|
|
42
48
|
message: MessageRelaxed | Cell;
|
|
43
49
|
mode: number;
|
|
@@ -14,6 +14,7 @@ exports.DEFAULT_TIMEOUT = 60 * 60; // 1 hour
|
|
|
14
14
|
const HIGHLOAD_V3_CODE = ton_1.Cell.fromBoc(Buffer.from('b5ee9c7241021001000228000114ff00f4a413f4bcf2c80b01020120020d02014803040078d020d74bc00101c060b0915be101d0d3030171b0915be0fa4030f828c705b39130e0d31f018210ae42e5a4ba9d8040d721d74cf82a01ed55fb04e030020120050a02027306070011adce76a2686b85ffc00201200809001aabb6ed44d0810122d721d70b3f0018aa3bed44d08307d721d70b1f0201200b0c001bb9a6eed44d0810162d721d70b15800e5b8bf2eda2edfb21ab09028409b0ed44d0810120d721f404f404d33fd315d1058e1bf82325a15210b99f326df82305aa0015a112b992306dde923033e2923033e25230800df40f6fa19ed021d721d70a00955f037fdb31e09130e259800df40f6fa19cd001d721d70a00937fdb31e0915be270801f6f2d48308d718d121f900ed44d0d3ffd31ff404f404d33fd315d1f82321a15220b98e12336df82324aa00a112b9926d32de58f82301de541675f910f2a106d0d31fd4d307d30cd309d33fd315d15168baf2a2515abaf2a6f8232aa15250bcf2a304f823bbf2a35304800df40f6fa199d024d721d70a00f2649130e20e01fe5309800df40f6fa18e13d05004d718d20001f264c858cf16cf8301cf168e1030c824cf40cf8384095005a1a514cf40e2f800c94039800df41704c8cbff13cb1ff40012f40012cb3f12cb15c9ed54f80f21d0d30001f265d3020171b0925f03e0fa4001d70b01c000f2a5fa4031fa0031f401fa0031fa00318060d721d300010f0020f265d2000193d431d19130e272b1fb00b585bf03', 'hex'))[0];
|
|
15
15
|
exports.TIMESTAMP_SIZE = 64;
|
|
16
16
|
exports.TIMEOUT_SIZE = 22;
|
|
17
|
+
const QUERY_ID_PERIOD = 8388608n; // 2^23
|
|
17
18
|
function highloadWalletV3ConfigToCell(config) {
|
|
18
19
|
return (0, ton_1.beginCell)()
|
|
19
20
|
.storeBuffer(config.publicKey)
|
|
@@ -57,7 +58,19 @@ class HighloadWalletV3 {
|
|
|
57
58
|
return new HighloadWalletV3((0, ton_1.contractAddress)(workchain, init), init);
|
|
58
59
|
}
|
|
59
60
|
static generateCreatedAt() {
|
|
60
|
-
|
|
61
|
+
// -40 is used to pass check created_at <= now() in smart contract for sure
|
|
62
|
+
return HighloadWalletV3.normalizeCreatedAt(Math.floor(Date.now() / 1000) - 40);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The Highload V3 contract accepts bitnumber values [0..1022]. Query IDs
|
|
66
|
+
* are derived from createdAt, so skip timestamps whose low 10 bits are the
|
|
67
|
+
* invalid value 1023.
|
|
68
|
+
*/
|
|
69
|
+
static normalizeCreatedAt(createdAt) {
|
|
70
|
+
const queryId = BigInt(createdAt) % QUERY_ID_PERIOD;
|
|
71
|
+
return (queryId & HighloadQueryId_1.HIGHLOAD_QUERY_ID_INVALID_BIT_NUMBER) === HighloadQueryId_1.HIGHLOAD_QUERY_ID_INVALID_BIT_NUMBER
|
|
72
|
+
? createdAt + 1
|
|
73
|
+
: createdAt;
|
|
61
74
|
}
|
|
62
75
|
async sendExternalMessage(provider, secretKey, opts) {
|
|
63
76
|
let messageCell;
|
|
@@ -89,6 +102,7 @@ class HighloadWalletV3 {
|
|
|
89
102
|
if (createdAt == undefined) {
|
|
90
103
|
createdAt = HighloadWalletV3.generateCreatedAt();
|
|
91
104
|
}
|
|
105
|
+
createdAt = HighloadWalletV3.normalizeCreatedAt(createdAt);
|
|
92
106
|
const queryId = this.getQueryIdFromCreatedAt(createdAt);
|
|
93
107
|
return await this.sendExternalMessage(provider, secretKey, {
|
|
94
108
|
message: this.packActions(messages, value, queryId),
|
|
@@ -100,7 +114,7 @@ class HighloadWalletV3 {
|
|
|
100
114
|
});
|
|
101
115
|
}
|
|
102
116
|
getQueryIdFromCreatedAt(createdAt) {
|
|
103
|
-
return HighloadQueryId_1.HighloadQueryId.fromQueryId(BigInt(createdAt) %
|
|
117
|
+
return HighloadQueryId_1.HighloadQueryId.fromQueryId(BigInt(createdAt) % QUERY_ID_PERIOD);
|
|
104
118
|
}
|
|
105
119
|
getExternalMessage(messages, sendMode, value, queryId) {
|
|
106
120
|
return this.packActions(messages.map((msg) => ({
|