UNPKG

caver-js

Version:

caver-js is a JavaScript API library that allows developers to interact with a Klaytn node

218 lines (202 loc) 7.83 kB
/* Copyright 2021 The caver-js Authors This file is part of the caver-js library. The caver-js library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. The caver-js library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the caver-js. If not, see <http://www.gnu.org/licenses/>. */ import BigNumber from 'bignumber.js' import BN = require('bn.js') import _ = require('lodash') import { SignatureData } from '../../caver-wallet/src' import { TransactionForRPC, PromiEvent } from '../../caver-core/src' export type EncodeScalarInput = Buffer | string | number export type EncodeInput = EncodeScalarInput | EncodeScalarInput[] export interface SignatureObject { V?: string R?: string S?: string v?: string r?: string s?: string } export type Unit = 'peb' | 'kpeb' | 'Mpeb' | 'Gpeb' | 'Ston' | 'ston' | 'uKLAY' | 'mKLAY' | 'KLAY' | 'kKLAY' | 'MKLAY' | 'GKLAY' | 'TKLAY' export interface UnitInfo { unit: string pebFactor: number } export interface KlayUnit { [key: string]: UnitInfo } export interface UnitMap { peb: '1' kpeb: '1000' Mpeb: '1000000' Gpeb: '1000000000' Ston: '1000000000' ston: '1000000000' uKLAY: '1000000000000' mKLAY: '1000000000000000' KLAY: '1000000000000000000' kKLAY: '1000000000000000000000' MKLAY: '1000000000000000000000000' GKLAY: '1000000000000000000000000000' TKLAY: '1000000000000000000000000000000' } export type Mixed = | string | number | BN | { type: string value: string } | { t: string v: string | BN | number } | boolean export type Hex = string | number export type StateMutabilityType = 'pure' | 'view' | 'nonpayable' | 'payable' export interface AbiItem { anonymous?: boolean constant?: boolean inputs?: AbiInput[] name?: string outputs?: AbiOutput[] payable?: boolean stateMutability?: StateMutabilityType type: string gas?: number } export interface AbiInput { name: string type: string indexed?: boolean components?: AbiInput[] internalType?: string } export interface AbiOutput { name: string type: string components?: AbiOutput[] internalType?: string } export class Iban { toAddress(ib?: string): string toIban(address: string): string fromAddress(address: string): Iban fromBban(bban: string): Iban createIndirect(options?: object): Iban isValid(): boolean isValid(iban: string): boolean isDirect(): boolean isIndirect(): boolean checksum(): string institution(): string client(): string toString(): string } export interface Utils { randomHex(bytesSize: number): string soliditySha3(...val: Mixed[]): string | null toChecksumAddress(address: string): string hexToAscii(hex: string): string toAscii(hex: string): string asciiToHex(str: string): string fromAscii(str: string): string unitMap: UnitMap klayUnit: KlayUnit toWei(number: BN, unit?: Unit): BN toWei(number: string, unit?: Unit): string fromWei(number: BN, unit?: Unit): BN fromWei(number: string, unit?: Unit): string unitKlayMap: UnitMap toPeb(number: BN, unit?: Unit): BN toPeb(number: number | string, unit?: Unit): string fromPeb(number: number | string, unit?: Unit): string convertFromPeb(number: number | string | BN | BigNumber, unitString: string | UnitInfo): string convertToPeb(number: number | string | BN | BigNumber, unitString: string | UnitInfo): string | BN isBN(object: object): boolean isBN(object: object): boolean isBigNumber(num: object): boolean toBN(number: number | string | BN): BN isAddress(address: string): boolean isBloom(bloom: string): boolean isTopic(topic: string): boolean checkAddressChecksum(address: string): boolean utf8ToHex(str: string): string hexToUtf8(hex: string): string hexToNumber(value: string | number | BN): number hexToNumberString(value: string | number | BN): string numberToHex(value: string | number | BN): string toHex(value: string | number | BN | object, returnType?: boolean): string bufferToHex(buf: Buffer | unknown[] | string | number | BN | object): Buffer toBuffer(input: Buffer | unknown[] | string | number | BN | object): Buffer numberToBuffer(num: number | string | BN): Buffer hexToBytes(hex: string): number[] bytesToHex(bytes: number[]): string isHex(hex: string): boolean isHexStrict(hex: string): boolean leftPad(string: string, chars: number, sign?: string): string rightPad(string: string, chars: number, sign?: string): string toTwosComplement(number: number | string | BN): string sha3(value: string | BN): string | null parsePredefinedBlockNumber(blockNumber: string): string isPredefinedBlockNumber(blockNumber: string): boolean isValidBlockNumberCandidate(blockNumber: string | number): boolean isValidPrivateKey(privateKey: string): boolean isValidNSHSN(value: string | number): boolean parsePrivateKey( privateKey: string ): { privateKey: string address: string isHumanReadable: boolean } parseKlaytnWalletKey(key: string): string[] isKlaytnWalletKey(privateKey: string): boolean isContractDeployment(txObject: TransactionForRPC): boolean rlpEncode(data: EncodeInput): string rlpDecode(encodedData: string): string | string[] xyPointFromPublicKey(pub: string): [string, string] resolveSignature(signature: string | string[] | object): string[] transformSignaturesToObject(signatures: string | string[] | SignatureData | SignatureObject): SignatureObject transformSignaturesToObject(signatures: string[][] | SignatureData[] | SignatureObject[]): SignatureObject[] transformSignaturesToObject( signatures: string | string[] | string[][] | SignatureData | SignatureData[] | SignatureObject | SignatureObject[] ): SignatureObject | SignatureObject[] getTxTypeStringFromRawTransaction(rawTransaction: string): string trimLeadingZero(hex: string): string makeEven(hex: string): string txTypeToString: string isValidPublicKey(publicKey: string): boolean isCompressedPublicKey(publicKey: string): boolean compressPublicKey(uncompressedPublicKey: string): string decompressPublicKey(compressedPublicKey: string): string /** @deprecated */ isTxHash(txHash: string): boolean /** @deprecated */ isTxHashStrict(txHash: string): boolean isValidHash(hash: string): boolean isValidHashStrict(hash: string): boolean isValidRole(role: string): boolean isEmptySig(sig: string | string[] | string[][] | object | SignatureData | SignatureData[]): boolean hashMessage(data: string): string recover(message: string, signature: SignatureData | string[] | object, isHashed?: boolean): string recoverPublicKey(message: string, signature: SignatureData | string[] | object, isHashed?: boolean): string publicKeyToAddress(publicKey: string): string Iban: Iban isHexParameter(a: unknown): boolean isHexPrefixed(str: string | object): boolean addHexPrefix(str: string | object): string stripHexPrefix(str: string | object): string decodeSignature(signature: string): SignatureData }