@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.
Files changed (52) hide show
  1. package/dist/artifacts/mainnet/ton/internal/wrappers/NFTCollection.d.ts +4 -4
  2. package/dist/artifacts/testnet/ton/internal/wrappers/NFTCollection.d.ts +4 -4
  3. package/dist/esm/src/index.mjs +1119 -245
  4. package/dist/src/accountAbstraction/BaseAccountAPI.d.ts +62 -0
  5. package/dist/src/accountAbstraction/BaseAccountAPI.js +163 -0
  6. package/dist/src/accountAbstraction/Ed25519.d.ts +47 -0
  7. package/dist/src/accountAbstraction/Ed25519.js +100 -0
  8. package/dist/src/accountAbstraction/HttpRpcClient.d.ts +26 -0
  9. package/dist/src/accountAbstraction/HttpRpcClient.js +45 -0
  10. package/dist/src/accountAbstraction/PaymasterAPI.d.ts +21 -0
  11. package/dist/src/accountAbstraction/PaymasterAPI.js +18 -0
  12. package/dist/src/accountAbstraction/Permit2.d.ts +37 -0
  13. package/dist/src/accountAbstraction/Permit2.js +41 -0
  14. package/dist/src/accountAbstraction/PermitFlow.d.ts +43 -0
  15. package/dist/src/accountAbstraction/PermitFlow.js +80 -0
  16. package/dist/src/accountAbstraction/TacAccountAPI.d.ts +53 -0
  17. package/dist/src/accountAbstraction/TacAccountAPI.js +84 -0
  18. package/dist/src/accountAbstraction/TacAccountSdk.d.ts +101 -0
  19. package/dist/src/accountAbstraction/TacAccountSdk.js +163 -0
  20. package/dist/src/accountAbstraction/TacERC20PaymasterAPI.d.ts +59 -0
  21. package/dist/src/accountAbstraction/TacERC20PaymasterAPI.js +88 -0
  22. package/dist/src/accountAbstraction/TransactionDetailsForUserOp.d.ts +10 -0
  23. package/dist/src/accountAbstraction/TransactionDetailsForUserOp.js +2 -0
  24. package/dist/src/accountAbstraction/abi.d.ts +3 -0
  25. package/dist/src/accountAbstraction/abi.js +32 -0
  26. package/dist/src/accountAbstraction/index.d.ts +24 -0
  27. package/dist/src/accountAbstraction/index.js +44 -0
  28. package/dist/src/accountAbstraction/internal/entryPointAbi.d.ts +1 -0
  29. package/dist/src/accountAbstraction/internal/entryPointAbi.js +16 -0
  30. package/dist/src/accountAbstraction/internal/userOp.d.ts +54 -0
  31. package/dist/src/accountAbstraction/internal/userOp.js +72 -0
  32. package/dist/src/accountAbstraction/networks.d.ts +22 -0
  33. package/dist/src/accountAbstraction/networks.js +20 -0
  34. package/dist/src/accountAbstraction/signer.d.ts +12 -0
  35. package/dist/src/accountAbstraction/signer.js +14 -0
  36. package/dist/src/adapters/LiteClientOpener.js +12 -1
  37. package/dist/src/adapters/SandboxOpener.d.ts +1 -1
  38. package/dist/src/adapters/SandboxOpener.js +20 -1
  39. package/dist/src/adapters/TonClient4Opener.js +15 -1
  40. package/dist/src/adapters/TonClientOpener.js +14 -1
  41. package/dist/src/assets/FT.d.ts +4 -2
  42. package/dist/src/assets/FT.js +26 -13
  43. package/dist/src/index.d.ts +1 -0
  44. package/dist/src/index.js +1 -0
  45. package/dist/src/interfaces/ContractOpener.d.ts +1 -0
  46. package/dist/src/sender/BatchSender.js +2 -1
  47. package/dist/src/structs/InternalStruct.d.ts +5 -0
  48. package/dist/src/wrappers/HighloadQueryId.d.ts +2 -0
  49. package/dist/src/wrappers/HighloadQueryId.js +7 -6
  50. package/dist/src/wrappers/HighloadWalletV3.d.ts +6 -0
  51. package/dist/src/wrappers/HighloadWalletV3.js +16 -2
  52. 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
- const BIT_NUMBER_SIZE = 10n; // 10 bit
5
- const MAX_BIT_NUMBER = 1022n;
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 << BIT_NUMBER_SIZE) + this.bitnumber;
53
+ return (this.shift << exports.HIGHLOAD_QUERY_ID_BIT_NUMBER_SIZE) + this.bitnumber;
53
54
  }
54
55
  static fromQueryId(queryId) {
55
- const shift = queryId >> BIT_NUMBER_SIZE;
56
- const bitnumber = queryId & 1023n;
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
- return Math.floor(Date.now() / 1000) - 40; // -40 is used to pass check created_at <= now() in smart contract for sure
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) % 8388608n);
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) => ({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tonappchain/sdk",
3
- "version": "0.9.0-rc1",
3
+ "version": "0.9.0-rc3",
4
4
  "repository": "https://github.com/TacBuild/tac-sdk.git",
5
5
  "author": "TAC. <developers@tac>",
6
6
  "license": "MIT",