@ton/ton 16.0.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.
- package/README.md +47 -11
- package/dist/client/TonClient.d.ts +6 -6
- package/dist/client/TonClient.js +105 -80
- package/dist/client/TonClient4.d.ts +1 -1
- package/dist/client/TonClient4.js +227 -138
- package/dist/client/api/HttpApi.d.ts +122 -122
- package/dist/client/api/HttpApi.js +103 -72
- package/dist/client/api/TonCache.js +3 -3
- package/dist/config/ConfigParser.d.ts +221 -409
- package/dist/config/ConfigParser.js +407 -89
- package/dist/elector/ElectorContract.js +46 -20
- package/dist/index.d.ts +22 -22
- package/dist/index.js +2 -1
- package/dist/jetton/JettonMaster.js +5 -3
- package/dist/jetton/JettonWallet.js +2 -2
- package/dist/multisig/MultisigOrder.d.ts +2 -2
- package/dist/multisig/MultisigOrder.js +1 -1
- package/dist/multisig/MultisigOrderBuilder.d.ts +2 -2
- package/dist/multisig/MultisigOrderBuilder.js +1 -1
- package/dist/multisig/MultisigWallet.d.ts +3 -3
- package/dist/multisig/MultisigWallet.js +8 -8
- package/dist/utils/createTestClient.d.ts +1 -1
- package/dist/utils/createTestClient.js +6 -2
- package/dist/utils/createTestClient4.d.ts +1 -1
- package/dist/utils/createTestClient4.js +5 -1
- package/dist/utils/fees.d.ts +2 -2
- package/dist/utils/fees.js +21 -6
- package/dist/utils/{randomTestKey.d.ts → testUtils.d.ts} +2 -0
- package/dist/utils/testUtils.js +21 -0
- package/dist/utils/testWallets.d.ts +10 -10
- package/dist/utils/time.js +5 -3
- package/dist/utils/toUrlSafe.js +6 -6
- package/dist/wallets/WalletContractV1R1.d.ts +1 -57
- package/dist/wallets/WalletContractV1R1.js +15 -99
- package/dist/wallets/WalletContractV1R2.d.ts +1 -57
- package/dist/wallets/WalletContractV1R2.js +15 -100
- package/dist/wallets/WalletContractV1R3.d.ts +1 -57
- package/dist/wallets/WalletContractV1R3.js +15 -99
- package/dist/wallets/WalletContractV2R1.d.ts +1 -59
- package/dist/wallets/WalletContractV2R1.js +15 -101
- package/dist/wallets/WalletContractV2R2.d.ts +1 -59
- package/dist/wallets/WalletContractV2R2.js +15 -101
- package/dist/wallets/WalletContractV3R1.d.ts +1 -56
- package/dist/wallets/WalletContractV3R1.js +15 -103
- package/dist/wallets/WalletContractV3R2.d.ts +1 -56
- package/dist/wallets/WalletContractV3R2.js +15 -103
- package/dist/wallets/WalletContractV4.d.ts +2 -2
- package/dist/wallets/WalletContractV5Beta.d.ts +3 -3
- package/dist/wallets/WalletContractV5R1.d.ts +3 -3
- package/dist/wallets/signing/createWalletTransfer.d.ts +11 -3
- package/dist/wallets/signing/createWalletTransfer.js +18 -15
- package/dist/wallets/signing/singer.d.ts +2 -1
- package/dist/wallets/signing/singer.js +11 -5
- package/dist/wallets/v1/r1.d.ts +59 -0
- package/dist/wallets/v1/r1.js +103 -0
- package/dist/wallets/v1/r2.d.ts +59 -0
- package/dist/wallets/v1/r2.js +104 -0
- package/dist/wallets/v1/r3.d.ts +59 -0
- package/dist/wallets/v1/r3.js +103 -0
- package/dist/wallets/v2/r1.d.ts +61 -0
- package/dist/wallets/v2/r1.js +107 -0
- package/dist/wallets/v2/r2.d.ts +61 -0
- package/dist/wallets/v2/r2.js +107 -0
- package/dist/wallets/v3/r1.d.ts +58 -0
- package/dist/wallets/v3/r1.js +109 -0
- package/dist/wallets/v3/r2.d.ts +58 -0
- package/dist/wallets/v3/r2.js +109 -0
- package/dist/wallets/v4/WalletContractV4.d.ts +4 -2
- package/dist/wallets/v4/WalletContractV4.js +36 -32
- package/dist/wallets/v4/WalletContractV4Actions.d.ts +4 -4
- package/dist/wallets/v4/WalletContractV4Actions.js +10 -10
- package/dist/wallets/v5beta/WalletContractV5Beta.d.ts +7 -5
- package/dist/wallets/v5beta/WalletContractV5Beta.js +44 -28
- package/dist/wallets/v5beta/WalletV5BetaActions.d.ts +1 -1
- package/dist/wallets/v5beta/WalletV5BetaActions.js +25 -18
- package/dist/wallets/v5beta/WalletV5BetaWalletId.d.ts +2 -2
- package/dist/wallets/v5beta/WalletV5BetaWalletId.js +6 -4
- package/dist/wallets/v5beta/WalletV5OutActions.d.ts +4 -4
- package/dist/wallets/v5beta/WalletV5OutActions.js +3 -1
- package/dist/wallets/v5r1/WalletContractV5R1.d.ts +10 -6
- package/dist/wallets/v5r1/WalletContractV5R1.js +55 -36
- package/dist/wallets/v5r1/WalletV5R1Actions.d.ts +3 -3
- package/dist/wallets/v5r1/WalletV5R1Actions.js +32 -25
- package/dist/wallets/v5r1/WalletV5R1WalletId.d.ts +2 -2
- package/dist/wallets/v5r1/WalletV5R1WalletId.js +16 -10
- package/package.json +62 -65
- package/dist/client/TonClient.spec.d.ts +0 -1
- package/dist/client/TonClient.spec.js +0 -59
- package/dist/client/TonClient4.spec.d.ts +0 -1
- package/dist/client/TonClient4.spec.js +0 -67
- package/dist/config/ConfigParser.spec.d.ts +0 -8
- package/dist/config/ConfigParser.spec.js +0 -137
- package/dist/elector/ElectorContract.spec.d.ts +0 -8
- package/dist/elector/ElectorContract.spec.js +0 -104
- package/dist/jetton/JettonMaster.spec.d.ts +0 -8
- package/dist/jetton/JettonMaster.spec.js +0 -27
- package/dist/multisig/MultisigOrder.spec.d.ts +0 -1
- package/dist/multisig/MultisigOrder.spec.js +0 -139
- package/dist/multisig/MultisigWallet.spec.d.ts +0 -1
- package/dist/multisig/MultisigWallet.spec.js +0 -248
- package/dist/utils/fees.spec.d.ts +0 -1
- package/dist/utils/fees.spec.js +0 -83
- package/dist/utils/randomTestKey.js +0 -23
- package/dist/wallets/WalletContractV1R1.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV1R1.spec.js +0 -67
- package/dist/wallets/WalletContractV1R2.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV1R2.spec.js +0 -67
- package/dist/wallets/WalletContractV1R3.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV1R3.spec.js +0 -44
- package/dist/wallets/WalletContractV2R1.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV2R1.spec.js +0 -67
- package/dist/wallets/WalletContractV2R2.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV2R2.spec.js +0 -67
- package/dist/wallets/WalletContractV3R1.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV3R1.spec.js +0 -67
- package/dist/wallets/WalletContractV3R2.spec.d.ts +0 -8
- package/dist/wallets/WalletContractV3R2.spec.js +0 -67
- package/dist/wallets/v4/WalletContractV4.spec.d.ts +0 -8
- package/dist/wallets/v4/WalletContractV4.spec.js +0 -157
- package/dist/wallets/v4/WalletContractV4Actions.spec.d.ts +0 -1
- package/dist/wallets/v4/WalletContractV4Actions.spec.js +0 -74
- package/dist/wallets/v5beta/WalletContractV5Beta.spec.d.ts +0 -8
- package/dist/wallets/v5beta/WalletContractV5Beta.spec.js +0 -317
- package/dist/wallets/v5beta/WalletV5BetaActions.spec.d.ts +0 -1
- package/dist/wallets/v5beta/WalletV5BetaActions.spec.js +0 -166
- package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.d.ts +0 -1
- package/dist/wallets/v5beta/WalletV5BetaWalletId.spec.js +0 -68
- package/dist/wallets/v5r1/WalletContractV5R1.spec.d.ts +0 -8
- package/dist/wallets/v5r1/WalletContractV5R1.spec.js +0 -340
- package/dist/wallets/v5r1/WalletV5R1Actions.spec.d.ts +0 -1
- package/dist/wallets/v5r1/WalletV5R1Actions.spec.js +0 -262
- package/dist/wallets/v5r1/WalletV5R1WalletId.spec.d.ts +0 -1
- package/dist/wallets/v5r1/WalletV5R1WalletId.spec.js +0 -103
|
@@ -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 { Builder, Cell, MessageRelaxed, OutActionSendMsg } from "@ton/core";
|
|
8
|
+
import { Builder, Cell, MessageRelaxed, OutActionSendMsg, SignatureDomain } from "@ton/core";
|
|
9
9
|
import { Maybe } from "../../utils/maybe";
|
|
10
10
|
import { WalletV5BetaPackedCell, WalletV5BetaSendArgs, WalletV5BetaSendArgsExtensionAuth } from "../v5beta/WalletContractV5Beta";
|
|
11
11
|
import { WalletV3SendArgsSignable, WalletV3SendArgsSigned } from "../WalletContractV3Types";
|
|
@@ -17,6 +17,7 @@ export declare function createWalletTransferV1(args: {
|
|
|
17
17
|
sendMode: number;
|
|
18
18
|
message: Maybe<MessageRelaxed>;
|
|
19
19
|
secretKey: Buffer;
|
|
20
|
+
domain?: SignatureDomain;
|
|
20
21
|
}): Cell;
|
|
21
22
|
export declare function createWalletTransferV2(args: {
|
|
22
23
|
seqno: number;
|
|
@@ -24,25 +25,32 @@ export declare function createWalletTransferV2(args: {
|
|
|
24
25
|
messages: MessageRelaxed[];
|
|
25
26
|
secretKey: Buffer;
|
|
26
27
|
timeout?: Maybe<number>;
|
|
28
|
+
domain?: SignatureDomain;
|
|
27
29
|
}): Cell;
|
|
28
30
|
export declare function createWalletTransferV3<T extends WalletV3SendArgsSignable | WalletV3SendArgsSigned>(args: T & {
|
|
29
31
|
sendMode: number;
|
|
30
32
|
walletId: number;
|
|
33
|
+
domain?: SignatureDomain;
|
|
31
34
|
}): T extends WalletV3SendArgsSignable ? Promise<Cell> : Cell;
|
|
32
35
|
export declare function createWalletTransferV4<T extends WalletV4SendArgs & {
|
|
33
36
|
action: OutActionWalletV4;
|
|
34
37
|
}>(args: T & {
|
|
35
38
|
walletId: number;
|
|
39
|
+
domain?: SignatureDomain;
|
|
36
40
|
}): T extends WalletV4SendArgsSignable ? Promise<Cell> : Cell;
|
|
37
|
-
export declare function createWalletTransferV5Beta<T extends WalletV5BetaSendArgs>(args: T extends WalletV5BetaSendArgsExtensionAuth ? T & {
|
|
41
|
+
export declare function createWalletTransferV5Beta<T extends WalletV5BetaSendArgs>(args: (T extends WalletV5BetaSendArgsExtensionAuth ? T & {
|
|
38
42
|
actions: (OutActionSendMsg | OutActionExtended)[];
|
|
39
43
|
} : T & {
|
|
40
44
|
actions: (OutActionSendMsg | OutActionExtended)[];
|
|
41
45
|
walletId: (builder: Builder) => void;
|
|
46
|
+
}) & {
|
|
47
|
+
domain?: SignatureDomain;
|
|
42
48
|
}): WalletV5BetaPackedCell<T>;
|
|
43
|
-
export declare function createWalletTransferV5R1<T extends WalletV5R1SendArgs>(args: T extends Wallet5VR1SendArgsExtensionAuth ? T & {
|
|
49
|
+
export declare function createWalletTransferV5R1<T extends WalletV5R1SendArgs>(args: (T extends Wallet5VR1SendArgsExtensionAuth ? T & {
|
|
44
50
|
actions: (OutActionSendMsg | OutActionExtended)[];
|
|
45
51
|
} : T & {
|
|
46
52
|
actions: (OutActionSendMsg | OutActionExtended)[];
|
|
47
53
|
walletId: (builder: Builder) => void;
|
|
54
|
+
}) & {
|
|
55
|
+
domain?: SignatureDomain;
|
|
48
56
|
}): WalletV5R1PackedCell<T>;
|
|
@@ -14,7 +14,6 @@ exports.createWalletTransferV4 = createWalletTransferV4;
|
|
|
14
14
|
exports.createWalletTransferV5Beta = createWalletTransferV5Beta;
|
|
15
15
|
exports.createWalletTransferV5R1 = createWalletTransferV5R1;
|
|
16
16
|
const core_1 = require("@ton/core");
|
|
17
|
-
const crypto_1 = require("@ton/crypto");
|
|
18
17
|
const WalletContractV5Beta_1 = require("../v5beta/WalletContractV5Beta");
|
|
19
18
|
const WalletV5BetaActions_1 = require("../v5beta/WalletV5BetaActions");
|
|
20
19
|
const singer_1 = require("./singer");
|
|
@@ -37,14 +36,17 @@ function packSignatureToTail(signature, signingMessage) {
|
|
|
37
36
|
}
|
|
38
37
|
function createWalletTransferV1(args) {
|
|
39
38
|
// Create message
|
|
40
|
-
let signingMessage = (0, core_1.beginCell)()
|
|
41
|
-
.storeUint(args.seqno, 32);
|
|
39
|
+
let signingMessage = (0, core_1.beginCell)().storeUint(args.seqno, 32);
|
|
42
40
|
if (args.message) {
|
|
43
41
|
signingMessage.storeUint(args.sendMode, 8);
|
|
44
42
|
signingMessage.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(args.message)));
|
|
45
43
|
}
|
|
46
44
|
// Sign message
|
|
47
|
-
let signature = (0,
|
|
45
|
+
let signature = (0, core_1.domainSign)({
|
|
46
|
+
data: signingMessage.endCell().hash(),
|
|
47
|
+
secretKey: args.secretKey,
|
|
48
|
+
domain: args.domain,
|
|
49
|
+
});
|
|
48
50
|
// Body
|
|
49
51
|
const body = (0, core_1.beginCell)()
|
|
50
52
|
.storeBuffer(signature)
|
|
@@ -58,8 +60,7 @@ function createWalletTransferV2(args) {
|
|
|
58
60
|
throw Error("Maximum number of messages in a single transfer is 4");
|
|
59
61
|
}
|
|
60
62
|
// Create message
|
|
61
|
-
let signingMessage = (0, core_1.beginCell)()
|
|
62
|
-
.storeUint(args.seqno, 32);
|
|
63
|
+
let signingMessage = (0, core_1.beginCell)().storeUint(args.seqno, 32);
|
|
63
64
|
if (args.seqno === 0) {
|
|
64
65
|
for (let i = 0; i < 32; i++) {
|
|
65
66
|
signingMessage.storeBit(1);
|
|
@@ -73,7 +74,11 @@ function createWalletTransferV2(args) {
|
|
|
73
74
|
signingMessage.storeRef((0, core_1.beginCell)().store((0, core_1.storeMessageRelaxed)(m)));
|
|
74
75
|
}
|
|
75
76
|
// Sign message
|
|
76
|
-
let signature = (0,
|
|
77
|
+
let signature = (0, core_1.domainSign)({
|
|
78
|
+
data: signingMessage.endCell().hash(),
|
|
79
|
+
secretKey: args.secretKey,
|
|
80
|
+
domain: args.domain,
|
|
81
|
+
});
|
|
77
82
|
// Body
|
|
78
83
|
const body = (0, core_1.beginCell)()
|
|
79
84
|
.storeBuffer(signature)
|
|
@@ -87,8 +92,7 @@ function createWalletTransferV3(args) {
|
|
|
87
92
|
throw Error("Maximum number of messages in a single transfer is 4");
|
|
88
93
|
}
|
|
89
94
|
// Create message to sign
|
|
90
|
-
let signingMessage = (0, core_1.beginCell)()
|
|
91
|
-
.storeUint(args.walletId, 32);
|
|
95
|
+
let signingMessage = (0, core_1.beginCell)().storeUint(args.walletId, 32);
|
|
92
96
|
if (args.seqno === 0) {
|
|
93
97
|
for (let i = 0; i < 32; i++) {
|
|
94
98
|
signingMessage.storeBit(1);
|
|
@@ -105,8 +109,7 @@ function createWalletTransferV3(args) {
|
|
|
105
109
|
return (0, singer_1.signPayload)(args, signingMessage, packSignatureToFront);
|
|
106
110
|
}
|
|
107
111
|
function createWalletTransferV4(args) {
|
|
108
|
-
let signingMessage = (0, core_1.beginCell)()
|
|
109
|
-
.storeUint(args.walletId, 32);
|
|
112
|
+
let signingMessage = (0, core_1.beginCell)().storeUint(args.walletId, 32);
|
|
110
113
|
if (args.seqno === 0) {
|
|
111
114
|
for (let i = 0; i < 32; i++) {
|
|
112
115
|
signingMessage.storeBit(1);
|
|
@@ -124,14 +127,14 @@ function createWalletTransferV5Beta(args) {
|
|
|
124
127
|
if (args.actions.length > 255) {
|
|
125
128
|
throw Error("Maximum number of OutActions in a single request is 255");
|
|
126
129
|
}
|
|
127
|
-
if (args.authType ===
|
|
130
|
+
if (args.authType === "extension") {
|
|
128
131
|
return (0, core_1.beginCell)()
|
|
129
132
|
.storeUint(WalletContractV5Beta_1.WalletContractV5Beta.OpCodes.auth_extension, 32)
|
|
130
133
|
.store((0, WalletV5BetaActions_1.storeOutListExtendedV5Beta)(args.actions))
|
|
131
134
|
.endCell();
|
|
132
135
|
}
|
|
133
136
|
const signingMessage = (0, core_1.beginCell)()
|
|
134
|
-
.storeUint(args.authType ===
|
|
137
|
+
.storeUint(args.authType === "internal"
|
|
135
138
|
? WalletContractV5Beta_1.WalletContractV5Beta.OpCodes.auth_signed_internal
|
|
136
139
|
: WalletContractV5Beta_1.WalletContractV5Beta.OpCodes.auth_signed_external, 32)
|
|
137
140
|
.store(args.walletId);
|
|
@@ -154,7 +157,7 @@ function createWalletTransferV5R1(args) {
|
|
|
154
157
|
throw Error("Maximum number of OutActions in a single request is 255");
|
|
155
158
|
}
|
|
156
159
|
args = { ...args };
|
|
157
|
-
if (args.authType ===
|
|
160
|
+
if (args.authType === "extension") {
|
|
158
161
|
return (0, core_1.beginCell)()
|
|
159
162
|
.storeUint(WalletContractV5R1_1.WalletContractV5R1.OpCodes.auth_extension, 32)
|
|
160
163
|
.storeUint(args.queryId ?? 0, 64)
|
|
@@ -163,7 +166,7 @@ function createWalletTransferV5R1(args) {
|
|
|
163
166
|
}
|
|
164
167
|
args.actions = (0, WalletV5R1Actions_1.patchV5R1ActionsSendMode)(args.actions, args.authType);
|
|
165
168
|
const signingMessage = (0, core_1.beginCell)()
|
|
166
|
-
.storeUint(args.authType ===
|
|
169
|
+
.storeUint(args.authType === "internal"
|
|
167
170
|
? WalletContractV5R1_1.WalletContractV5R1.OpCodes.auth_signed_internal
|
|
168
171
|
: WalletContractV5R1_1.WalletContractV5R1.OpCodes.auth_signed_external, 32)
|
|
169
172
|
.store(args.walletId);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Builder, Cell } from "@ton/core";
|
|
1
|
+
import { Builder, Cell, SignatureDomain } from "@ton/core";
|
|
2
2
|
export type SendArgsSigned = {
|
|
3
3
|
secretKey: Buffer;
|
|
4
|
+
domain?: SignatureDomain;
|
|
4
5
|
};
|
|
5
6
|
export type SendArgsSignable = {
|
|
6
7
|
signer: (message: Cell) => Promise<Buffer>;
|
|
@@ -1,20 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.signPayload = signPayload;
|
|
4
|
-
const
|
|
4
|
+
const core_1 = require("@ton/core");
|
|
5
5
|
function signPayload(args, signingMessage, packMessage) {
|
|
6
|
-
if (
|
|
6
|
+
if ("secretKey" in args) {
|
|
7
7
|
/**
|
|
8
8
|
* Client provider an secretKey to sign transaction.
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
const signature = (0, core_1.domainSign)({
|
|
11
|
+
data: signingMessage.endCell().hash(),
|
|
12
|
+
secretKey: args.secretKey,
|
|
13
|
+
domain: args.domain,
|
|
14
|
+
});
|
|
15
|
+
return packMessage(signature, signingMessage);
|
|
11
16
|
}
|
|
12
17
|
else {
|
|
13
18
|
/**
|
|
14
19
|
* Client use external storage for secretKey.
|
|
15
20
|
* In this case lib could create a request to external resource to sign transaction.
|
|
16
21
|
*/
|
|
17
|
-
return args
|
|
18
|
-
.
|
|
22
|
+
return args
|
|
23
|
+
.signer(signingMessage.endCell())
|
|
24
|
+
.then((signature) => packMessage(signature, signingMessage));
|
|
19
25
|
}
|
|
20
26
|
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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 WalletContractV1R1 implements Contract {
|
|
11
|
+
static create(args: {
|
|
12
|
+
workchain: number;
|
|
13
|
+
publicKey: Buffer;
|
|
14
|
+
domain?: SignatureDomain;
|
|
15
|
+
}): WalletContractV1R1;
|
|
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
|
+
message?: Maybe<MessageRelaxed>;
|
|
44
|
+
sendMode?: Maybe<SendMode>;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Create signed transfer
|
|
48
|
+
*/
|
|
49
|
+
createTransfer(args: {
|
|
50
|
+
seqno: number;
|
|
51
|
+
secretKey: Buffer;
|
|
52
|
+
message?: Maybe<MessageRelaxed>;
|
|
53
|
+
sendMode?: Maybe<SendMode>;
|
|
54
|
+
}): Cell;
|
|
55
|
+
/**
|
|
56
|
+
* Create sender
|
|
57
|
+
*/
|
|
58
|
+
sender(provider: ContractProvider, secretKey: Buffer): Sender;
|
|
59
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
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.WalletContractV1R1 = void 0;
|
|
11
|
+
const core_1 = require("@ton/core");
|
|
12
|
+
const createWalletTransfer_1 = require("../signing/createWalletTransfer");
|
|
13
|
+
class WalletContractV1R1 {
|
|
14
|
+
static create(args) {
|
|
15
|
+
return new WalletContractV1R1(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("te6cckEBAQEARAAAhP8AIN2k8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVEH98Ik=", "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
|
+
return core_1.Cell.fromBoc(state.state.data)[0].beginParse().loadUint(32);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return 0;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Send signed transfer
|
|
51
|
+
*/
|
|
52
|
+
async send(provider, message) {
|
|
53
|
+
await provider.external(message);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Sign and send transfer
|
|
57
|
+
*/
|
|
58
|
+
async sendTransfer(provider, args) {
|
|
59
|
+
let transfer = this.createTransfer(args);
|
|
60
|
+
await this.send(provider, transfer);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create signed transfer
|
|
64
|
+
*/
|
|
65
|
+
createTransfer(args) {
|
|
66
|
+
let sendMode = core_1.SendMode.PAY_GAS_SEPARATELY;
|
|
67
|
+
if (args.sendMode !== null && args.sendMode !== undefined) {
|
|
68
|
+
sendMode = args.sendMode;
|
|
69
|
+
}
|
|
70
|
+
return (0, createWalletTransfer_1.createWalletTransferV1)({
|
|
71
|
+
seqno: args.seqno,
|
|
72
|
+
sendMode,
|
|
73
|
+
secretKey: args.secretKey,
|
|
74
|
+
message: args.message,
|
|
75
|
+
domain: this.domain,
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Create sender
|
|
80
|
+
*/
|
|
81
|
+
sender(provider, secretKey) {
|
|
82
|
+
return {
|
|
83
|
+
send: async (args) => {
|
|
84
|
+
let seqno = await this.getSeqno(provider);
|
|
85
|
+
let transfer = this.createTransfer({
|
|
86
|
+
seqno,
|
|
87
|
+
secretKey,
|
|
88
|
+
sendMode: args.sendMode,
|
|
89
|
+
message: (0, core_1.internal)({
|
|
90
|
+
to: args.to,
|
|
91
|
+
value: args.value,
|
|
92
|
+
extracurrency: args.extracurrency,
|
|
93
|
+
init: args.init,
|
|
94
|
+
body: args.body,
|
|
95
|
+
bounce: args.bounce,
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
98
|
+
await this.send(provider, transfer);
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.WalletContractV1R1 = WalletContractV1R1;
|
|
@@ -0,0 +1,59 @@
|
|
|
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 WalletContractV1R2 implements Contract {
|
|
11
|
+
static create(args: {
|
|
12
|
+
workchain: number;
|
|
13
|
+
publicKey: Buffer;
|
|
14
|
+
domain?: SignatureDomain;
|
|
15
|
+
}): WalletContractV1R2;
|
|
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
|
+
message?: Maybe<MessageRelaxed>;
|
|
44
|
+
sendMode?: Maybe<SendMode>;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Create signed transfer
|
|
48
|
+
*/
|
|
49
|
+
createTransfer(args: {
|
|
50
|
+
seqno: number;
|
|
51
|
+
secretKey: Buffer;
|
|
52
|
+
message?: Maybe<MessageRelaxed>;
|
|
53
|
+
sendMode?: Maybe<SendMode>;
|
|
54
|
+
}): Cell;
|
|
55
|
+
/**
|
|
56
|
+
* Create sender
|
|
57
|
+
*/
|
|
58
|
+
sender(provider: ContractProvider, secretKey: Buffer): Sender;
|
|
59
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
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.WalletContractV1R2 = void 0;
|
|
11
|
+
const core_1 = require("@ton/core");
|
|
12
|
+
const createWalletTransfer_1 = require("../signing/createWalletTransfer");
|
|
13
|
+
class WalletContractV1R2 {
|
|
14
|
+
static create(args) {
|
|
15
|
+
return new WalletContractV1R2(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("te6cckEBAQEAUwAAov8AIN0gggFMl7qXMO1E0NcLH+Ck8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVNDieG8=", "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.createWalletTransferV1)({
|
|
72
|
+
seqno: args.seqno,
|
|
73
|
+
sendMode,
|
|
74
|
+
secretKey: args.secretKey,
|
|
75
|
+
message: args.message,
|
|
76
|
+
domain: this.domain,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create sender
|
|
81
|
+
*/
|
|
82
|
+
sender(provider, secretKey) {
|
|
83
|
+
return {
|
|
84
|
+
send: async (args) => {
|
|
85
|
+
let seqno = await this.getSeqno(provider);
|
|
86
|
+
let transfer = this.createTransfer({
|
|
87
|
+
seqno,
|
|
88
|
+
secretKey,
|
|
89
|
+
sendMode: args.sendMode,
|
|
90
|
+
message: (0, core_1.internal)({
|
|
91
|
+
to: args.to,
|
|
92
|
+
value: args.value,
|
|
93
|
+
extracurrency: args.extracurrency,
|
|
94
|
+
init: args.init,
|
|
95
|
+
body: args.body,
|
|
96
|
+
bounce: args.bounce,
|
|
97
|
+
}),
|
|
98
|
+
});
|
|
99
|
+
await this.send(provider, transfer);
|
|
100
|
+
},
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
exports.WalletContractV1R2 = WalletContractV1R2;
|
|
@@ -0,0 +1,59 @@
|
|
|
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 WalletContractV1R3 implements Contract {
|
|
11
|
+
static create(args: {
|
|
12
|
+
workchain: number;
|
|
13
|
+
publicKey: Buffer;
|
|
14
|
+
domain?: SignatureDomain;
|
|
15
|
+
}): WalletContractV1R3;
|
|
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(executor: ContractProvider, message: Cell): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Sign and send transfer
|
|
39
|
+
*/
|
|
40
|
+
sendTransfer(provider: ContractProvider, args: {
|
|
41
|
+
seqno: number;
|
|
42
|
+
secretKey: Buffer;
|
|
43
|
+
message?: Maybe<MessageRelaxed>;
|
|
44
|
+
sendMode?: Maybe<SendMode>;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
/**
|
|
47
|
+
* Create signed transfer
|
|
48
|
+
*/
|
|
49
|
+
createTransfer(args: {
|
|
50
|
+
seqno: number;
|
|
51
|
+
secretKey: Buffer;
|
|
52
|
+
message?: Maybe<MessageRelaxed>;
|
|
53
|
+
sendMode?: Maybe<SendMode>;
|
|
54
|
+
}): Cell;
|
|
55
|
+
/**
|
|
56
|
+
* Create sender
|
|
57
|
+
*/
|
|
58
|
+
sender(provider: ContractProvider, secretKey: Buffer): Sender;
|
|
59
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
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.WalletContractV1R3 = void 0;
|
|
11
|
+
const core_1 = require("@ton/core");
|
|
12
|
+
const createWalletTransfer_1 = require("../signing/createWalletTransfer");
|
|
13
|
+
class WalletContractV1R3 {
|
|
14
|
+
static create(args) {
|
|
15
|
+
return new WalletContractV1R3(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("te6cckEBAQEAXwAAuv8AIN0gggFMl7ohggEznLqxnHGw7UTQ0x/XC//jBOCk8mCBAgDXGCDXCx/tRNDTH9P/0VESuvKhIvkBVBBE+RDyovgAAdMfMSDXSpbTB9QC+wDe0aTIyx/L/8ntVLW4bkI=", "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(executor, message) {
|
|
54
|
+
await executor.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.createWalletTransferV1)({
|
|
72
|
+
seqno: args.seqno,
|
|
73
|
+
sendMode: sendMode,
|
|
74
|
+
secretKey: args.secretKey,
|
|
75
|
+
message: args.message,
|
|
76
|
+
domain: this.domain,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create sender
|
|
81
|
+
*/
|
|
82
|
+
sender(provider, secretKey) {
|
|
83
|
+
return {
|
|
84
|
+
send: async (args) => {
|
|
85
|
+
let seqno = await this.getSeqno(provider);
|
|
86
|
+
let transfer = this.createTransfer({
|
|
87
|
+
seqno,
|
|
88
|
+
secretKey,
|
|
89
|
+
sendMode: args.sendMode,
|
|
90
|
+
message: (0, core_1.internal)({
|
|
91
|
+
to: args.to,
|
|
92
|
+
value: args.value,
|
|
93
|
+
init: args.init,
|
|
94
|
+
body: args.body,
|
|
95
|
+
bounce: args.bounce,
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
98
|
+
await this.send(provider, transfer);
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
exports.WalletContractV1R3 = WalletContractV1R3;
|