Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

W5 support added #16

Merged
merged 68 commits into from
Jul 16, 2024
Merged
Show file tree
Hide file tree
Changes from 66 commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
a6b1039
feat: wallet v5 added
siandreev Sep 19, 2023
6100206
fix: Wallet v5 code replaced with code that uses library. Tests fixes
siandreev Sep 28, 2023
724b114
fix: external actions utils refactored
siandreev Oct 3, 2023
fade486
chore: remove wallet v5 due to the unreadiness
dvlkv Oct 25, 2023
53eb60f
fix: wallet v5 wrapper & tests updated according to the contract update
siandreev Jan 26, 2024
23f07a6
fix: `createAndSignRequestAsync` for w5 function added
siandreev Jan 26, 2024
e519a78
fix: ton-core import replaced with @ton/core, the same for other ton …
siandreev Feb 1, 2024
74dfd3b
Update export files
KuznetsovNikita Feb 1, 2024
6287c21
Signer
KuznetsovNikita Feb 1, 2024
6aac2da
Wallet v4 async sign
KuznetsovNikita Feb 1, 2024
286b06f
Wallet V3 async sign
KuznetsovNikita Feb 1, 2024
80f56f4
Create common function - createTransferAndSignRequestAsync
KuznetsovNikita Feb 1, 2024
78c3773
Merge branch 'feature/signer' into tonkeeper
KuznetsovNikita Feb 1, 2024
9f12f9c
Check-in dist
KuznetsovNikita Feb 1, 2024
79b60c2
Update pack result call back
KuznetsovNikita Feb 1, 2024
7ca6e16
Merge branch 'feature/signer' into build
KuznetsovNikita Feb 1, 2024
0d3f672
Build
KuznetsovNikita Feb 1, 2024
2fd2ea8
Update signer payload
KuznetsovNikita Feb 1, 2024
88fcbb4
Merge branch 'feature/signer' into build2
KuznetsovNikita Feb 1, 2024
c3b2543
Update tests
KuznetsovNikita Feb 1, 2024
013ff79
Merge branch 'feature/signer' into build2
KuznetsovNikita Feb 1, 2024
0f726e8
rebuild
KuznetsovNikita Feb 1, 2024
efeddfd
Merge pull request #1 from tonkeeper/feature/signer
siandreev Feb 9, 2024
9744629
Update wallet code
KuznetsovNikita Mar 18, 2024
305a0cb
Update dist
KuznetsovNikita Mar 18, 2024
876cc80
revert
KuznetsovNikita Mar 18, 2024
97451d0
Update dist
KuznetsovNikita Mar 18, 2024
1ee04f1
Update wallet code
KuznetsovNikita Mar 22, 2024
df5b777
Update signature for W5
KuznetsovNikita Mar 22, 2024
0e6b4c5
Update message payload
KuznetsovNikita Mar 22, 2024
e8a7f34
W5 with lib
KuznetsovNikita Mar 22, 2024
abc00ef
Remove dist
KuznetsovNikita Apr 4, 2024
cbecebd
Remove dist
KuznetsovNikita Apr 4, 2024
87bd4f2
Update message packing
KuznetsovNikita Apr 4, 2024
c05775b
Formatting
KuznetsovNikita Apr 4, 2024
2694bec
Merge pull request #3 from tonkeeper/feature/w5
KuznetsovNikita Apr 4, 2024
6609221
feat: wallet v5 added
siandreev Sep 19, 2023
49b0702
fix: Wallet v5 code replaced with code that uses library. Tests fixes
siandreev Sep 28, 2023
f8b6993
fix: external actions utils refactored
siandreev Oct 3, 2023
ec59dbd
chore: remove wallet v5 due to the unreadiness
dvlkv Oct 25, 2023
a869ea7
fix: wallet v5 wrapper & tests updated according to the contract update
siandreev Jan 26, 2024
b1a5031
fix: `createAndSignRequestAsync` for w5 function added
siandreev Jan 26, 2024
16f5ecd
fix: ton-core import replaced with @ton/core, the same for other ton …
siandreev Feb 1, 2024
666980f
Merge branch 'ton-master'
KuznetsovNikita Apr 4, 2024
fc65da1
Clean-up after merge
KuznetsovNikita Apr 4, 2024
70e7c87
Update tests
KuznetsovNikita Apr 4, 2024
702ff1f
Clean-up package json
KuznetsovNikita Apr 4, 2024
bbe13b7
Merge branch 'ton-org:master' into master
siandreev Jun 5, 2024
2414a88
chore: rollback yarn.lock
siandreev Feb 1, 2024
0eb9698
chore: rollback yarn.lock
dvlkv Feb 26, 2024
03eee80
fix: change get method name from `is_public_key_enabled` to `get_is_s…
siandreev Jun 5, 2024
e6da105
fix: replace Wallet3 with WalletV3
siandreev Jun 5, 2024
c54bcf4
fix: replace Wallet4 with WalletV4
siandreev Jun 5, 2024
be94438
fix: replace Wallet5 with WalletV5
siandreev Jun 5, 2024
3a19bdc
fix: replace WalletV5 opCodes with OpCodes
siandreev Jun 5, 2024
8af6993
fix: make WalletV5 instance `send` method private
siandreev Jun 5, 2024
214b763
fix: send mode parameter maid obligate and removed from places where …
siandreev Jun 6, 2024
6ce8f76
fix: tests data updated
siandreev Jun 6, 2024
d64fece
Merge pull request #4 from ton-org/master
KuznetsovNikita Jul 3, 2024
c4ca401
feat: wallet v5r1 added
siandreev Jul 4, 2024
c3258db
fix: replace v5r1 code with hex and add the commit href
siandreev Jul 5, 2024
7422f2f
fix: add force `mode | 2` for non-internal transfers
siandreev Jul 5, 2024
255b349
fix: additional actions-list packing tests created
siandreev Jul 5, 2024
46f2e31
fix: getExtensionsArray fro w5beta
siandreev Jul 5, 2024
80c85d1
chore: format code
siandreev Jul 5, 2024
d9aec6a
chore: comments added
siandreev Jul 5, 2024
e63dbb8
chore: rename v5r1 and v5beta wallet utils files
siandreev Jul 10, 2024
f814694
chore: remove separate function for async sign requests
siandreev Jul 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/client/TonClient.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (c) Whales Corp.
* Copyright (c) Whales Corp.
* All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
Expand Down Expand Up @@ -250,7 +250,7 @@ export class TonClient {
/**
* Estimate fees for external message
* @param address target address
* @returns
* @returns
*/
async estimateExternalMessageFee(address: Address, args: {
body: Cell,
Expand Down
14 changes: 14 additions & 0 deletions src/wallets/WalletContractV3.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { MessageRelaxed, SendMode } from "@ton/core";
import { Maybe } from "../utils/maybe";
import { SingedAuthSendArgs, ExternallySingedAuthSendArgs } from "./signing/singer";


export type WalletV3BasicSendArgs = {
seqno: number,
messages: MessageRelaxed[]
sendMode?: Maybe<SendMode>,
timeout?: Maybe<number>,
}

export type SingedAuthWallet3SendArgs = WalletV3BasicSendArgs & SingedAuthSendArgs;
export type ExternallySingedAuthWallet3SendArgs = WalletV3BasicSendArgs & ExternallySingedAuthSendArgs;
28 changes: 16 additions & 12 deletions src/wallets/WalletContractV3R1.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import { Address, beginCell, Cell, Contract, contractAddress, ContractProvider, internal, MessageRelaxed, Sender, SendMode } from "@ton/core";
import { Maybe } from "../utils/maybe";
import { createWalletTransferV3 } from "./signing/createWalletTransfer";
import { ExternallySingedAuthWallet3SendArgs, SingedAuthWallet3SendArgs } from "./WalletContractV3";

export class WalletContractV3R1 implements Contract {

Expand Down Expand Up @@ -86,26 +87,29 @@ export class WalletContractV3R1 implements Contract {
await this.send(provider, transfer);
}


/**
* Create transfer
*/
createTransfer(args: {
seqno: number,
secretKey: Buffer,
messages: MessageRelaxed[],
sendMode?: Maybe<SendMode>,
timeout?: Maybe<number>
}) {
createTransfer(args: SingedAuthWallet3SendArgs) {
let sendMode = SendMode.PAY_GAS_SEPARATELY;
if (args.sendMode !== null && args.sendMode !== undefined) {
sendMode = args.sendMode;
}
return createWalletTransferV3({
seqno: args.seqno,
sendMode,
secretKey: args.secretKey,
messages: args.messages,
timeout: args.timeout,
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}

/**
* Create asynchronously signed request
*/
createTransferAndSignRequestAsync(args: ExternallySingedAuthWallet3SendArgs) {
return createWalletTransferV3({
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}
Expand Down
23 changes: 17 additions & 6 deletions src/wallets/WalletContractV3R2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@
import { Address, beginCell, Cell, Contract, contractAddress, ContractProvider, internal, MessageRelaxed, Sender, SendMode } from "@ton/core";
import { Maybe } from "../utils/maybe";
import { createWalletTransferV3 } from "./signing/createWalletTransfer";
import { ExternallySingedAuthSendArgs, SingedAuthSendArgs } from "./signing/singer";
import { ExternallySingedAuthWallet3SendArgs, SingedAuthWallet3SendArgs } from "./WalletContractV3";


export class WalletContractV3R2 implements Contract {

Expand Down Expand Up @@ -89,21 +92,29 @@ export class WalletContractV3R2 implements Contract {
/**
* Create transfer
*/
createTransfer(args: { seqno: number, sendMode?: Maybe<SendMode>, secretKey: Buffer, messages: MessageRelaxed[], timeout?: Maybe<number> }) {
createTransfer(args: SingedAuthWallet3SendArgs) {
let sendMode = SendMode.PAY_GAS_SEPARATELY;
if (args.sendMode !== null && args.sendMode !== undefined) {
sendMode = args.sendMode;
}
return createWalletTransferV3({
seqno: args.seqno,
sendMode,
secretKey: args.secretKey,
messages: args.messages,
timeout: args.timeout,
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}

/**
* Create asynchronously signed request
*/
createTransferAndSignRequestAsync(args: ExternallySingedAuthWallet3SendArgs) {
return createWalletTransferV3({
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}

/**
* Create sender
*/
Expand Down
46 changes: 28 additions & 18 deletions src/wallets/WalletContractV4.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (c) Whales Corp.
* Copyright (c) Whales Corp.
* All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
Expand All @@ -9,6 +9,18 @@
import { Address, beginCell, Cell, Contract, contractAddress, ContractProvider, internal, MessageRelaxed, Sender, SendMode } from "@ton/core";
import { Maybe } from "../utils/maybe";
import { createWalletTransferV4 } from "./signing/createWalletTransfer";
import { ExternallySingedAuthSendArgs, SingedAuthSendArgs } from "./signing/singer";


export type WalletV4BasicSendArgs = {
seqno: number,
messages: MessageRelaxed[]
sendMode?: Maybe<SendMode>,
timeout?: Maybe<number>,
}

export type SingedAuthWallet4SendArgs = WalletV4BasicSendArgs & SingedAuthSendArgs;
export type ExternallySingedAuthWallet4SendArgs = WalletV4BasicSendArgs & ExternallySingedAuthSendArgs;

export class WalletContractV4 implements Contract {

Expand Down Expand Up @@ -90,23 +102,21 @@ export class WalletContractV4 implements Contract {
/**
* Create signed transfer
*/
createTransfer(args: {
seqno: number,
secretKey: Buffer,
messages: MessageRelaxed[]
sendMode?: Maybe<SendMode>,
timeout?: Maybe<number>,
}) {
let sendMode = SendMode.PAY_GAS_SEPARATELY;
if (args.sendMode !== null && args.sendMode !== undefined) {
sendMode = args.sendMode;
}
createTransfer(args: SingedAuthWallet4SendArgs) {
return createWalletTransferV4({
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}

/**
* Create asynchronously signed request
*/
createTransferAndSignRequestAsync(args: ExternallySingedAuthWallet4SendArgs) {
return createWalletTransferV4({
seqno: args.seqno,
sendMode,
secretKey: args.secretKey,
messages: args.messages,
timeout: args.timeout,
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}
Expand Down Expand Up @@ -134,4 +144,4 @@ export class WalletContractV4 implements Contract {
}
};
}
}
}
Loading