/// /// import { KeyType, PublicKey } from './keypair'; import { Assignable, Enum } from './enums'; import { BN } from '@okxweb3/coin-base'; export declare class FunctionCallPermission extends Assignable { allowance?: BN; receiverId: string; methodNames: string[]; } export declare class FullAccessPermission extends Assignable { } export declare class AccessKeyPermission extends Enum { functionCall: FunctionCallPermission; fullAccess: FullAccessPermission; } export declare class AccessKey extends Assignable { nonce: number; permission: AccessKeyPermission; } export declare class IAction extends Assignable { } export declare class CreateAccount extends IAction { } export declare class DeployContract extends IAction { code: Uint8Array; } export declare class FunctionCall extends IAction { methodName: string; args: Uint8Array; gas: BN; deposit: BN; } export declare class Transfer extends IAction { deposit: BN; } export declare class Stake extends IAction { stake: BN; publicKey: PublicKey; } export declare class AddKey extends IAction { publicKey: PublicKey; accessKey: AccessKey; } export declare class DeleteKey extends IAction { publicKey: PublicKey; } export declare class DeleteAccount extends IAction { beneficiaryId: string; } export declare function createAccount(): Action; export declare function deployContract(code: Uint8Array): Action; export declare function stringifyJsonOrBytes(args: any): Buffer; export declare function functionCall(methodName: string, args: Uint8Array | object, gas?: BN, deposit?: BN, stringify?: typeof stringifyJsonOrBytes, jsContract?: boolean): Action; export declare function transfer(deposit: BN): Action; export declare function stake(stake: BN, publicKey: PublicKey): Action; export declare function addKey(publicKey: PublicKey, accessKey: AccessKey): Action; export declare function deleteKey(publicKey: PublicKey): Action; export declare function deleteAccount(beneficiaryId: string): Action; export declare class Transaction extends Assignable { signerId: string; publicKey: PublicKey; nonce: number; receiverId: string; actions: Action[]; blockHash: Uint8Array; encode(): Uint8Array; static decode(bytes: Buffer): Transaction; } export declare class Action extends Enum { createAccount: CreateAccount; deployContract: DeployContract; functionCall: FunctionCall; transfer: Transfer; stake: Stake; addKey: AddKey; deleteKey: DeleteKey; deleteAccount: DeleteAccount; } export declare class Signature extends Assignable { keyType: KeyType; data: Uint8Array; } export declare class SignedTransaction extends Assignable { transaction: Transaction; signature: Signature; encode(): Uint8Array; static decode(bytes: Buffer): SignedTransaction; } export declare const SCHEMA: Map; export declare function createTransaction(signerId: string, publicKey: PublicKey, receiverId: string, nonce: number, actions: Action[], blockHash: Uint8Array): Transaction; export declare function signTransaction(transaction: Transaction, privateKeyHex: string): Promise<[Uint8Array, SignedTransaction]>; export declare function signTransaction(receiverId: string, nonce: number, actions: Action[], blockHash: Uint8Array, privateKeyHex: string, accountId: string): Promise<[Uint8Array, SignedTransaction]>; export declare function fullAccessKey(): AccessKey; export declare function functionCallAccessKey(receiverId: string, methodNames: string[], allowance?: BN): AccessKey;