@ton/ton 16.1.0 → 16.2.0

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 (131) hide show
  1. package/README.md +47 -11
  2. package/dist/client/TonClient.d.ts +6 -6
  3. package/dist/client/TonClient.js +105 -80
  4. package/dist/client/TonClient4.d.ts +1 -1
  5. package/dist/client/TonClient4.js +227 -138
  6. package/dist/client/api/HttpApi.d.ts +122 -122
  7. package/dist/client/api/HttpApi.js +103 -72
  8. package/dist/client/api/TonCache.js +3 -3
  9. package/dist/config/ConfigParser.js +133 -112
  10. package/dist/elector/ElectorContract.js +46 -20
  11. package/dist/index.d.ts +22 -22
  12. package/dist/jetton/JettonMaster.js +5 -3
  13. package/dist/jetton/JettonWallet.js +2 -2
  14. package/dist/multisig/MultisigOrder.d.ts +2 -2
  15. package/dist/multisig/MultisigOrder.js +1 -1
  16. package/dist/multisig/MultisigOrderBuilder.d.ts +2 -2
  17. package/dist/multisig/MultisigOrderBuilder.js +1 -1
  18. package/dist/multisig/MultisigWallet.d.ts +3 -3
  19. package/dist/multisig/MultisigWallet.js +8 -8
  20. package/dist/utils/createTestClient.d.ts +1 -1
  21. package/dist/utils/createTestClient.js +6 -2
  22. package/dist/utils/createTestClient4.d.ts +1 -1
  23. package/dist/utils/createTestClient4.js +5 -1
  24. package/dist/utils/fees.d.ts +2 -2
  25. package/dist/utils/fees.js +21 -6
  26. package/dist/utils/{randomTestKey.d.ts → testUtils.d.ts} +2 -0
  27. package/dist/utils/testUtils.js +21 -0
  28. package/dist/utils/testWallets.d.ts +10 -10
  29. package/dist/utils/time.js +5 -3
  30. package/dist/utils/toUrlSafe.js +6 -6
  31. package/dist/wallets/WalletContractV1R1.d.ts +1 -57
  32. package/dist/wallets/WalletContractV1R1.js +15 -99
  33. package/dist/wallets/WalletContractV1R2.d.ts +1 -57
  34. package/dist/wallets/WalletContractV1R2.js +15 -100
  35. package/dist/wallets/WalletContractV1R3.d.ts +1 -57
  36. package/dist/wallets/WalletContractV1R3.js +15 -99
  37. package/dist/wallets/WalletContractV2R1.d.ts +1 -59
  38. package/dist/wallets/WalletContractV2R1.js +15 -101
  39. package/dist/wallets/WalletContractV2R2.d.ts +1 -59
  40. package/dist/wallets/WalletContractV2R2.js +15 -101
  41. package/dist/wallets/WalletContractV3R1.d.ts +1 -56
  42. package/dist/wallets/WalletContractV3R1.js +15 -103
  43. package/dist/wallets/WalletContractV3R2.d.ts +1 -56
  44. package/dist/wallets/WalletContractV3R2.js +15 -103
  45. package/dist/wallets/WalletContractV4.d.ts +2 -2
  46. package/dist/wallets/WalletContractV5Beta.d.ts +3 -3
  47. package/dist/wallets/WalletContractV5R1.d.ts +3 -3
  48. package/dist/wallets/signing/createWalletTransfer.d.ts +11 -3
  49. package/dist/wallets/signing/createWalletTransfer.js +18 -15
  50. package/dist/wallets/signing/singer.d.ts +2 -1
  51. package/dist/wallets/signing/singer.js +11 -5
  52. package/dist/wallets/v1/r1.d.ts +59 -0
  53. package/dist/wallets/v1/r1.js +103 -0
  54. package/dist/wallets/v1/r2.d.ts +59 -0
  55. package/dist/wallets/v1/r2.js +104 -0
  56. package/dist/wallets/v1/r3.d.ts +59 -0
  57. package/dist/wallets/v1/r3.js +103 -0
  58. package/dist/wallets/v2/r1.d.ts +61 -0
  59. package/dist/wallets/v2/r1.js +107 -0
  60. package/dist/wallets/v2/r2.d.ts +61 -0
  61. package/dist/wallets/v2/r2.js +107 -0
  62. package/dist/wallets/v3/r1.d.ts +58 -0
  63. package/dist/wallets/v3/r1.js +109 -0
  64. package/dist/wallets/v3/r2.d.ts +58 -0
  65. package/dist/wallets/v3/r2.js +109 -0
  66. package/dist/wallets/v4/WalletContractV4.d.ts +4 -2
  67. package/dist/wallets/v4/WalletContractV4.js +36 -32
  68. package/dist/wallets/v4/WalletContractV4Actions.d.ts +4 -4
  69. package/dist/wallets/v4/WalletContractV4Actions.js +10 -10
  70. package/dist/wallets/v5beta/WalletContractV5Beta.d.ts +7 -5
  71. package/dist/wallets/v5beta/WalletContractV5Beta.js +44 -28
  72. package/dist/wallets/v5beta/WalletV5BetaActions.d.ts +1 -1
  73. package/dist/wallets/v5beta/WalletV5BetaActions.js +25 -18
  74. package/dist/wallets/v5beta/WalletV5BetaWalletId.d.ts +2 -2
  75. package/dist/wallets/v5beta/WalletV5BetaWalletId.js +6 -4
  76. package/dist/wallets/v5beta/WalletV5OutActions.d.ts +4 -4
  77. package/dist/wallets/v5beta/WalletV5OutActions.js +3 -1
  78. package/dist/wallets/v5r1/WalletContractV5R1.d.ts +10 -6
  79. package/dist/wallets/v5r1/WalletContractV5R1.js +55 -36
  80. package/dist/wallets/v5r1/WalletV5R1Actions.d.ts +3 -3
  81. package/dist/wallets/v5r1/WalletV5R1Actions.js +32 -25
  82. package/dist/wallets/v5r1/WalletV5R1WalletId.d.ts +2 -2
  83. package/dist/wallets/v5r1/WalletV5R1WalletId.js +16 -10
  84. package/package.json +62 -65
  85. package/dist/client/TonClient.spec.d.ts +0 -1
  86. package/dist/client/TonClient.spec.js +0 -59
  87. package/dist/client/TonClient4.spec.d.ts +0 -1
  88. package/dist/client/TonClient4.spec.js +0 -67
  89. package/dist/config/ConfigParser.spec.d.ts +0 -8
  90. package/dist/config/ConfigParser.spec.js +0 -247
  91. package/dist/elector/ElectorContract.spec.d.ts +0 -8
  92. package/dist/elector/ElectorContract.spec.js +0 -104
  93. package/dist/jetton/JettonMaster.spec.d.ts +0 -8
  94. package/dist/jetton/JettonMaster.spec.js +0 -27
  95. package/dist/multisig/MultisigOrder.spec.d.ts +0 -1
  96. package/dist/multisig/MultisigOrder.spec.js +0 -139
  97. package/dist/multisig/MultisigWallet.spec.d.ts +0 -1
  98. package/dist/multisig/MultisigWallet.spec.js +0 -248
  99. package/dist/utils/fees.spec.d.ts +0 -1
  100. package/dist/utils/fees.spec.js +0 -83
  101. package/dist/utils/randomTestKey.js +0 -23
  102. package/dist/wallets/WalletContractV1R1.spec.d.ts +0 -8
  103. package/dist/wallets/WalletContractV1R1.spec.js +0 -67
  104. package/dist/wallets/WalletContractV1R2.spec.d.ts +0 -8
  105. package/dist/wallets/WalletContractV1R2.spec.js +0 -67
  106. package/dist/wallets/WalletContractV1R3.spec.d.ts +0 -8
  107. package/dist/wallets/WalletContractV1R3.spec.js +0 -44
  108. package/dist/wallets/WalletContractV2R1.spec.d.ts +0 -8
  109. package/dist/wallets/WalletContractV2R1.spec.js +0 -67
  110. package/dist/wallets/WalletContractV2R2.spec.d.ts +0 -8
  111. package/dist/wallets/WalletContractV2R2.spec.js +0 -67
  112. package/dist/wallets/WalletContractV3R1.spec.d.ts +0 -8
  113. package/dist/wallets/WalletContractV3R1.spec.js +0 -67
  114. package/dist/wallets/WalletContractV3R2.spec.d.ts +0 -8
  115. package/dist/wallets/WalletContractV3R2.spec.js +0 -67
  116. package/dist/wallets/v4/WalletContractV4.spec.d.ts +0 -8
  117. package/dist/wallets/v4/WalletContractV4.spec.js +0 -157
  118. package/dist/wallets/v4/WalletContractV4Actions.spec.d.ts +0 -1
  119. package/dist/wallets/v4/WalletContractV4Actions.spec.js +0 -74
  120. package/dist/wallets/v5beta/WalletContractV5Beta.spec.d.ts +0 -8
  121. package/dist/wallets/v5beta/WalletContractV5Beta.spec.js +0 -317
  122. package/dist/wallets/v5beta/WalletV5BetaActions.spec.d.ts +0 -1
  123. package/dist/wallets/v5beta/WalletV5BetaActions.spec.js +0 -166
  124. package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.d.ts +0 -1
  125. package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.js +0 -68
  126. package/dist/wallets/v5r1/WalletContractV5R1.spec.d.ts +0 -8
  127. package/dist/wallets/v5r1/WalletContractV5R1.spec.js +0 -340
  128. package/dist/wallets/v5r1/WalletV5R1Actions.spec.d.ts +0 -1
  129. package/dist/wallets/v5r1/WalletV5R1Actions.spec.js +0 -262
  130. package/dist/wallets/v5r1/WalletV5R1WalletId.spec.d.ts +0 -1
  131. package/dist/wallets/v5r1/WalletV5R1WalletId.spec.js +0 -103
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Copyright (c) Whales Corp.
3
+ * All Rights Reserved.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, SignatureDomain } from "@ton/core";
9
+ import { Maybe } from "../../utils/maybe";
10
+ export declare class WalletContractV2R1 implements Contract {
11
+ static create(args: {
12
+ workchain: number;
13
+ publicKey: Buffer;
14
+ domain?: SignatureDomain;
15
+ }): WalletContractV2R1;
16
+ readonly workchain: number;
17
+ readonly publicKey: Buffer;
18
+ readonly address: Address;
19
+ readonly init: {
20
+ data: Cell;
21
+ code: Cell;
22
+ };
23
+ domain?: SignatureDomain;
24
+ constructor(workchain: number, publicKey: Buffer, domain?: SignatureDomain);
25
+ /**
26
+ * Get Wallet Balance
27
+ */
28
+ getBalance(provider: ContractProvider): Promise<bigint>;
29
+ /**
30
+ * Get Wallet Seqno
31
+ */
32
+ getSeqno(provider: ContractProvider): Promise<number>;
33
+ /**
34
+ * Send signed transfer
35
+ */
36
+ send(provider: ContractProvider, message: Cell): Promise<void>;
37
+ /**
38
+ * Sign and send transfer
39
+ */
40
+ sendTransfer(provider: ContractProvider, args: {
41
+ seqno: number;
42
+ secretKey: Buffer;
43
+ messages: MessageRelaxed[];
44
+ sendMode?: Maybe<SendMode>;
45
+ timeout?: Maybe<number>;
46
+ }): Promise<void>;
47
+ /**
48
+ * Create signed transfer
49
+ */
50
+ createTransfer(args: {
51
+ seqno: number;
52
+ secretKey: Buffer;
53
+ messages: MessageRelaxed[];
54
+ sendMode?: Maybe<SendMode>;
55
+ timeout?: Maybe<number>;
56
+ }): Cell;
57
+ /**
58
+ * Create sender
59
+ */
60
+ sender(provider: ContractProvider, secretKey: Buffer): Sender;
61
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Whales Corp.
4
+ * All Rights Reserved.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.WalletContractV2R1 = void 0;
11
+ const core_1 = require("@ton/core");
12
+ const createWalletTransfer_1 = require("../signing/createWalletTransfer");
13
+ class WalletContractV2R1 {
14
+ static create(args) {
15
+ return new WalletContractV2R1(args.workchain, args.publicKey, args.domain);
16
+ }
17
+ constructor(workchain, publicKey, domain) {
18
+ this.workchain = workchain;
19
+ this.publicKey = publicKey;
20
+ this.domain = domain;
21
+ // Build initial code and data
22
+ let code = core_1.Cell.fromBoc(Buffer.from("te6cckEBAQEAVwAAqv8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VShNwu2", "base64"))[0];
23
+ let data = (0, core_1.beginCell)()
24
+ .storeUint(0, 32) // Seqno
25
+ .storeBuffer(publicKey)
26
+ .endCell();
27
+ this.init = { code, data };
28
+ this.address = (0, core_1.contractAddress)(workchain, { code, data });
29
+ }
30
+ /**
31
+ * Get Wallet Balance
32
+ */
33
+ async getBalance(provider) {
34
+ let state = await provider.getState();
35
+ return state.balance;
36
+ }
37
+ /**
38
+ * Get Wallet Seqno
39
+ */
40
+ async getSeqno(provider) {
41
+ let state = await provider.getState();
42
+ if (state.state.type === "active") {
43
+ let res = await provider.get("seqno", []);
44
+ return res.stack.readNumber();
45
+ }
46
+ else {
47
+ return 0;
48
+ }
49
+ }
50
+ /**
51
+ * Send signed transfer
52
+ */
53
+ async send(provider, message) {
54
+ await provider.external(message);
55
+ }
56
+ /**
57
+ * Sign and send transfer
58
+ */
59
+ async sendTransfer(provider, args) {
60
+ let transfer = this.createTransfer(args);
61
+ await this.send(provider, transfer);
62
+ }
63
+ /**
64
+ * Create signed transfer
65
+ */
66
+ createTransfer(args) {
67
+ let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;
68
+ if (args.sendMode !== null && args.sendMode !== undefined) {
69
+ sendMode = args.sendMode;
70
+ }
71
+ return (0, createWalletTransfer_1.createWalletTransferV2)({
72
+ seqno: args.seqno,
73
+ sendMode,
74
+ secretKey: args.secretKey,
75
+ messages: args.messages,
76
+ timeout: args.timeout,
77
+ domain: this.domain,
78
+ });
79
+ }
80
+ /**
81
+ * Create sender
82
+ */
83
+ sender(provider, secretKey) {
84
+ return {
85
+ send: async (args) => {
86
+ let seqno = await this.getSeqno(provider);
87
+ let transfer = this.createTransfer({
88
+ seqno,
89
+ secretKey,
90
+ sendMode: args.sendMode,
91
+ messages: [
92
+ (0, core_1.internal)({
93
+ to: args.to,
94
+ value: args.value,
95
+ extracurrency: args.extracurrency,
96
+ init: args.init,
97
+ body: args.body,
98
+ bounce: args.bounce,
99
+ }),
100
+ ],
101
+ });
102
+ await this.send(provider, transfer);
103
+ },
104
+ };
105
+ }
106
+ }
107
+ exports.WalletContractV2R1 = WalletContractV2R1;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Copyright (c) Whales Corp.
3
+ * All Rights Reserved.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, SignatureDomain } from "@ton/core";
9
+ import { Maybe } from "../../utils/maybe";
10
+ export declare class WalletContractV2R2 implements Contract {
11
+ static create(args: {
12
+ workchain: number;
13
+ publicKey: Buffer;
14
+ domain?: SignatureDomain;
15
+ }): WalletContractV2R2;
16
+ readonly workchain: number;
17
+ readonly publicKey: Buffer;
18
+ readonly address: Address;
19
+ readonly init: {
20
+ data: Cell;
21
+ code: Cell;
22
+ };
23
+ domain?: SignatureDomain;
24
+ constructor(workchain: number, publicKey: Buffer, domain?: SignatureDomain);
25
+ /**
26
+ * Get Wallet Balance
27
+ */
28
+ getBalance(provider: ContractProvider): Promise<bigint>;
29
+ /**
30
+ * Get Wallet Seqno
31
+ */
32
+ getSeqno(provider: ContractProvider): Promise<number>;
33
+ /**
34
+ * Send signed transfer
35
+ */
36
+ send(provider: ContractProvider, message: Cell): Promise<void>;
37
+ /**
38
+ * Sign and send transfer
39
+ */
40
+ sendTransfer(provider: ContractProvider, args: {
41
+ seqno: number;
42
+ secretKey: Buffer;
43
+ messages: MessageRelaxed[];
44
+ sendMode?: Maybe<SendMode>;
45
+ timeout?: Maybe<number>;
46
+ }): Promise<void>;
47
+ /**
48
+ * Create signed transfer
49
+ */
50
+ createTransfer(args: {
51
+ seqno: number;
52
+ secretKey: Buffer;
53
+ messages: MessageRelaxed[];
54
+ sendMode?: Maybe<SendMode>;
55
+ timeout?: Maybe<number>;
56
+ }): Cell;
57
+ /**
58
+ * Create sender
59
+ */
60
+ sender(provider: ContractProvider, secretKey: Buffer): Sender;
61
+ }
@@ -0,0 +1,107 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Whales Corp.
4
+ * All Rights Reserved.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.WalletContractV2R2 = void 0;
11
+ const core_1 = require("@ton/core");
12
+ const createWalletTransfer_1 = require("../signing/createWalletTransfer");
13
+ class WalletContractV2R2 {
14
+ static create(args) {
15
+ return new WalletContractV2R2(args.workchain, args.publicKey, args.domain);
16
+ }
17
+ constructor(workchain, publicKey, domain) {
18
+ this.workchain = workchain;
19
+ this.publicKey = publicKey;
20
+ this.domain = domain;
21
+ // Build initial code and data
22
+ let code = core_1.Cell.fromBoc(Buffer.from("te6cckEBAQEAYwAAwv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCDCNcYINMf0x8B+CO78mPtRNDTH9P/0VExuvKhA/kBVBBC+RDyovgAApMg10qW0wfUAvsA6NGkyMsfy//J7VQETNeh", "base64"))[0];
23
+ let data = (0, core_1.beginCell)()
24
+ .storeUint(0, 32) // Seqno
25
+ .storeBuffer(publicKey)
26
+ .endCell();
27
+ this.init = { code, data };
28
+ this.address = (0, core_1.contractAddress)(workchain, { code, data });
29
+ }
30
+ /**
31
+ * Get Wallet Balance
32
+ */
33
+ async getBalance(provider) {
34
+ let state = await provider.getState();
35
+ return state.balance;
36
+ }
37
+ /**
38
+ * Get Wallet Seqno
39
+ */
40
+ async getSeqno(provider) {
41
+ let state = await provider.getState();
42
+ if (state.state.type === "active") {
43
+ let res = await provider.get("seqno", []);
44
+ return res.stack.readNumber();
45
+ }
46
+ else {
47
+ return 0;
48
+ }
49
+ }
50
+ /**
51
+ * Send signed transfer
52
+ */
53
+ async send(provider, message) {
54
+ await provider.external(message);
55
+ }
56
+ /**
57
+ * Sign and send transfer
58
+ */
59
+ async sendTransfer(provider, args) {
60
+ let transfer = this.createTransfer(args);
61
+ await this.send(provider, transfer);
62
+ }
63
+ /**
64
+ * Create signed transfer
65
+ */
66
+ createTransfer(args) {
67
+ let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;
68
+ if (args.sendMode !== null && args.sendMode !== undefined) {
69
+ sendMode = args.sendMode;
70
+ }
71
+ return (0, createWalletTransfer_1.createWalletTransferV2)({
72
+ seqno: args.seqno,
73
+ sendMode,
74
+ secretKey: args.secretKey,
75
+ messages: args.messages,
76
+ timeout: args.timeout,
77
+ domain: this.domain,
78
+ });
79
+ }
80
+ /**
81
+ * Create sender
82
+ */
83
+ sender(provider, secretKey) {
84
+ return {
85
+ send: async (args) => {
86
+ let seqno = await this.getSeqno(provider);
87
+ let transfer = this.createTransfer({
88
+ seqno,
89
+ secretKey,
90
+ sendMode: args.sendMode,
91
+ messages: [
92
+ (0, core_1.internal)({
93
+ to: args.to,
94
+ value: args.value,
95
+ extracurrency: args.extracurrency,
96
+ init: args.init,
97
+ body: args.body,
98
+ bounce: args.bounce,
99
+ }),
100
+ ],
101
+ });
102
+ await this.send(provider, transfer);
103
+ },
104
+ };
105
+ }
106
+ }
107
+ exports.WalletContractV2R2 = WalletContractV2R2;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright (c) Whales Corp.
3
+ * All Rights Reserved.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, SignatureDomain } from "@ton/core";
9
+ import { Maybe } from "../../utils/maybe";
10
+ import { WalletV3SendArgsSignable, WalletV3SendArgsSigned } from "../WalletContractV3Types";
11
+ export declare class WalletContractV3R1 implements Contract {
12
+ static create(args: {
13
+ workchain: number;
14
+ publicKey: Buffer;
15
+ walletId?: Maybe<number>;
16
+ domain?: SignatureDomain;
17
+ }): WalletContractV3R1;
18
+ readonly workchain: number;
19
+ readonly publicKey: Buffer;
20
+ readonly address: Address;
21
+ readonly walletId: number;
22
+ readonly init: {
23
+ data: Cell;
24
+ code: Cell;
25
+ };
26
+ domain?: SignatureDomain;
27
+ constructor(workchain: number, publicKey: Buffer, walletId?: Maybe<number>, domain?: SignatureDomain);
28
+ /**
29
+ * Get wallet balance
30
+ */
31
+ getBalance(provider: ContractProvider): Promise<bigint>;
32
+ /**
33
+ * Get Wallet Seqno
34
+ */
35
+ getSeqno(provider: ContractProvider): Promise<number>;
36
+ /**
37
+ * Send signed transfer
38
+ */
39
+ send(provider: ContractProvider, message: Cell): Promise<void>;
40
+ /**
41
+ * Sign and send transfer
42
+ */
43
+ sendTransfer(provider: ContractProvider, args: {
44
+ seqno: number;
45
+ secretKey: Buffer;
46
+ messages: MessageRelaxed[];
47
+ sendMode?: Maybe<SendMode>;
48
+ timeout?: Maybe<number>;
49
+ }): Promise<void>;
50
+ /**
51
+ * Create transfer
52
+ */
53
+ createTransfer<T extends WalletV3SendArgsSigned | WalletV3SendArgsSignable>(args: T): T extends WalletV3SendArgsSignable ? Promise<Cell> : Cell;
54
+ /**
55
+ * Create sender
56
+ */
57
+ sender(provider: ContractProvider, secretKey: Buffer): Sender;
58
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Whales Corp.
4
+ * All Rights Reserved.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.WalletContractV3R1 = void 0;
11
+ const core_1 = require("@ton/core");
12
+ const createWalletTransfer_1 = require("../signing/createWalletTransfer");
13
+ class WalletContractV3R1 {
14
+ static create(args) {
15
+ return new WalletContractV3R1(args.workchain, args.publicKey, args.walletId, args.domain);
16
+ }
17
+ constructor(workchain, publicKey, walletId, domain) {
18
+ // Resolve parameters
19
+ this.workchain = workchain;
20
+ this.publicKey = publicKey;
21
+ this.domain = domain;
22
+ if (walletId !== null && walletId !== undefined) {
23
+ this.walletId = walletId;
24
+ }
25
+ else {
26
+ this.walletId = 698983191 + workchain;
27
+ }
28
+ // Build initial code and data
29
+ let code = core_1.Cell.fromBoc(Buffer.from("te6cckEBAQEAYgAAwP8AIN0gggFMl7qXMO1E0NcLH+Ck8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVD++buA=", "base64"))[0];
30
+ let data = (0, core_1.beginCell)()
31
+ .storeUint(0, 32) // Seqno
32
+ .storeUint(this.walletId, 32)
33
+ .storeBuffer(publicKey)
34
+ .endCell();
35
+ this.init = { code, data };
36
+ this.address = (0, core_1.contractAddress)(workchain, { code, data });
37
+ }
38
+ /**
39
+ * Get wallet balance
40
+ */
41
+ async getBalance(provider) {
42
+ let state = await provider.getState();
43
+ return state.balance;
44
+ }
45
+ /**
46
+ * Get Wallet Seqno
47
+ */
48
+ async getSeqno(provider) {
49
+ let state = await provider.getState();
50
+ if (state.state.type === "active") {
51
+ let res = await provider.get("seqno", []);
52
+ return res.stack.readNumber();
53
+ }
54
+ else {
55
+ return 0;
56
+ }
57
+ }
58
+ /**
59
+ * Send signed transfer
60
+ */
61
+ async send(provider, message) {
62
+ await provider.external(message);
63
+ }
64
+ /**
65
+ * Sign and send transfer
66
+ */
67
+ async sendTransfer(provider, args) {
68
+ let transfer = this.createTransfer(args);
69
+ await this.send(provider, transfer);
70
+ }
71
+ /**
72
+ * Create transfer
73
+ */
74
+ createTransfer(args) {
75
+ return (0, createWalletTransfer_1.createWalletTransferV3)({
76
+ ...args,
77
+ sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY,
78
+ walletId: this.walletId,
79
+ domain: this.domain,
80
+ });
81
+ }
82
+ /**
83
+ * Create sender
84
+ */
85
+ sender(provider, secretKey) {
86
+ return {
87
+ send: async (args) => {
88
+ let seqno = await this.getSeqno(provider);
89
+ let transfer = this.createTransfer({
90
+ seqno,
91
+ secretKey,
92
+ sendMode: args.sendMode,
93
+ messages: [
94
+ (0, core_1.internal)({
95
+ to: args.to,
96
+ value: args.value,
97
+ extracurrency: args.extracurrency,
98
+ init: args.init,
99
+ body: args.body,
100
+ bounce: args.bounce,
101
+ }),
102
+ ],
103
+ });
104
+ await this.send(provider, transfer);
105
+ },
106
+ };
107
+ }
108
+ }
109
+ exports.WalletContractV3R1 = WalletContractV3R1;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Copyright (c) Whales Corp.
3
+ * All Rights Reserved.
4
+ *
5
+ * This source code is licensed under the MIT license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, SignatureDomain } from "@ton/core";
9
+ import { Maybe } from "../../utils/maybe";
10
+ import { WalletV3SendArgsSignable, WalletV3SendArgsSigned } from "../WalletContractV3Types";
11
+ export declare class WalletContractV3R2 implements Contract {
12
+ static create(args: {
13
+ workchain: number;
14
+ publicKey: Buffer;
15
+ walletId?: Maybe<number>;
16
+ domain?: SignatureDomain;
17
+ }): WalletContractV3R2;
18
+ readonly workchain: number;
19
+ readonly publicKey: Buffer;
20
+ readonly address: Address;
21
+ readonly walletId: number;
22
+ readonly init: {
23
+ data: Cell;
24
+ code: Cell;
25
+ };
26
+ domain?: SignatureDomain;
27
+ constructor(workchain: number, publicKey: Buffer, walletId?: Maybe<number>, domain?: SignatureDomain);
28
+ /**
29
+ * Get wallet balance
30
+ */
31
+ getBalance(provider: ContractProvider): Promise<bigint>;
32
+ /**
33
+ * Get Wallet Seqno
34
+ */
35
+ getSeqno(provider: ContractProvider): Promise<number>;
36
+ /**
37
+ * Send signed transfer
38
+ */
39
+ send(provider: ContractProvider, message: Cell): Promise<void>;
40
+ /**
41
+ * Sign and send transfer
42
+ */
43
+ sendTransfer(provider: ContractProvider, args: {
44
+ seqno: number;
45
+ secretKey: Buffer;
46
+ messages: MessageRelaxed[];
47
+ sendMode?: Maybe<SendMode>;
48
+ timeout?: Maybe<number>;
49
+ }): Promise<void>;
50
+ /**
51
+ * Create transfer
52
+ */
53
+ createTransfer<T extends WalletV3SendArgsSigned | WalletV3SendArgsSignable>(args: T): T extends WalletV3SendArgsSignable ? Promise<Cell> : Cell;
54
+ /**
55
+ * Create sender
56
+ */
57
+ sender(provider: ContractProvider, secretKey: Buffer): Sender;
58
+ }
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright (c) Whales Corp.
4
+ * All Rights Reserved.
5
+ *
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.WalletContractV3R2 = void 0;
11
+ const core_1 = require("@ton/core");
12
+ const createWalletTransfer_1 = require("../signing/createWalletTransfer");
13
+ class WalletContractV3R2 {
14
+ static create(args) {
15
+ return new WalletContractV3R2(args.workchain, args.publicKey, args.walletId, args.domain);
16
+ }
17
+ constructor(workchain, publicKey, walletId, domain) {
18
+ // Resolve parameters
19
+ this.workchain = workchain;
20
+ this.publicKey = publicKey;
21
+ this.domain = domain;
22
+ if (walletId !== null && walletId !== undefined) {
23
+ this.walletId = walletId;
24
+ }
25
+ else {
26
+ this.walletId = 698983191 + workchain;
27
+ }
28
+ // Build initial code and data
29
+ let code = core_1.Cell.fromBoc(Buffer.from("te6cckEBAQEAcQAA3v8AIN0gggFMl7ohggEznLqxn3Gw7UTQ0x/THzHXC//jBOCk8mCDCNcYINMf0x/TH/gjE7vyY+1E0NMf0x/T/9FRMrryoVFEuvKiBPkBVBBV+RDyo/gAkyDXSpbTB9QC+wDo0QGkyMsfyx/L/8ntVBC9ba0=", "base64"))[0];
30
+ let data = (0, core_1.beginCell)()
31
+ .storeUint(0, 32) // Seqno
32
+ .storeUint(this.walletId, 32)
33
+ .storeBuffer(publicKey)
34
+ .endCell();
35
+ this.init = { code, data };
36
+ this.address = (0, core_1.contractAddress)(workchain, { code, data });
37
+ }
38
+ /**
39
+ * Get wallet balance
40
+ */
41
+ async getBalance(provider) {
42
+ let state = await provider.getState();
43
+ return state.balance;
44
+ }
45
+ /**
46
+ * Get Wallet Seqno
47
+ */
48
+ async getSeqno(provider) {
49
+ let state = await provider.getState();
50
+ if (state.state.type === "active") {
51
+ let res = await provider.get("seqno", []);
52
+ return res.stack.readNumber();
53
+ }
54
+ else {
55
+ return 0;
56
+ }
57
+ }
58
+ /**
59
+ * Send signed transfer
60
+ */
61
+ async send(provider, message) {
62
+ await provider.external(message);
63
+ }
64
+ /**
65
+ * Sign and send transfer
66
+ */
67
+ async sendTransfer(provider, args) {
68
+ let transfer = this.createTransfer(args);
69
+ await this.send(provider, transfer);
70
+ }
71
+ /**
72
+ * Create transfer
73
+ */
74
+ createTransfer(args) {
75
+ return (0, createWalletTransfer_1.createWalletTransferV3)({
76
+ ...args,
77
+ sendMode: args.sendMode ?? core_1.SendMode.PAY_GAS_SEPARATELY,
78
+ walletId: this.walletId,
79
+ domain: this.domain,
80
+ });
81
+ }
82
+ /**
83
+ * Create sender
84
+ */
85
+ sender(provider, secretKey) {
86
+ return {
87
+ send: async (args) => {
88
+ let seqno = await this.getSeqno(provider);
89
+ let transfer = this.createTransfer({
90
+ seqno,
91
+ secretKey,
92
+ sendMode: args.sendMode,
93
+ messages: [
94
+ (0, core_1.internal)({
95
+ to: args.to,
96
+ value: args.value,
97
+ extracurrency: args.extracurrency,
98
+ init: args.init,
99
+ body: args.body,
100
+ bounce: args.bounce,
101
+ }),
102
+ ],
103
+ });
104
+ await this.send(provider, transfer);
105
+ },
106
+ };
107
+ }
108
+ }
109
+ exports.WalletContractV3R2 = WalletContractV3R2;
@@ -5,7 +5,7 @@
5
5
  * This source code is licensed under the MIT license found in the
