UNPKG

@onekeyfe/blockchain-libs

Version:
112 lines (111 loc) 4.31 kB
/// <reference types="node" /> import { Assignable, Enum } from './enums'; import { KeyType, PublicKey } from './key_pair'; export declare class FunctionCallPermission extends Assignable { allowance?: string; 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 function fullAccessKey(): AccessKey; export declare function functionCallAccessKey(receiverId: string, methodNames: string[], allowance?: string): AccessKey; 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: string; deposit: string; } export declare class Transfer extends IAction { deposit: string; } export declare class Stake extends IAction { stake: string; 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; /** * Constructs {@link Action} instance representing contract method call. * * @param methodName the name of the method to call * @param args arguments to pass to method. Can be either plain JS object which gets serialized as JSON automatically * or `Uint8Array` instance which represents bytes passed as is. * @param gas max amount of gas that method call can use * @param deposit amount of NEAR (in yoctoNEAR) to send together with the call * @param stringify Convert input arguments into bytes array. */ export declare function functionCall(methodName: string, args: Uint8Array | object, gas: string, deposit: string, stringify?: typeof stringifyJsonOrBytes): Action; export declare function transfer(deposit: string): Action; export declare function stake(stake: string, 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 Signature extends Assignable { keyType: KeyType; data: Uint8Array; } export declare class Transaction extends Assignable { signerId: string; publicKey: PublicKey; nonce: number; receiverId: string; actions: Action[]; blockHash: Uint8Array; static decode(bytes: Buffer): Transaction; encode(): Uint8Array; } export declare class SignedTransaction extends Assignable { transaction: Transaction; signature: Signature; static decode(bytes: Buffer): SignedTransaction; encode(): Uint8Array; } /** * Contains a list of the valid transaction Actions available with this API * @see {@link https://nomicon.io/RuntimeSpec/Actions.html | Actions Spec} */ export declare class Action extends Enum { createAccount: CreateAccount; deployContract: DeployContract; functionCall: FunctionCall; transfer: Transfer; stake: Stake; addKey: AddKey; deleteKey: DeleteKey; deleteAccount: DeleteAccount; } export declare const SCHEMA: Map<Function, any>; export declare function createTransaction(signerId: string, publicKey: PublicKey, receiverId: string, nonce: number, actions: Action[], blockHash: Uint8Array): Transaction; /** * Signs a given transaction from an account with given keys, applied to the given network * @param transaction The Transaction object to sign * @param sign The {Sign} function that assists with signing keys */ export declare function signTransactionObject(transaction: Transaction, sign: (digest: Uint8Array) => Promise<Uint8Array>): Promise<[Uint8Array, SignedTransaction]>;