/** * Copyright (c) Whales Corp. * All Rights Reserved. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import { Address, Cell, Contract, ContractProvider, MessageRelaxed, Sender, SendMode, SignatureDomain, StateInit } from "@ton/core"; import { Maybe } from "../../utils/maybe"; import { SendArgsSignable, SendArgsSigned } from "../signing/singer"; import { OutActionWalletV4, WalletV4SendArgs, WalletV4SendArgsSignable } from "./WalletContractV4Actions"; export type WalletV4BasicSendArgs = { seqno: number; messages: MessageRelaxed[]; sendMode?: Maybe; timeout?: Maybe; }; export type Wallet4SendArgsSigned = WalletV4BasicSendArgs & SendArgsSigned; export type Wallet4SendArgsSignable = WalletV4BasicSendArgs & SendArgsSignable; export declare class WalletContractV4 implements Contract { static create(args: { workchain: number; publicKey: Buffer; walletId?: Maybe; domain?: SignatureDomain; }): WalletContractV4; readonly workchain: number; readonly publicKey: Buffer; readonly address: Address; readonly walletId: number; readonly init: { data: Cell; code: Cell; }; domain?: SignatureDomain; constructor(workchain: number, publicKey: Buffer, walletId?: Maybe, domain?: SignatureDomain); /** * Get Wallet Balance */ getBalance(provider: ContractProvider): Promise; /** * Get Wallet Seqno */ getSeqno(provider: ContractProvider): Promise; getIsPluginInstalled(provider: ContractProvider, pluginAddress: Address): Promise; getPluginsArray(provider: ContractProvider): Promise; /** * Send signed transfer */ send(provider: ContractProvider, message: Cell): Promise; /** * Sign and send transfer */ sendTransfer(provider: ContractProvider, args: { seqno: number; secretKey: Buffer; messages: MessageRelaxed[]; sendMode?: Maybe; timeout?: Maybe; }): Promise; /** * Create signed transfer */ createTransfer(args: T): T extends SendArgsSignable ? Promise : Cell; sendRequest(provider: ContractProvider, args: T): Promise; createRequest(args: T): T extends WalletV4SendArgsSignable ? Promise : Cell; /** * Create sender */ sender(provider: ContractProvider, secretKey: Buffer): Sender; sendAddPlugin(provider: ContractProvider, args: T): Promise; sendRemovePlugin(provider: ContractProvider, args: T): Promise; sendAddAndDeployPlugin(provider: ContractProvider, args: T): Promise; createAddPlugin(args: T): Cell | Promise; createRemovePlugin(args: T): Cell | Promise; createAddAndDeployPlugin(args: T): Cell | Promise; sendPluginRequestFunds(provider: ContractProvider, sender: Sender, args: { forwardAmount: bigint; toncoinsToWithdraw: bigint; queryId?: bigint; sendMode?: SendMode; }): Promise; private createPluginRequestFundsMessage; sendPluginRemovePlugin(provider: ContractProvider, sender: Sender, amount: bigint, queryId?: bigint): Promise; private createPluginRemovePluginMessage; }