6
6
  * LICENSE file in the root directory of this source tree.
7
7
  */
8
- import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, StateInit } from "@ton/core";
8
+ import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, SignatureDomain, StateInit } from "@ton/core";
9
9
  import { Maybe } from "../../utils/maybe";
10
10
  import { SendArgsSignable, SendArgsSigned } from "../signing/singer";
11
11
  import { OutActionWalletV4, WalletV4SendArgs, WalletV4SendArgsSignable } from "./WalletContractV4Actions";
@@ -22,6 +22,7 @@ export declare class WalletContractV4 implements Contract {
22
22
  workchain: number;
23
23
  publicKey: Buffer;
24
24
  walletId?: Maybe<number>;
25
+ domain?: SignatureDomain;
25
26
  }): WalletContractV4;
26
27
  readonly workchain: number;
27
28
  readonly publicKey: Buffer;
@@ -31,7 +32,8 @@ export declare class WalletContractV4 implements Contract {
31
32
  data: Cell;
32
33
  code: Cell;
33
34
  };
34
- constructor(workchain: number, publicKey: Buffer, walletId?: Maybe<number>);
35
+ domain?: SignatureDomain;
36
+ constructor(workchain: number, publicKey: Buffer, walletId?: Maybe<number>, domain?: SignatureDomain);
35
37
  /**
36
38
  * Get Wallet Balance
37
39
  */