Skip to content

Commit

Permalink
Merge pull request #16 from tonkeeper/master
Browse files Browse the repository at this point in the history
W5 support added
  • Loading branch information
dvlkv authored Jul 16, 2024
2 parents d908086 + f814694 commit 25441c2
Show file tree
Hide file tree
Showing 20 changed files with 2,769 additions and 88 deletions.
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
27 changes: 8 additions & 19 deletions src/wallets/WalletContractV3R1.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,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 { WalletV3SendArgsSignable, WalletV3SendArgsSigned } from "./WalletContractV3Types";

export class WalletContractV3R1 implements Contract {

Expand Down Expand Up @@ -86,26 +87,14 @@ 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>
}) {
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,
createTransfer<T extends WalletV3SendArgsSigned | WalletV3SendArgsSignable>(args: T) {
return createWalletTransferV3<T>({
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}
Expand Down Expand Up @@ -133,4 +122,4 @@ export class WalletContractV3R1 implements Contract {
}
};
}
}
}
21 changes: 8 additions & 13 deletions src/wallets/WalletContractV3R2.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,8 @@
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 { WalletV3SendArgsSignable, WalletV3SendArgsSigned } from "./WalletContractV3Types";


export class WalletContractV3R2 implements Contract {

Expand Down Expand Up @@ -89,17 +91,10 @@ export class WalletContractV3R2 implements Contract {
/**
* Create transfer
*/
createTransfer(args: { seqno: number, sendMode?: Maybe<SendMode>, secretKey: Buffer, messages: MessageRelaxed[], timeout?: Maybe<number> }) {
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,
createTransfer<T extends WalletV3SendArgsSigned | WalletV3SendArgsSignable>(args: T) {
return createWalletTransferV3<T>({
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}
Expand Down Expand Up @@ -127,4 +122,4 @@ export class WalletContractV3R2 implements Contract {
}
};
}
}
}
15 changes: 15 additions & 0 deletions src/wallets/WalletContractV3Types.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { MessageRelaxed, SendMode } from "@ton/core";
import { Maybe } from "../utils/maybe";
import { SendArgsSignable } from "./signing/singer";
import {SendArgsSigned} from "./signing/singer";


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

export type WalletV3SendArgsSigned = WalletV3BasicSendArgs & SendArgsSigned;
export type WalletV3SendArgsSignable = WalletV3BasicSendArgs & SendArgsSignable;
37 changes: 18 additions & 19 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 { SendArgsSignable, SendArgsSigned } from "./signing/singer";


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

export type Wallet4SendArgsSigned = WalletV4BasicSendArgs & SendArgsSigned;
export type Wallet4SendArgsSignable = WalletV4BasicSendArgs & SendArgsSignable;

export class WalletContractV4 implements Contract {

Expand Down Expand Up @@ -90,23 +102,10 @@ 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;
}
return createWalletTransferV4({
seqno: args.seqno,
sendMode,
secretKey: args.secretKey,
messages: args.messages,
timeout: args.timeout,
createTransfer<T extends Wallet4SendArgsSigned | Wallet4SendArgsSignable>(args:T ){
return createWalletTransferV4<T>({
...args,
sendMode: args.sendMode ?? SendMode.PAY_GAS_SEPARATELY,
walletId: this.walletId
});
}
Expand Down Expand Up @@ -134,4 +133,4 @@ export class WalletContractV4 implements Contract {
}
};
}
}
}
Loading

0 comments on commit 25441c2

Please sign in to comment.