UNPKG

viem

Version:

TypeScript Interface for Ethereum

1,532 lines (1,531 loc) • 516 kB
import type { Address } from 'abitype'; import * as Hex from 'ox/Hex'; import { TokenId, TokenRole } from 'ox/tempo'; import type { Account } from '../../accounts/types.js'; import type { ReadContractReturnType } from '../../actions/public/readContract.js'; import type { WatchContractEventParameters, WatchContractEventReturnType } from '../../actions/public/watchContractEvent.js'; import { sendTransaction } from '../../actions/wallet/sendTransaction.js'; import { type SendTransactionSyncParameters, sendTransactionSync } from '../../actions/wallet/sendTransactionSync.js'; import type { WriteContractReturnType } from '../../actions/wallet/writeContract.js'; import { writeContract } from '../../actions/wallet/writeContract.js'; import { writeContractSync } from '../../actions/wallet/writeContractSync.js'; import type { Client } from '../../clients/createClient.js'; import type { Transport } from '../../clients/transports/createTransport.js'; import type { BaseErrorType } from '../../errors/base.js'; import type { Chain } from '../../types/chain.js'; import type { ExtractAbiItem, GetEventArgs } from '../../types/contract.js'; import type { Log, Log as viem_Log } from '../../types/log.js'; import type { Compute, OneOf, UnionOmit } from '../../types/utils.js'; import * as Abis from '../Abis.js'; import type { GetAccountParameter, ReadParameters, WriteParameters } from '../internal/types.js'; import type { TransactionReceipt } from '../Transaction.js'; /** * Approves a spender to transfer TIP20 tokens on behalf of the caller. * * @example * ```ts * import { createClient, http } from 'viem' * import { tempo } from 'tempo.ts/chains' * import { Actions } from 'tempo.ts/viem' * import { privateKeyToAccount } from 'viem/accounts' * * const client = createClient({ * account: privateKeyToAccount('0x...'), * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' }) * transport: http(), * }) * * const result = await Actions.token.approve(client, { * spender: '0x...', * amount: 100n, * }) * ``` * * @param client - Client. * @param parameters - Parameters. * @returns The transaction hash. */ export declare function approve<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: approve.Parameters<chain, account>): Promise<approve.ReturnValue>; export declare namespace approve { type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args; type Args = { /** Amount of tokens to approve. */ amount: bigint; /** Address of the spender. */ spender: Address; /** Address or ID of the TIP20 token. */ token: TokenId.TokenIdOrAddress; }; type ReturnValue = WriteContractReturnType; type ErrorType = BaseErrorType; /** @internal */ function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: approve.Parameters<chain, account>, args: Args): Promise<ReturnType<action>>; /** * Defines a call to the `approve` function. * * Can be passed as a parameter to: * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls * * @example * ```ts * import { createClient, http, walletActions } from 'viem' * import { tempo } from 'tempo.ts/chains' * import { Actions } from 'tempo.ts/viem' * * const client = createClient({ * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' }) * transport: http(), * }).extend(walletActions) * * const { result } = await client.sendCalls({ * calls: [ * actions.token.approve.call({ * spender: '0x20c0...beef', * amount: 100n, * token: '0x20c0...babe', * }), * ] * }) * ``` * * @param args - Arguments. * @returns The call. */ function call(args: Args): { abi: [{ readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "spender"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }]; functionName: "approve"; } & { args: readonly [spender: `0x${string}`, amount: bigint]; } & { address: Address; } & { data: import("../../index.js").Hex; to: Address; }; function extractEvent(logs: Log[]): Log<bigint, number, false, undefined, true, readonly [{ readonly name: "name"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly name: "symbol"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly name: "decimals"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint8"; }]; }, { readonly name: "totalSupply"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "quoteToken"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "nextQuoteToken"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "balanceOf"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "account"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "transfer"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "spender"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "allowance"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "owner"; }, { readonly type: "address"; readonly name: "spender"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "transferFrom"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "mint"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }, { readonly name: "burn"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }, { readonly name: "currency"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly name: "supplyCap"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "paused"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "transferPolicyId"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint64"; }]; }, { readonly name: "burnBlocked"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }, { readonly name: "mintWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly []; }, { readonly name: "burnWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly []; }, { readonly name: "transferWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly []; }, { readonly name: "transferFromWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "feeRecipient"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "setFeeRecipient"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "newRecipient"; }]; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "changeTransferPolicyId"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "newPolicyId"; }]; readonly outputs: readonly []; }, { readonly name: "setSupplyCap"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "newSupplyCap"; }]; readonly outputs: readonly []; }, { readonly name: "pause"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly name: "unpause"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly name: "setNextQuoteToken"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "newQuoteToken"; }]; readonly outputs: readonly []; }, { readonly name: "completeQuoteTokenUpdate"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly name: "PAUSE_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "UNPAUSE_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "ISSUER_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "BURN_BLOCKED_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "startReward"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "uint32"; readonly name: "secs"; }]; readonly outputs: readonly [{ readonly type: "uint64"; }]; }, { readonly name: "setRewardRecipient"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "recipient"; }]; readonly outputs: readonly []; }, { readonly name: "cancelReward"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "id"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "claimRewards"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "finalizeStreams"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "timestamp"; }]; readonly outputs: readonly []; }, { readonly name: "getStream"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "id"; }]; readonly outputs: readonly [{ readonly type: "tuple"; readonly components: readonly [{ readonly type: "address"; readonly name: "funder"; }, { readonly type: "uint64"; readonly name: "startTime"; }, { readonly type: "uint64"; readonly name: "endTime"; }, { readonly type: "uint256"; readonly name: "ratePerSecondScaled"; }, { readonly type: "uint256"; readonly name: "amountTotal"; }]; }]; }, { readonly name: "totalRewardPerSecond"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "optedInSupply"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint128"; }]; }, { readonly name: "nextStreamId"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint64"; }]; }, { readonly name: "userRewardInfo"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "account"; }]; readonly outputs: readonly [{ readonly type: "tuple"; readonly components: readonly [{ readonly type: "address"; readonly name: "rewardRecipient"; }, { readonly type: "uint256"; readonly name: "rewardPerToken"; }, { readonly type: "uint256"; readonly name: "rewardBalance"; }]; }]; }, { readonly name: "Transfer"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; readonly indexed: true; }, { readonly type: "address"; readonly name: "to"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }]; }, { readonly name: "Approval"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "owner"; readonly indexed: true; }, { readonly type: "address"; readonly name: "spender"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }]; }, { readonly name: "Mint"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }]; }, { readonly name: "Burn"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }]; }, { readonly name: "BurnBlocked"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }]; }, { readonly name: "TransferWithMemo"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; readonly indexed: true; }, { readonly type: "address"; readonly name: "to"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; readonly indexed: true; }]; }, { readonly name: "TransferPolicyUpdate"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "updater"; readonly indexed: true; }, { readonly type: "uint64"; readonly name: "newPolicyId"; readonly indexed: true; }]; }, { readonly name: "SupplyCapUpdate"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "updater"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "newSupplyCap"; readonly indexed: true; }]; }, { readonly name: "PauseStateUpdate"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "updater"; readonly indexed: true; }, { readonly type: "bool"; readonly name: "isPaused"; }]; }, { readonly name: "NextQuoteTokenSet"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "updater"; readonly indexed: true; }, { readonly type: "address"; readonly name: "nextQuoteToken"; readonly indexed: true; }]; }, { readonly name: "QuoteTokenUpdate"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "updater"; readonly indexed: true; }, { readonly type: "address"; readonly name: "newQuoteToken"; readonly indexed: true; }]; }, { readonly name: "RewardScheduled"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "funder"; readonly indexed: true; }, { readonly type: "uint64"; readonly name: "id"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "uint32"; readonly name: "durationSeconds"; }]; }, { readonly name: "RewardCanceled"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "funder"; readonly indexed: true; }, { readonly type: "uint64"; readonly name: "id"; readonly indexed: true; }, { readonly type: "uint256"; readonly name: "refund"; }]; }, { readonly name: "RewardRecipientSet"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "holder"; readonly indexed: true; }, { readonly type: "address"; readonly name: "recipient"; readonly indexed: true; }]; }, { readonly name: "FeeRecipientUpdated"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "updater"; readonly indexed: true; }, { readonly type: "address"; readonly name: "newRecipient"; readonly indexed: true; }]; }, { readonly name: "InsufficientBalance"; readonly type: "error"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "available"; }, { readonly type: "uint256"; readonly name: "required"; }, { readonly type: "address"; readonly name: "token"; }]; }, { readonly name: "InsufficientAllowance"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "SupplyCapExceeded"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidSupplyCap"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidPayload"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "StringTooLong"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "PolicyForbids"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidRecipient"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "ContractPaused"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidCurrency"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidQuoteToken"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "TransfersDisabled"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidAmount"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "NotStreamFunder"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "StreamInactive"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "NoOptedInSupply"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "Unauthorized"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "RewardsDisabled"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "ScheduledRewardsDisabled"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "ProtectedAddress"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "InvalidToken"; readonly type: "error"; readonly inputs: readonly []; }, { readonly name: "hasRole"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "account"; }, { readonly type: "bytes32"; readonly name: "role"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "getRoleAdmin"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; }]; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "grantRole"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; }, { readonly type: "address"; readonly name: "account"; }]; readonly outputs: readonly []; }, { readonly name: "revokeRole"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; }, { readonly type: "address"; readonly name: "account"; }]; readonly outputs: readonly []; }, { readonly name: "renounceRole"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; }]; readonly outputs: readonly []; }, { readonly name: "setRoleAdmin"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; }, { readonly type: "bytes32"; readonly name: "adminRole"; }]; readonly outputs: readonly []; }, { readonly name: "RoleMembershipUpdated"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; readonly indexed: true; }, { readonly type: "address"; readonly name: "account"; readonly indexed: true; }, { readonly type: "address"; readonly name: "sender"; readonly indexed: true; }, { readonly type: "bool"; readonly name: "hasRole"; }]; }, { readonly name: "RoleAdminUpdated"; readonly type: "event"; readonly inputs: readonly [{ readonly type: "bytes32"; readonly name: "role"; readonly indexed: true; }, { readonly type: "bytes32"; readonly name: "newAdminRole"; readonly indexed: true; }, { readonly type: "address"; readonly name: "sender"; readonly indexed: true; }]; }, { readonly name: "Unauthorized"; readonly type: "error"; readonly inputs: readonly []; }], "Approval">; } /** * Approves a spender to transfer TIP20 tokens on behalf of the caller. * * @example * ```ts * import { createClient, http } from 'viem' * import { tempo } from 'tempo.ts/chains' * import { Actions } from 'tempo.ts/viem' * import { privateKeyToAccount } from 'viem/accounts' * * const client = createClient({ * account: privateKeyToAccount('0x...'), * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' }) * transport: http(), * }) * * const result = await Actions.token.approveSync(client, { * spender: '0x...', * amount: 100n, * }) * ``` * * @param client - Client. * @param parameters - Parameters. * @returns The transaction receipt and event data. */ export declare function approveSync<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: approveSync.Parameters<chain, account>): Promise<approveSync.ReturnValue>; export declare namespace approveSync { type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = approve.Parameters<chain, account>; type Args = approve.Args; type ReturnValue = Compute<GetEventArgs<typeof Abis.tip20, 'Approval', { IndexedOnly: false; Required: true; }> & { /** Transaction receipt. */ receipt: TransactionReceipt; }>; type ErrorType = BaseErrorType; } /** * Burns TIP20 tokens from a blocked address. * * @example * ```ts * import { createClient, http } from 'viem' * import { tempo } from 'tempo.ts/chains' * import { Actions } from 'tempo.ts/viem' * import { privateKeyToAccount } from 'viem/accounts' * * const client = createClient({ * account: privateKeyToAccount('0x...'), * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' }) * transport: http(), * }) * * const result = await Actions.token.burnBlocked(client, { * from: '0x...', * amount: 100n, * token: '0x...', * }) * ``` * * @param client - Client. * @param parameters - Parameters. * @returns The transaction hash. */ export declare function burnBlocked<chain extends Chain | undefined, account extends Account | undefined>(client: Client<Transport, chain, account>, parameters: burnBlocked.Parameters<chain, account>): Promise<burnBlocked.ReturnValue>; export declare namespace burnBlocked { type Parameters<chain extends Chain | undefined = Chain | undefined, account extends Account | undefined = Account | undefined> = WriteParameters<chain, account> & Args; type Args = { /** Amount of tokens to burn. */ amount: bigint; /** Address to burn tokens from. */ from: Address; /** Address or ID of the TIP20 token. */ token: TokenId.TokenIdOrAddress; }; type ReturnValue = WriteContractReturnType; type ErrorType = BaseErrorType; /** @internal */ function inner<action extends typeof writeContract | typeof writeContractSync, chain extends Chain | undefined, account extends Account | undefined>(action: action, client: Client<Transport, chain, account>, parameters: burnBlocked.Parameters<chain, account>): Promise<ReturnType<action>>; /** * Defines a call to the `burnBlocked` function. * * Can be passed as a parameter to: * - [`estimateContractGas`](https://viem.sh/docs/contract/estimateContractGas): estimate the gas cost of the call * - [`simulateContract`](https://viem.sh/docs/contract/simulateContract): simulate the call * - [`sendCalls`](https://viem.sh/docs/actions/wallet/sendCalls): send multiple calls * * @example * ```ts * import { createClient, http, walletActions } from 'viem' * import { tempo } from 'tempo.ts/chains' * import { Actions } from 'tempo.ts/viem' * * const client = createClient({ * chain: tempo({ feeToken: '0x20c0000000000000000000000000000000000001' }) * transport: http(), * }).extend(walletActions) * * const { result } = await client.sendCalls({ * calls: [ * actions.token.burnBlocked.call({ * from: '0x20c0...beef', * amount: 100n, * token: '0x20c0...babe', * }), * ] * }) * ``` * * @param args - Arguments. * @returns The call. */ function call(args: Args): { abi: [{ readonly name: "burnBlocked"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }]; functionName: "burnBlocked"; } & { args: readonly [from: `0x${string}`, amount: bigint]; } & { address: Address; } & { data: import("../../index.js").Hex; to: Address; }; /** * Extracts the event from the logs. * * @param logs - Logs. * @returns The event. */ function extractEvent(logs: Log[]): Log<bigint, number, false, undefined, true, readonly [{ readonly name: "name"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly name: "symbol"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly name: "decimals"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint8"; }]; }, { readonly name: "totalSupply"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "quoteToken"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "nextQuoteToken"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "balanceOf"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "account"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "transfer"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "approve"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "spender"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "allowance"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "owner"; }, { readonly type: "address"; readonly name: "spender"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "transferFrom"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "mint"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }, { readonly name: "burn"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }, { readonly name: "currency"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "string"; }]; }, { readonly name: "supplyCap"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "paused"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "transferPolicyId"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint64"; }]; }, { readonly name: "burnBlocked"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "uint256"; readonly name: "amount"; }]; readonly outputs: readonly []; }, { readonly name: "mintWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly []; }, { readonly name: "burnWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly []; }, { readonly name: "transferWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly []; }, { readonly name: "transferFromWithMemo"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "from"; }, { readonly type: "address"; readonly name: "to"; }, { readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "bytes32"; readonly name: "memo"; }]; readonly outputs: readonly [{ readonly type: "bool"; }]; }, { readonly name: "feeRecipient"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "setFeeRecipient"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "newRecipient"; }]; readonly outputs: readonly [{ readonly type: "address"; }]; }, { readonly name: "changeTransferPolicyId"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "newPolicyId"; }]; readonly outputs: readonly []; }, { readonly name: "setSupplyCap"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "newSupplyCap"; }]; readonly outputs: readonly []; }, { readonly name: "pause"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly name: "unpause"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly name: "setNextQuoteToken"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "newQuoteToken"; }]; readonly outputs: readonly []; }, { readonly name: "completeQuoteTokenUpdate"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly []; }, { readonly name: "PAUSE_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "UNPAUSE_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "ISSUER_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "BURN_BLOCKED_ROLE"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "bytes32"; }]; }, { readonly name: "startReward"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint256"; readonly name: "amount"; }, { readonly type: "uint32"; readonly name: "secs"; }]; readonly outputs: readonly [{ readonly type: "uint64"; }]; }, { readonly name: "setRewardRecipient"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "address"; readonly name: "recipient"; }]; readonly outputs: readonly []; }, { readonly name: "cancelReward"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "id"; }]; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "claimRewards"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly type: "uint256"; }]; }, { readonly name: "finalizeStreams"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "timestamp"; }]; readonly outputs: readonly []; }, { readonly name: "getStream"; readonly type: "function"; readonly stateMutability: "view"; readonly inputs: readonly [{ readonly type: "uint64"; readonly name: "id"; }]; readonly outputs: readonly [{ readonly type: "tuple";