@taquito/rpc 12.0.0 → 12.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taquito-rpc.es6.js","sources":["../src/rpc-client-interface.ts","../src/utils/utils.ts","../src/rpc-client-modules/rpc-cache.ts","../src/types.ts","../src/opkind.ts","../src/version.ts","../src/taquito-rpc.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js';\nimport {\n BakingRightsQueryArguments,\n BakingRightsResponse,\n BalanceResponse,\n BallotListResponse,\n BallotsResponse,\n BigMapGetResponse,\n BigMapKey,\n BigMapResponse,\n BlockHeaderResponse,\n BlockMetadata,\n BlockResponse,\n ConstantsResponse,\n ContractResponse,\n CurrentProposalResponse,\n CurrentQuorumResponse,\n DelegateResponse,\n DelegatesResponse,\n EndorsingRightsQueryArguments,\n EndorsingRightsResponse,\n EntrypointsResponse,\n ForgeOperationsParams,\n ManagerKeyResponse,\n OperationHash,\n PackDataParams,\n PeriodKindResponse,\n PreapplyParams,\n PreapplyResponse,\n ProposalsResponse,\n ProtocolsResponse,\n RPCRunCodeParam,\n RPCRunOperationParam,\n RPCRunViewParam,\n RunCodeResult,\n RunViewResult,\n SaplingDiffResponse,\n ScriptResponse,\n StorageResponse,\n UnparsingMode,\n VotesListingsResponse,\n VotingPeriodBlockResult,\n} from './types';\n\nexport interface RPCOptions {\n block: string;\n}\n\nexport const defaultChain = 'main';\nexport const defaultRPCOptions: RPCOptions = { block: 'head' };\n\nexport interface RpcClientInterface {\n getBlockHash(options?: RPCOptions): Promise<string>;\n getLiveBlocks(options?: RPCOptions): Promise<string[]>;\n getBalance(address: string, options?: RPCOptions): Promise<BalanceResponse>;\n getStorage(address: string, options?: RPCOptions): Promise<StorageResponse>;\n getScript(address: string, options?: RPCOptions): Promise<ScriptResponse>;\n getNormalizedScript(\n address: string,\n unparsingMode?: UnparsingMode,\n options?: RPCOptions\n ): Promise<ScriptResponse>;\n getContract(address: string, options?: RPCOptions): Promise<ContractResponse>;\n getManagerKey(address: string, options?: RPCOptions): Promise<ManagerKeyResponse>;\n getDelegate(address: string, options?: RPCOptions): Promise<DelegateResponse>;\n getBigMapKey(address: string, key: BigMapKey, options?: RPCOptions): Promise<BigMapGetResponse>;\n getBigMapExpr(id: string, expr: string, options?: RPCOptions): Promise<BigMapResponse>;\n getDelegates(address: string, options?: RPCOptions): Promise<DelegatesResponse>;\n getConstants(options?: RPCOptions): Promise<ConstantsResponse>;\n getBlock(options?: RPCOptions): Promise<BlockResponse>;\n getBlockHeader(options?: RPCOptions): Promise<BlockHeaderResponse>;\n getBlockMetadata(options?: RPCOptions): Promise<BlockMetadata>;\n getBakingRights(\n args: BakingRightsQueryArguments,\n options?: RPCOptions\n ): Promise<BakingRightsResponse>;\n getEndorsingRights(\n args: EndorsingRightsQueryArguments,\n options?: RPCOptions\n ): Promise<EndorsingRightsResponse>;\n getBallotList(options?: RPCOptions): Promise<BallotListResponse>;\n getBallots(options?: RPCOptions): Promise<BallotsResponse>;\n getCurrentProposal(options?: RPCOptions): Promise<CurrentProposalResponse>;\n getCurrentQuorum(options?: RPCOptions): Promise<CurrentQuorumResponse>;\n getVotesListings(options?: RPCOptions): Promise<VotesListingsResponse>;\n getProposals(options?: RPCOptions): Promise<ProposalsResponse>;\n forgeOperations(data: ForgeOperationsParams, options?: RPCOptions): Promise<string>;\n injectOperation(signedOpBytes: string): Promise<OperationHash>;\n preapplyOperations(ops: PreapplyParams, options?: RPCOptions): Promise<PreapplyResponse[]>;\n getEntrypoints(contract: string, options?: RPCOptions): Promise<EntrypointsResponse>;\n runOperation(op: RPCRunOperationParam, options?: RPCOptions): Promise<PreapplyResponse>;\n runCode(code: RPCRunCodeParam, options?: RPCOptions): Promise<RunCodeResult>;\n runView(viewParams: RPCRunViewParam, options?: RPCOptions): Promise<RunViewResult>;\n getChainId(): Promise<string>;\n packData(\n data: PackDataParams,\n options?: RPCOptions\n ): Promise<{ packed: string; gas: BigNumber | 'unaccounted' | undefined }>;\n getRpcUrl(): string;\n getCurrentPeriod(options?: RPCOptions): Promise<VotingPeriodBlockResult>;\n getSuccessorPeriod(options?: RPCOptions): Promise<VotingPeriodBlockResult>;\n getSaplingDiffById(id: string, options?: RPCOptions): Promise<SaplingDiffResponse>;\n getSaplingDiffByContract(contract: string, options?: RPCOptions): Promise<SaplingDiffResponse>;\n getProtocols(options?: RPCOptions): Promise<ProtocolsResponse>;\n}\n","import BigNumber from 'bignumber.js';\n\n/**\n * Casts object/array items to BigNumber\n * @param data input object or array\n * @param keys keys for processing or all items if not defined\n *\n */\nexport function castToBigNumber(data: any, keys?: any): object {\n const returnArray: boolean = Array.isArray(data);\n if (typeof keys === 'undefined') {\n keys = Object.keys(data);\n }\n const response: any = returnArray ? [] : {};\n\n keys.forEach((key: any) => {\n const item = data[key];\n let res: any;\n if (typeof item === 'undefined') {\n return;\n }\n\n if (Array.isArray(item)) {\n res = castToBigNumber(item);\n response[key] = res;\n return;\n }\n\n res = new BigNumber(item);\n response[key] = res;\n });\n\n return response;\n}\n\n/**\n * Casts object/array BigNumber items to strings for readability\n * @param data input object or array\n * @param keys keys for processing or all items if not defined\n *\n */\nexport function castToString(data: any, keys?: any): object {\n const returnArray: boolean = Array.isArray(data);\n if (typeof keys === 'undefined') {\n keys = Object.keys(data);\n }\n const response: any = returnArray ? [] : {};\n\n keys.forEach((key: any) => {\n const item = data[key];\n\n if (typeof item === 'undefined') {\n return;\n }\n\n if (Array.isArray(item)) {\n response[key] = castToString(item);\n return;\n }\n\n if (!BigNumber.isBigNumber(item)) {\n response[key] = item;\n return;\n }\n\n response[key] = item.toString();\n });\n\n return response;\n}\n","import BigNumber from 'bignumber.js';\nimport { defaultRPCOptions, RpcClientInterface, RPCOptions } from '../rpc-client-interface';\nimport {\n BakingRightsQueryArguments,\n BakingRightsResponse,\n BalanceResponse,\n BallotListResponse,\n BallotsResponse,\n BigMapGetResponse,\n BigMapKey,\n BigMapResponse,\n BlockHeaderResponse,\n BlockMetadata,\n BlockResponse,\n ConstantsResponse,\n ContractResponse,\n CurrentProposalResponse,\n CurrentQuorumResponse,\n DelegateResponse,\n DelegatesResponse,\n EndorsingRightsQueryArguments,\n EndorsingRightsResponse,\n EntrypointsResponse,\n ForgeOperationsParams,\n ManagerKeyResponse,\n OperationHash,\n PackDataParams,\n PeriodKindResponse,\n PreapplyParams,\n PreapplyResponse,\n ProposalsResponse,\n ProtocolsResponse,\n RPCRunCodeParam,\n RPCRunOperationParam,\n RPCRunViewParam,\n RunCodeResult,\n RunViewResult,\n SaplingDiffResponse,\n ScriptResponse,\n StorageResponse,\n UnparsingMode,\n VotesListingsResponse,\n VotingPeriodBlockResult,\n} from '../types';\n\nimport {\n InvalidAddressError,\n InvalidContractAddressError,\n validateContractAddress,\n validateAddress,\n ValidationResult,\n} from '@taquito/utils';\n\ninterface CachedDataInterface {\n [key: string]: {\n handle: () => void;\n response: Promise<any>;\n };\n}\nconst defaultTtl = 1000;\n\n/***\n * @description RpcClientCache acts as a decorator over the RpcClient instance by caching responses for the period defined by the ttl.\n */\nexport class RpcClientCache implements RpcClientInterface {\n private _cache: CachedDataInterface = {};\n /**\n *\n * @param rpcClient rpcClient responsible of the interaction with Tezos network through an rpc node\n * @param ttl number representing the time to live (default 1000 milliseconds)\n *\n * @example new RpcClientCache(new RpcClient('https://mainnet.api.tez.ie/'))\n */\n constructor(private rpcClient: RpcClientInterface, private ttl = defaultTtl) {}\n\n getAllCachedData() {\n return this._cache;\n }\n /**\n * @description Remove all the data in the cache.\n *\n */\n deleteAllCachedData() {\n for (const key in this._cache) {\n delete this._cache[key];\n }\n }\n\n private formatCacheKey(\n rpcUrl: string,\n rpcMethodName: string,\n rpcMethodParams: any[],\n rpcMethodData?: any\n ) {\n let paramsToString = '';\n rpcMethodParams.forEach((param) => {\n paramsToString =\n typeof param === 'object'\n ? paramsToString + JSON.stringify(param) + '/'\n : paramsToString + param + '/';\n });\n return rpcMethodData\n ? `${rpcUrl}/${rpcMethodName}/${paramsToString}/${JSON.stringify(rpcMethodData)}`\n : `${rpcUrl}/${rpcMethodName}/${paramsToString}`;\n }\n\n private has(key: string) {\n return key in this._cache;\n }\n\n private get(key: string) {\n return this._cache[key].response;\n }\n\n private put(key: string, response: Promise<any>) {\n const handle = setTimeout(() => {\n return this.remove(key);\n }, this.ttl);\n\n Object.assign(this._cache, { [key]: { handle, response } });\n }\n\n private remove(key: string) {\n if (key in this._cache) {\n delete this._cache[key];\n }\n }\n\n private validateAddress(address: string) {\n if (validateAddress(address) !== ValidationResult.VALID) {\n throw new InvalidAddressError(`Invalid address: ${address}`);\n }\n }\n\n private validateContract(address: string) {\n if (validateContractAddress(address) !== ValidationResult.VALID) {\n throw new InvalidContractAddressError(`Invalid contract address: ${address}`);\n }\n }\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Get the block's hash, its unique identifier.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-hash\n */\n async getBlockHash({ block }: RPCOptions = defaultRPCOptions): Promise<string> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlockHash', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlockHash({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List the ancestors of the given block which, if referred to as the branch in an operation header, are recent enough for that operation to be included in the current block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-live-blocks\n */\n async getLiveBlocks({ block }: RPCOptions = defaultRPCOptions): Promise<string[]> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getLiveBlocks', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getLiveBlocks({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address address from which we want to retrieve the balance\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the balance of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-balance\n */\n async getBalance(\n address: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BalanceResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBalance', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBalance(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the storage\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-storage\n */\n async getStorage(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<StorageResponse> {\n this.validateContract(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getStorage', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getStorage(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the code and data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script\n */\n async getScript(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getScript', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getScript(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param unparsingMode default is { unparsing_mode: \"Readable\" }\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the script of the contract and normalize it using the requested unparsing mode.\n *\n */\n async getNormalizedScript(\n address: string,\n unparsingMode: UnparsingMode = { unparsing_mode: 'Readable' },\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getNormalizedScript', [\n block,\n address,\n unparsingMode,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getNormalizedScript(address, unparsingMode, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the complete status of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id\n */\n async getContract(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ContractResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getContract', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getContract(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the manager\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the manager key of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-manager-key\n */\n async getManagerKey(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ManagerKeyResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getManagerKey', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getManagerKey(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the delegate (baker)\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the delegate of a contract, if any.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-delegate\n */\n async getDelegate(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegateResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getDelegate', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getDelegate(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the big map key\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in the big map storage of the contract.\n *\n * @deprecated Deprecated in favor of getBigMapKeyByID\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get\n */\n async getBigMapKey(\n address: string,\n key: BigMapKey,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapGetResponse> {\n this.validateAddress(address);\n const keyUrl = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBigMapKey', [\n block,\n address,\n key,\n ]);\n if (this.has(keyUrl)) {\n return this.get(keyUrl);\n } else {\n const response = this.rpcClient.getBigMapKey(address, key, { block });\n this.put(keyUrl, response);\n return response;\n }\n }\n\n /**\n *\n * @param id Big Map ID\n * @param expr Expression hash to query (A b58check encoded Blake2b hash of the expression (The expression can be packed using the pack_data method))\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in a big map.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-big-maps-big-map-id-script-expr\n */\n async getBigMapExpr(\n id: string,\n expr: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBigMapExpr', [block, id, expr]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBigMapExpr(id, expr, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address delegate address which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Fetches information about a delegate from RPC.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-delegates-pkh\n */\n async getDelegates(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegatesResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getDelegates', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getDelegates(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All constants\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-constants\n */\n async getConstants({ block }: RPCOptions = defaultRPCOptions): Promise<ConstantsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getConstants', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getConstants({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls. See examples for various available sytaxes.\n *\n * @description All the information about a block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id\n * @example getBlock() will default to /main/chains/block/head.\n * @example getBlock({ block: head~2 }) will return an offset of 2 blocks.\n * @example getBlock({ block: BL8fTiWcSxWCjiMVnDkbh6EuhqVPZzgWheJ2dqwrxYRm9AephXh~2 }) will return an offset of 2 blocks from given block hash..\n */\n async getBlock({ block }: RPCOptions = defaultRPCOptions): Promise<BlockResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlock', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlock({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description The whole block header\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-header\n */\n async getBlockHeader({ block }: RPCOptions = defaultRPCOptions): Promise<BlockHeaderResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlockHeader', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlockHeader({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All the metadata associated to the block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-metadata\n */\n async getBlockMetadata({ block }: RPCOptions = defaultRPCOptions): Promise<BlockMetadata> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlockMetadata', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlockMetadata({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-baking-rights\n */\n async getBakingRights(\n args: BakingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BakingRightsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBakingRights', [block, args]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBakingRights(args, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-endorsing-rights\n */\n async getEndorsingRights(\n args: EndorsingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EndorsingRightsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getEndorsingRights', [\n block,\n args,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getEndorsingRights(args, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n * @param options contains generic configuration for rpc calls\n *\n * @description Ballots casted so far during a voting period\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballot-list\n */\n async getBallotList({ block }: RPCOptions = defaultRPCOptions): Promise<BallotListResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBallotList', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBallotList({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Sum of ballots casted so far during a voting period.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballots\n */\n async getBallots({ block }: RPCOptions = defaultRPCOptions): Promise<BallotsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBallots', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBallots({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current proposal under evaluation.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-proposal\n */\n async getCurrentProposal({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentProposalResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getCurrentProposal', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getCurrentProposal({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current expected quorum.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-quorum\n */\n async getCurrentQuorum({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentQuorumResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getCurrentQuorum', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getCurrentQuorum({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of delegates with their voting weight, in number of rolls.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-listings\n */\n async getVotesListings({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotesListingsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getVotesListings', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getVotesListings({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of proposals with number of supporters.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-proposals\n */\n async getProposals({ block }: RPCOptions = defaultRPCOptions): Promise<ProposalsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getProposals', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getProposals({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param data operation contents to forge\n * @param options contains generic configuration for rpc calls\n *\n * @description Forge an operation returning the unsigned bytes\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-forge-operations\n */\n async forgeOperations(\n data: ForgeOperationsParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<string> {\n return this.rpcClient.forgeOperations(data, { block });\n }\n\n /**\n *\n * @param signedOpBytes signed bytes to inject\n *\n * @description Inject an operation in node and broadcast it. Returns the ID of the operation. The `signedOperationContents` should be constructed using a contextual RPCs from the latest block and signed by the client. By default, the RPC will wait for the operation to be (pre-)validated before answering. See RPCs under /blocks/prevalidation for more details on the prevalidation context.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-injection-operation\n */\n async injectOperation(signedOpBytes: string): Promise<OperationHash> {\n return this.rpcClient.injectOperation(signedOpBytes);\n }\n\n /**\n *\n * @param ops Operations to apply\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate the validation of an operation\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-preapply-operations\n */\n async preapplyOperations(\n ops: PreapplyParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse[]> {\n return this.rpcClient.preapplyOperations(ops, { block });\n }\n\n /**\n *\n * @param contract address of the contract we want to get the entrypoints of\n *\n * @description Return the list of entrypoints of the contract\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-entrypoints\n *\n * @version 005_PsBABY5H\n */\n async getEntrypoints(\n contract: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EntrypointsResponse> {\n this.validateContract(contract);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getEntrypoints', [\n block,\n contract,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getEntrypoints(contract, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n * @param op Operation to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run an operation without signature checks\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-operation\n */\n async runOperation(\n op: RPCRunOperationParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse> {\n return this.rpcClient.runOperation(op, { block });\n }\n\n /**\n * @param code Code to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run a piece of code in the current context\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-code\n */\n async runCode(\n code: RPCRunCodeParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunCodeResult> {\n return this.rpcClient.runCode(code, { block });\n }\n\n /**\n * @param viewParams Parameters of the view to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate a call to a view following the TZIP-4 standard. See https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-4/tzip-4.md#view-entrypoints.\n *\n */\n async runView(\n { unparsing_mode = 'Readable', ...rest }: RPCRunViewParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunViewResult> {\n return this.rpcClient.runView(\n {\n unparsing_mode,\n ...rest,\n },\n { block }\n );\n }\n\n async getChainId() {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getChainId', []);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getChainId();\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param data Data to pack\n * @param options contains generic configuration for rpc calls\n *\n * @description Computes the serialized version of a data expression using the same algorithm as script instruction PACK\n *\n * @example packData({ data: { string: \"test\" }, type: { prim: \"string\" } })\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-pack-data\n */\n async packData(\n data: PackDataParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<{ packed: string; gas: BigNumber | 'unaccounted' | undefined }> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'packData', [block, data]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.packData(data, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @description Return rpc root url\n */\n getRpcUrl() {\n return this.rpcClient.getRpcUrl();\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of current block.\n *\n * @example getCurrentPeriod() will default to current voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-period\n */\n async getCurrentPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getCurrentPeriod', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getCurrentPeriod({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of next block.\n *\n * @example getSuccessorPeriod() will default to successor voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-successor-period\n */\n async getSuccessorPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getSuccessorPeriod', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getSuccessorPeriod({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param id Sapling state ID\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state ID.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-sapling-sapling-state-id-get-diff\n */\n async getSaplingDiffById(\n id: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getSaplingDiffById', [block, id]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getSaplingDiffById(id, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param contract address of the contract we want to get the sapling diff\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-contracts-contract-id-single-sapling-get-diff\n */\n async getSaplingDiffByContract(\n contract: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getSaplingDiffByContract', [\n block,\n contract,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getSaplingDiffByContract(contract, { block });\n this.put(key, response);\n return response;\n }\n }\n\n async getProtocols({ block }: { block: string } = defaultRPCOptions): Promise<ProtocolsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getProtocols', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getProtocols({ block });\n this.put(key, response);\n return response;\n }\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { OpKind } from './opkind';\n\nexport type BalanceResponse = BigNumber;\nexport type StorageResponse = ScriptedContracts['storage'];\nexport type ScriptResponse = ScriptedContracts;\nexport type BigMapGetResponse = MichelsonV1Expression;\nexport type ManagerResponse = { manager: string };\nexport type ManagerKeyResponse = string | { key: string };\nexport type DelegateResponse = string | null;\n\nexport type OperationHash = string;\n\nexport interface DelegatesResponse {\n balance?: BigNumber;\n full_balance?: BigNumber;\n current_frozen_deposits?: BigNumber;\n frozen_deposits?: BigNumber;\n frozen_balance?: BigNumber;\n frozen_balance_by_cycle?: Frozenbalancebycycle[];\n frozen_deposits_limit?: BigNumber;\n staking_balance: BigNumber;\n delegated_contracts: string[];\n delegated_balance: BigNumber;\n deactivated: boolean;\n grace_period: number;\n voting_power?: number;\n}\n\ninterface Frozenbalancebycycle {\n cycle: number;\n deposit?: BigNumber;\n deposits?: BigNumber; // Since Granada, \"deposit\" is replaced by \"deposits\"\n fees: BigNumber;\n rewards: BigNumber;\n}\n\nexport type BigMapKey = {\n key: { [key: string]: string | object[] };\n type: { prim: string; args?: object[] };\n};\n\nexport interface BlockFullHeader {\n level: number;\n proto: number;\n predecessor: string;\n timestamp: TimeStampMixed;\n validation_pass: number;\n operations_hash: string;\n fitness: string[];\n context: string;\n payload_hash?: string;\n payload_round?: number;\n priority: number;\n proof_of_work_nonce: string;\n seed_nonce_hash?: string;\n liquidity_baking_escape_vote?: boolean;\n signature: string;\n}\n\nexport type InlinedEndorsementKindEnum = OpKind.ENDORSEMENT;\n\nexport interface InlinedEndorsementContents {\n kind: InlinedEndorsementKindEnum;\n slot?: number;\n round?: number;\n block_payload_hash?: string;\n level: number;\n}\n\nexport interface InlinedPreEndorsementContents {\n kind: OpKind.PREENDORSEMENT;\n slot: number;\n level: number;\n round: number;\n block_payload_hash: string;\n}\n\nexport interface InlinedEndorsement {\n branch: string;\n operations: InlinedEndorsementContents;\n signature?: string;\n}\n\nexport interface InlinedPreEndorsement {\n branch: string;\n operations: InlinedPreEndorsementContents;\n signature?: string;\n}\n\nexport type OperationContentsBallotEnum = 'nay' | 'yay' | 'pass';\n\nexport interface OperationContentsEndorsement {\n kind: OpKind.ENDORSEMENT;\n level: number;\n slot?: number;\n round?: number;\n block_payload_hash?: string;\n}\n\nexport interface OperationContentsPreEndorsement {\n kind: OpKind.PREENDORSEMENT;\n slot: number;\n level: number;\n round: number;\n block_payload_hash: string;\n}\n\nexport interface OperationContentsDoublePreEndorsement {\n kind: OpKind.DOUBLE_PREENDORSEMENT_EVIDENCE;\n op1: InlinedPreEndorsement;\n op2: InlinedPreEndorsement;\n}\n\nexport interface OperationContentsSetDepositsLimit {\n kind: OpKind.SET_DEPOSITS_LIMIT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n limit?: string;\n}\n\nexport interface OperationContentsEndorsementWithSlot {\n kind: OpKind.ENDORSEMENT_WITH_SLOT;\n endorsement: InlinedEndorsement;\n slot: number;\n}\n\nexport interface OperationContentsFailingNoop {\n kind: OpKind.FAILING_NOOP;\n arbitrary: string;\n}\n\nexport interface OperationContentsRevelation {\n kind: OpKind.SEED_NONCE_REVELATION;\n level: number;\n nonce: string;\n}\n\nexport interface OperationContentsDoubleEndorsement {\n kind: OpKind.DOUBLE_ENDORSEMENT_EVIDENCE;\n op1: InlinedEndorsement;\n op2: InlinedEndorsement;\n slot?: number;\n}\n\nexport interface OperationContentsDoubleBaking {\n kind: OpKind.DOUBLE_BAKING_EVIDENCE;\n bh1: BlockFullHeader;\n bh2: BlockFullHeader;\n}\n\nexport interface OperationContentsActivateAccount {\n kind: OpKind.ACTIVATION;\n pkh: string;\n secret: string;\n}\n\nexport interface OperationContentsProposals {\n kind: OpKind.PROPOSALS;\n source: string;\n period: number;\n proposals: string[];\n}\n\nexport interface OperationContentsBallot {\n kind: OpKind.BALLOT;\n source: string;\n period: number;\n proposal: string;\n ballot: OperationContentsBallotEnum;\n}\n\nexport interface OperationContentsReveal {\n kind: OpKind.REVEAL;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n public_key: string;\n}\n\nexport interface OperationContentsTransaction {\n kind: OpKind.TRANSACTION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n amount: string;\n destination: string;\n parameters?: TransactionOperationParameter;\n}\n\nexport interface OperationContentsOrigination {\n kind: OpKind.ORIGINATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n balance: string;\n delegate?: string;\n script?: ScriptedContracts;\n}\n\nexport interface OperationContentsDelegation {\n kind: OpKind.DELEGATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n delegate?: string;\n}\n\nexport interface OperationContentsRegisterGlobalConstant {\n kind: OpKind.REGISTER_GLOBAL_CONSTANT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n value: MichelsonV1Expression;\n}\n\nexport type OperationContents =\n | OperationContentsEndorsement\n | OperationContentsPreEndorsement\n | OperationContentsDoublePreEndorsement\n | OperationContentsRevelation\n | OperationContentsDoubleEndorsement\n | OperationContentsDoubleBaking\n | OperationContentsActivateAccount\n | OperationContentsProposals\n | OperationContentsBallot\n | OperationContentsReveal\n | OperationContentsTransaction\n | OperationContentsOrigination\n | OperationContentsDelegation\n | OperationContentsEndorsementWithSlot\n | OperationContentsFailingNoop\n | OperationContentsRegisterGlobalConstant\n | OperationContentsSetDepositsLimit;\n\nexport interface OperationContentsAndResultMetadataExtended {\n balance_updates: OperationMetadataBalanceUpdates[];\n delegate: string;\n slots?: number[];\n endorsement_power?: number;\n}\n\nexport interface OperationContentsAndResultMetadataPreEndorsement {\n balance_updates: OperationMetadataBalanceUpdates[];\n delegate: string;\n preendorsement_power: number;\n}\n\nexport interface OperationContentsAndResultMetadataReveal {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultReveal;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataTransaction {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultTransaction;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataDelegation {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultDelegation;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataRegisterGlobalConstant {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultRegisterGlobalConstant;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataSetDepositsLimit {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultSetDepositsLimit;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadata {\n balance_updates: OperationMetadataBalanceUpdates[];\n}\n\nexport interface OperationContentsAndResultEndorsement {\n kind: OpKind.ENDORSEMENT;\n block_payload_hash?: string;\n level: number;\n round?: number;\n slot?: number;\n metadata: OperationContentsAndResultMetadataExtended;\n}\n\nexport interface OperationContentsAndResultPreEndorsement {\n kind: OpKind.PREENDORSEMENT;\n slot: number;\n level: number;\n round: number;\n block_payload_hash: string;\n metadata: OperationContentsAndResultMetadataPreEndorsement;\n}\n\nexport interface OperationContentsAndResultDoublePreEndorsement {\n kind: OpKind.DOUBLE_PREENDORSEMENT_EVIDENCE;\n op1: InlinedPreEndorsement;\n op2: InlinedPreEndorsement;\n metadata: OperationContentsAndResultMetadata;\n}\nexport interface OperationContentsAndResultEndorsementWithSlot {\n kind: OpKind.ENDORSEMENT_WITH_SLOT;\n endorsement: InlinedEndorsement;\n slot: number;\n metadata: OperationContentsAndResultMetadataExtended;\n}\n\nexport interface OperationContentsAndResultRevelation {\n kind: OpKind.SEED_NONCE_REVELATION;\n level: number;\n nonce: string;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultDoubleEndorsement {\n kind: OpKind.DOUBLE_ENDORSEMENT_EVIDENCE;\n op1: InlinedEndorsement;\n op2: InlinedEndorsement;\n slot?: number;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultDoubleBaking {\n kind: OpKind.DOUBLE_BAKING_EVIDENCE;\n bh1: BlockFullHeader;\n bh2: BlockFullHeader;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultActivateAccount {\n kind: OpKind.ACTIVATION;\n pkh: string;\n secret: string;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultProposals {\n kind: OpKind.PROPOSALS;\n source: string;\n period: number;\n proposals: string[];\n}\n\nexport interface OperationContentsAndResultBallot {\n kind: OpKind.BALLOT;\n source: string;\n period: number;\n proposal: string;\n ballot: OperationContentsBallotEnum;\n}\n\nexport interface OperationContentsAndResultReveal {\n kind: OpKind.REVEAL;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n public_key: string;\n metadata: OperationContentsAndResultMetadataReveal;\n}\n\nexport interface OperationContentsAndResultTransaction {\n kind: OpKind.TRANSACTION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n amount: string;\n destination: string;\n parameters?: TransactionOperationParameter;\n metadata: OperationContentsAndResultMetadataTransaction;\n}\n\nexport interface OperationContentsAndResultDelegation {\n kind: OpKind.DELEGATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n delegate?: string;\n metadata: OperationContentsAndResultMetadataDelegation;\n}\n\nexport interface OperationContentsAndResultRegisterGlobalConstant {\n kind: OpKind.REGISTER_GLOBAL_CONSTANT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n value: MichelsonV1Expression;\n metadata: OperationContentsAndResultMetadataRegisterGlobalConstant;\n}\n\nexport interface OperationContentsAndResultSetDepositsLimit {\n kind: OpKind.SET_DEPOSITS_LIMIT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n limit?: string;\n metadata: OperationContentsAndResultMetadataSetDepositsLimit;\n}\n\nexport type OperationContentsAndResult =\n | OperationContentsAndResultEndorsement\n | OperationContentsAndResultPreEndorsement\n | OperationContentsAndResultDoublePreEndorsement\n | OperationContentsAndResultRevelation\n | OperationContentsAndResultDoubleEndorsement\n | OperationContentsAndResultDoubleBaking\n | OperationContentsAndResultActivateAccount\n | OperationContentsAndResultProposals\n | OperationContentsAndResultBallot\n | OperationContentsAndResultReveal\n | OperationContentsAndResultTransaction\n | OperationContentsAndResultOrigination\n | OperationContentsAndResultDelegation\n | OperationContentsAndResultEndorsementWithSlot\n | OperationContentsAndResultRegisterGlobalConstant\n | OperationContentsAndResultSetDepositsLimit;\n\nexport interface OperationEntry {\n protocol: string;\n chain_id: string;\n hash: string;\n branch: string;\n contents: (OperationContents | OperationContentsAndResult)[];\n signature?: string;\n}\n\nexport interface BlockResponse {\n protocol: string;\n chain_id: string;\n hash: string;\n header: BlockFullHeader;\n metadata: BlockMetadata;\n operations: OperationEntry[][];\n}\n\nexport type BakingRightsArgumentsDelegate = string | string[];\nexport type BakingRightsArgumentsCycle = number | number[];\nexport type BakingRightsArgumentsLevel = number | number[];\n\nexport type BakingRightsQueryArguments =\n | BakingRightsQueryArgumentsProto12\n | BakingRightsQueryArgumentsBase;\n\nexport interface BakingRightsQueryArgumentsProto12\n extends Omit<BakingRightsQueryArgumentsBase, 'max_priority'> {\n max_round?: string;\n}\nexport interface BakingRightsQueryArgumentsBase {\n level?: BakingRightsArgumentsLevel;\n cycle?: BakingRightsArgumentsCycle;\n delegate?: BakingRightsArgumentsDelegate;\n max_priority?: number;\n all?: null;\n}\n\nexport interface BakingRightsResponseItem {\n level: number;\n delegate: string;\n priority?: number;\n round?: number;\n estimated_time?: Date;\n}\n\nexport type BakingRightsResponse = BakingRightsResponseItem[];\n\nexport type EndorsingRightsArgumentsDelegate = string | string[];\nexport type EndorsingRightsArgumentsCycle = number | number[];\nexport type EndorsingRightsArgumentsLevel = number | number[];\n\nexport interface EndorsingRightsQueryArguments {\n level?: EndorsingRightsArgumentsLevel;\n cycle?: EndorsingRightsArgumentsCycle;\n delegate?: EndorsingRightsArgumentsDelegate;\n}\n\nexport interface EndorsingRightsResponseItemDelegates {\n delegate: string;\n first_slot: number;\n endorsing_power: number;\n}\nexport interface EndorsingRightsResponseItem {\n level: number;\n delegate?: string;\n delegates?: EndorsingRightsResponseItemDelegates[];\n slots?: number[];\n estimated_time?: Date;\n}\n\nexport type EndorsingRightsResponse = EndorsingRightsResponseItem[];\n\nexport type BallotListResponseEnum = 'nay' | 'yay' | 'pass';\n\nexport interface BallotListResponseItem {\n pkh: string;\n ballot: BallotListResponseEnum;\n}\n\nexport type BallotListResponse = BallotListResponseItem[];\n\nexport interface BallotsResponse {\n yay: number;\n nay: number;\n pass: number;\n}\n\nexport type PeriodKindResponse =\n | 'proposal'\n | 'testing_vote'\n | 'testing'\n | 'promotion_vote'\n | 'exploration'\n | 'cooldown'\n | 'promotion'\n | 'adoption';\n\nexport type CurrentProposalResponse = string | null;\n\nexport type CurrentQuorumResponse = number;\n\nexport interface VotesListingsResponseItem {\n pkh: string;\n rolls: number;\n}\n\nexport type VotesListingsResponse = VotesListingsResponseItem[];\n\nexport type ProposalsResponseItem = [string, number];\n\nexport type ProposalsResponse = ProposalsResponseItem[];\n\nexport interface BlockHeaderResponse {\n protocol: string;\n chain_id: string;\n hash: string;\n level: number;\n proto: number;\n predecessor: string;\n timestamp: string;\n validation_pass: number;\n operations_hash: string;\n fitness: string[];\n context: string;\n payload_hash?: string;\n payload_round?: number;\n priority?: number;\n proof_of_work_nonce: string;\n liquidity_baking_escape_vote?: boolean;\n signature: string;\n}\n\nexport interface PackDataParams {\n data: MichelsonV1Expression;\n type: MichelsonV1Expression;\n gas?: BigNumber;\n}\n\nexport type HexString = string;\n\nexport interface PackDataResponse {\n packed: HexString;\n gas?: BigNumber | 'unaccounted';\n}\n\nexport type BigMapResponse = MichelsonV1Expression | MichelsonV1Expression[];\n\nexport type SaplingDiffResponse = {\n root: SaplingTransactionCommitmentHash;\n commitments_and_ciphertexts: CommitmentsAndCiphertexts[];\n nullifiers: string[];\n};\n\nexport type SaplingTransactionCommitmentHash = string;\n\nexport type PreapplyParams = OperationObject[];\nexport type PreapplyResponse = {\n contents: OperationContentsAndResult[];\n};\n\nexport type ForgeOperationsParams = Pick<OperationObject, 'branch' | 'contents'>;\n\nexport type TimeStampMixed = Date | string;\n\nexport type BalanceUpdateKindEnum = MetadataBalanceUpdatesKindEnum;\nexport type BalanceUpdateCategoryEnum = MetadataBalanceUpdatesCategoryEnum;\n\nexport interface MichelsonV1ExpressionBase {\n int?: string;\n string?: string;\n bytes?: string;\n}\n\nexport interface MichelsonV1ExpressionExtended {\n prim: string;\n args?: MichelsonV1Expression[];\n annots?: string[];\n}\n\nexport type MichelsonV1Expression =\n | MichelsonV1ExpressionBase\n | MichelsonV1ExpressionExtended\n | MichelsonV1Expression[];\n\nexport interface ScriptedContracts {\n code: MichelsonV1Expression[];\n storage: MichelsonV1Expression;\n}\n\nexport interface OperationBalanceUpdatesItem {\n kind: BalanceUpdateKindEnum;\n category?: BalanceUpdateCategoryEnum;\n delegate?: string;\n cycle?: number;\n contract?: string;\n change: string;\n origin?: MetadataBalanceUpdatesOriginEnum;\n}\n\nexport type OperationBalanceUpdates = OperationBalanceUpdatesItem[];\n\nexport interface OperationObject {\n branch?: string;\n contents?: OperationContents[];\n protocol?: string;\n signature?: string;\n}\n\nexport type InternalOperationResultKindEnum =\n | OpKind.REVEAL\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.DELEGATION\n | OpKind.REGISTER_GLOBAL_CONSTANT\n | OpKind.SET_DEPOSITS_LIMIT;\n\nexport type SuccessfulManagerOperationResultKindEnum =\n | OpKind.REVEAL\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.DELEGATION;\n\nexport type InternalOperationResultEnum =\n | OperationResultReveal\n | OperationResultTransaction\n | OperationResultDelegation\n | OperationResultOrigination\n | OperationResultRegisterGlobalConstant\n | OperationResultSetDepositsLimit;\n\nexport interface OperationResultDelegation {\n status: OperationResultStatusEnum;\n consumed_gas?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n}\n\nexport interface OperationResultSetDepositsLimit {\n status: OperationResultStatusEnum;\n consumed_gas?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n}\n\nexport interface OperationResultRegisterGlobalConstant {\n status: OperationResultStatusEnum;\n balance_updates?: OperationBalanceUpdates;\n consumed_gas?: string;\n storage_size?: string;\n global_address?: string;\n errors?: TezosGenericOperationError[];\n}\n\nexport interface ContractBigMapDiffItem {\n key_hash?: string;\n key?: MichelsonV1Expression;\n value?: MichelsonV1Expression;\n action?: DiffActionEnum;\n big_map?: string;\n source_big_map?: string;\n destination_big_map?: string;\n key_type?: MichelsonV1Expression;\n value_type?: MichelsonV1Expression;\n}\n\nexport type ContractBigMapDiff = ContractBigMapDiffItem[];\n\nexport interface TezosGenericOperationError {\n kind: string;\n id: string;\n}\n\nexport interface OperationResultTransaction {\n status: OperationResultStatusEnum;\n storage?: MichelsonV1Expression;\n big_map_diff?: ContractBigMapDiff;\n balance_updates?: OperationBalanceUpdates;\n originated_contracts?: string[];\n consumed_gas?: string;\n storage_size?: string;\n paid_storage_size_diff?: string;\n allocated_destination_contract?: boolean;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n lazy_storage_diff?: LazyStorageDiff[];\n}\n\nexport interface OperationResultReveal {\n status: OperationResultStatusEnum;\n consumed_gas?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n}\n\nexport interface TransactionOperationParameter {\n entrypoint: string;\n value: MichelsonV1Expression;\n}\n\nexport interface InternalOperationResult {\n kind: InternalOperationResultKindEnum;\n source: string;\n nonce: number;\n amount?: string;\n destination?: string;\n parameters?: TransactionOperationParameter;\n public_key?: string;\n balance?: string;\n delegate?: string;\n script?: ScriptedContracts;\n value?: MichelsonV1Expression;\n limit?: string;\n result: InternalOperationResultEnum;\n}\n\nexport interface SuccessfulManagerOperationResult {\n kind: SuccessfulManagerOperationResultKindEnum;\n consumed_gas?: string;\n consumed_milligas?: string;\n storage?: MichelsonV1Expression;\n big_map_diff?: ContractBigMapDiff;\n balance_updates?: OperationBalanceUpdates;\n originated_contracts?: string[];\n storage_size?: string;\n paid_storage_size_diff?: string;\n lazy_storage_diff?: LazyStorageDiff[];\n}\n\nexport type MetadataBalanceUpdatesKindEnum =\n | 'contract'\n | 'freezer'\n | 'accumulator'\n | 'burned'\n | 'commitment'\n | 'minted';\n\nexport enum METADATA_BALANCE_UPDATES_CATEGORY {\n BAKING_REWARDS = 'baking rewards',\n REWARDS = 'rewards',\n FEES = 'fees',\n DEPOSITS = 'deposits',\n LEGACY_REWARDS = 'legacy_rewards',\n LEGACY_FEES = 'legacy_fees',\n LEGACY_DEPOSITS = 'legacy_deposits',\n BLOCK_FEES = 'block fees',\n NONCE_REVELATION_REWARDS = 'nonce revelation rewards',\n DOUBLE_SIGNING_EVIDENCE_REWARDS = 'double signing evidence rewards',\n ENDORSING_REWARDS = 'endorsing rewards',\n BAKING_BONUSES = 'baking bonuses',\n STORAGE_FEES = 'storage fees',\n PUNISHMENTS = 'punishments',\n LOST_ENDORSING_REWARDS = 'lost endorsing rewards',\n SUBSIDY = 'subsidy',\n BURNED = 'burned',\n COMMITMENT = 'commitment',\n BOOTSTRAP = 'bootstrap',\n INVOICE = 'invoice',\n MINTED = 'minted',\n}\nexport type MetadataBalanceUpdatesCategoryEnum = METADATA_BALANCE_UPDATES_CATEGORY;\n\nexport type MetadataBalanceUpdatesOriginEnum = 'block' | 'migration' | 'subsidy' | 'simulation';\n\nexport interface OperationMetadataBalanceUpdates {\n kind: MetadataBalanceUpdatesKindEnum;\n category?: MetadataBalanceUpdatesCategoryEnum;\n contract?: string;\n delegate?: string;\n participation?: boolean;\n revelation?: boolean;\n committer?: string;\n cycle?: number;\n change: string;\n origin?: MetadataBalanceUpdatesOriginEnum;\n}\n\nexport type OperationResultStatusEnum = 'applied' | 'failed' | 'skipped' | 'backtracked';\n\nexport type DiffActionEnum = 'update' | 'remove' | 'copy' | 'alloc';\n\nexport type LazyStorageDiff = LazyStorageDiffBigMap | LazyStorageDiffSaplingState;\n\nexport interface LazyStorageDiffBigMap {\n kind: 'big_map';\n id: string;\n diff: LazyStorageDiffBigMapItems;\n}\n\nexport interface LazyStorageDiffSaplingState {\n kind: 'sapling_state';\n id: string;\n diff: LazyStorageDiffSaplingStateItems;\n}\n\nexport interface LazyStorageDiffBigMapItems {\n action: DiffActionEnum;\n updates?: LazyStorageDiffUpdatesBigMap[];\n source?: string;\n key_type?: MichelsonV1Expression;\n value_type?: MichelsonV1Expression;\n}\n\nexport interface LazyStorageDiffSaplingStateItems {\n action: DiffActionEnum;\n updates?: LazyStorageDiffUpdatesSaplingState;\n source?: string;\n memo_size?: number;\n}\n\nexport interface LazyStorageDiffUpdatesBigMap {\n key_hash: string;\n key: MichelsonV1Expression;\n value?: MichelsonV1Expression;\n}\n\nexport type CommitmentsAndCiphertexts = [\n SaplingTransactionCommitment,\n SaplingTransactionCiphertext\n];\n\nexport type SaplingTransactionCommitment = string;\n\nexport interface LazyStorageDiffUpdatesSaplingState {\n commitments_and_ciphertexts: CommitmentsAndCiphertexts[];\n nullifiers: string[];\n}\n\nexport interface SaplingTransactionCiphertext {\n cv: string;\n epk: string;\n payload_enc: string;\n nonce_enc: string;\n payload_out: string;\n nonce_out: string;\n}\n\nexport interface OperationResultOrigination {\n status: OperationResultStatusEnum;\n big_map_diff?: ContractBigMapDiff;\n balance_updates?: OperationBalanceUpdates;\n originated_contracts?: string[];\n consumed_gas?: string;\n storage_size?: string;\n paid_storage_size_diff?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n lazy_storage_diff?: LazyStorageDiff[];\n}\n\nexport interface OperationContentsAndResultMetadataOrigination {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultOrigination;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport type ConstantsResponse = ConstantsResponseCommon &\n ConstantsResponseProto012 &\n ConstantsResponseProto011 &\n ConstantsResponseProto010 &\n ConstantsResponseProto009 &\n ConstantsResponseProto008 &\n ConstantsResponseProto007 &\n ConstantsResponseProto006 &\n ConstantsResponseProto005 &\n ConstantsResponseProto004 &\n ConstantsResponseProto003 &\n ConstantsResponseProto001And002;\n\nexport interface ConstantsResponseCommon {\n proof_of_work_nonce_size: number;\n nonce_length: number;\n max_operation_data_length: number;\n preserved_cycles: number;\n blocks_per_cycle: number;\n blocks_per_commitment: number;\n blocks_per_roll_snapshot: number;\n blocks_per_voting_period: number;\n time_between_blocks: BigNumber[];\n endorsers_per_block: number;\n hard_gas_limit_per_operation: BigNumber;\n hard_gas_limit_per_block: BigNumber;\n proof_of_work_threshold: BigNumber;\n tokens_per_roll: BigNumber;\n michelson_maximum_type_size: number;\n seed_nonce_revelation_tip: BigNumber;\n block_security_deposit: BigNumber;\n endorsement_security_deposit: BigNumber;\n endorsement_reward: BigNumber | BigNumber[]; // BigNumber[] since proto 006, BigNumber before\n cost_per_byte: BigNumber;\n hard_storage_limit_per_operation: BigNumber;\n}\n\nexport type Ratio = { numerator: number; denominator: number };\nexport interface ConstantsResponseProto012\n extends Omit<\n ConstantsResponseProto011,\n | 'baking_reward_per_endorsement'\n | 'initial_endorsers'\n | 'delay_per_missing_endorsement'\n | 'test_chain_duration'\n | 'blocks_per_roll_snapshot'\n | 'time_between_blocks'\n | 'endorsers_per_block'\n | 'block_security_deposit'\n | 'endorsement_security_deposit'\n | 'endorsement_reward'\n > {\n blocks_per_stake_snapshot?: number;\n baking_reward_fixed_portion?: BigNumber;\n baking_reward_bonus_per_slot?: BigNumber;\n endorsing_reward_per_slot?: BigNumber;\n max_operations_time_to_live?: number;\n consensus_committee_size?: number;\n consensus_threshold?: number;\n minimal_participation_ratio?: Ratio;\n max_slashing_period?: number;\n frozen_deposits_percentage?: number;\n double_baking_punishment?: BigNumber;\n ratio_of_frozen_deposits_slashed_per_double_endorsement?: Ratio;\n delegate_selection?: 'random' | string[][];\n delay_increment_per_round?: BigNumber;\n}\n\nexport interface ConstantsResponseProto011 extends ConstantsResponseProto010 {\n max_micheline_node_count?: number;\n max_allowed_global_constants_depth?: number;\n max_micheline_bytes_limit?: number;\n cache_layout?: BigNumber[];\n}\nexport interface ConstantsResponseProto010 extends ConstantsResponseProto007 {\n minimal_block_delay?: BigNumber;\n liquidity_baking_subsidy?: BigNumber;\n liquidity_baking_sunset_level?: number;\n liquidity_baking_escape_ema_threshold?: number;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConstantsResponseProto009 extends ConstantsResponseProto007 {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConstantsResponseProto008 extends ConstantsResponseProto007 {}\n\nexport interface ConstantsResponseProto007\n extends Omit<ConstantsResponseProto006, 'max_revelations_per_block'> {\n max_anon_ops_per_block?: number;\n}\n\nexport interface ConstantsResponseProto006 extends Omit<ConstantsResponseProto005, 'block_reward'> {\n baking_reward_per_endorsement?: BigNumber[];\n}\n\nexport interface ConstantsResponseProto005 extends ConstantsResponseProto004 {\n quorum_min?: number;\n quorum_max?: number;\n min_proposal_quorum?: number;\n initial_endorsers?: number;\n delay_per_missing_endorsement?: BigNumber;\n}\n\nexport interface ConstantsResponseProto004 extends ConstantsResponseProto003 {\n test_chain_duration?: BigNumber;\n}\n\nexport interface ConstantsResponseProto003\n extends Omit<ConstantsResponseProto001And002, 'origination_burn'> {\n origination_size?: number;\n max_proposals_per_delegate?: number;\n}\n\nexport interface ConstantsResponseProto001And002 {\n max_revelations_per_block?: number;\n origination_burn?: string;\n block_reward?: BigNumber;\n}\n\nexport interface ContractResponse {\n balance: BigNumber;\n script: ScriptedContracts;\n counter?: string;\n delegate?: string;\n}\n\nexport interface TestChainStatus {\n status: string;\n}\n\nexport interface MaxOperationListLength {\n max_size: number;\n max_op?: number;\n}\n\nexport interface Level {\n level: number;\n level_position: number;\n cycle: number;\n cycle_position: number;\n voting_period: number;\n voting_period_position: number;\n expected_commitment: boolean;\n}\n\nexport interface LevelInfo {\n level: number;\n level_position: number;\n cycle: number;\n cycle_position: number;\n expected_commitment: boolean;\n}\n\nexport interface BlockMetadata {\n protocol: string;\n next_protocol: string;\n test_chain_status: TestChainStatus;\n max_operations_ttl: number;\n max_operation_data_length: number;\n max_block_header_length: number;\n max_operation_list_length: MaxOperationListLength[];\n proposer?: string;\n baker: string;\n level?: Level;\n level_info?: LevelInfo;\n voting_period_kind?: string;\n voting_period_info?: VotingPeriodBlockResult;\n nonce_hash?: any;\n consumed_gas: string;\n deactivated: any[];\n balance_updates: OperationBalanceUpdates;\n liquidity_baking_escape_ema?: number;\n implicit_operations_results?: SuccessfulManagerOperationResult[];\n}\n\nexport type RPCRunOperationParam = {\n operation: OperationObject;\n chain_id: string;\n};\n\nexport type RPCRunCodeParam = {\n script: MichelsonV1ExpressionExtended[];\n storage: MichelsonV1Expression;\n input: MichelsonV1Expression;\n amount: string;\n chain_id: string;\n source?: string;\n payer?: string;\n gas?: BigNumber;\n entrypoint?: string;\n balance?: string;\n};\n\nexport type RunCodeResult = {\n storage: MichelsonV1Expression;\n operations: InternalOperationResult[];\n big_map_diff?: ContractBigMapDiff;\n lazy_storage_diff?: LazyStorageDiff;\n};\n\nexport type RPCRunViewParam = {\n contract: string;\n entrypoint: string;\n input: MichelsonV1Expression;\n chain_id: string;\n source?: string;\n payer?: string;\n gas?: BigNumber;\n unparsing_mode?: UnparsingModeEnum;\n};\n\nexport type RunViewResult = {\n data: MichelsonV1Expression;\n};\n\nexport type EntrypointsResponse = {\n entrypoints: { [key: string]: MichelsonV1ExpressionExtended };\n unreachable?: { path: ('Left' | 'Right')[] };\n};\n\nexport interface OperationContentsAndResultOrigination {\n kind: OpKind.ORIGINATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n balance: string;\n delegate?: string;\n script?: ScriptedContracts;\n metadata: OperationContentsAndResultMetadataOrigination;\n}\n\nexport interface VotingPeriodResult {\n index: number;\n kind: PeriodKindResponse;\n start_position: number;\n}\n\nexport interface VotingPeriodBlockResult {\n voting_period: VotingPeriodResult;\n position: number;\n remaining: number;\n}\n\nexport type UnparsingModeEnum = 'Readable' | 'Optimized' | 'Optimized_legacy';\nexport type UnparsingMode = {\n unparsing_mode: UnparsingModeEnum;\n};\n\nexport type ProtocolsResponse = {\n protocol: string;\n next_protocol: string;\n};\n","export enum OpKind {\n ORIGINATION = 'origination',\n DELEGATION = 'delegation',\n REVEAL = 'reveal',\n TRANSACTION = 'transaction',\n ACTIVATION = 'activate_account',\n ENDORSEMENT = 'endorsement',\n PREENDORSEMENT = 'preendorsement',\n SET_DEPOSITS_LIMIT = 'set_deposits_limit',\n DOUBLE_PREENDORSEMENT_EVIDENCE = 'double_preendorsement_evidence',\n ENDORSEMENT_WITH_SLOT = 'endorsement_with_slot',\n SEED_NONCE_REVELATION = 'seed_nonce_revelation',\n DOUBLE_ENDORSEMENT_EVIDENCE = 'double_endorsement_evidence',\n DOUBLE_BAKING_EVIDENCE = 'double_baking_evidence',\n PROPOSALS = 'proposals',\n BALLOT = 'ballot',\n FAILING_NOOP = 'failing_noop',\n REGISTER_GLOBAL_CONSTANT = 'register_global_constant',\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"222db56e9550fff784a819406d8bdc1110787440\",\n \"version\": \"12.0.0\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/rpc\n */\nimport { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';\nimport BigNumber from 'bignumber.js';\nimport {\n defaultChain,\n defaultRPCOptions,\n RpcClientInterface,\n RPCOptions,\n} from './rpc-client-interface';\nimport {\n BakingRightsQueryArguments,\n BakingRightsResponse,\n BalanceResponse,\n BallotListResponse,\n BallotsResponse,\n BigMapGetResponse,\n BigMapKey,\n BigMapResponse,\n BlockHeaderResponse,\n BlockMetadata,\n BlockResponse,\n ConstantsResponse,\n ContractResponse,\n CurrentProposalResponse,\n CurrentQuorumResponse,\n DelegateResponse,\n DelegatesResponse,\n EndorsingRightsQueryArguments,\n EndorsingRightsResponse,\n EntrypointsResponse,\n ForgeOperationsParams,\n ManagerKeyResponse,\n MichelsonV1ExpressionExtended,\n OperationHash,\n PackDataParams,\n PackDataResponse,\n PreapplyParams,\n PreapplyResponse,\n ProposalsResponse,\n ProtocolsResponse,\n RPCRunCodeParam,\n RPCRunOperationParam,\n RPCRunViewParam,\n RunCodeResult,\n RunViewResult,\n SaplingDiffResponse,\n ScriptResponse,\n StorageResponse,\n UnparsingMode,\n VotesListingsResponse,\n VotingPeriodBlockResult,\n} from './types';\nimport { castToBigNumber } from './utils/utils';\nimport {\n InvalidAddressError,\n validateAddress,\n validateContractAddress,\n ValidationResult,\n} from '@taquito/utils';\n\nexport { castToBigNumber } from './utils/utils';\n\nexport {\n RPCOptions,\n defaultChain,\n defaultRPCOptions,\n RpcClientInterface,\n} from './rpc-client-interface';\n\nexport { RpcClientCache } from './rpc-client-modules/rpc-cache';\n\nexport * from './types';\n\nexport { OpKind } from './opkind';\n\nexport { VERSION } from './version';\n\n/***\n * @description RpcClient allows interaction with Tezos network through an rpc node\n */\nexport class RpcClient implements RpcClientInterface {\n /**\n *\n * @param url rpc root url\n * @param chain chain (default main)\n * @param httpBackend Http backend that issue http request.\n * You can override it by providing your own if you which to hook in the request/response\n *\n * @example new RpcClient('https://mainnet.api.tez.ie/', 'main') this will use https://mainnet.api.tez.ie//chains/main\n */\n constructor(\n protected url: string,\n protected chain: string = defaultChain,\n protected httpBackend: HttpBackend = new HttpBackend()\n ) {}\n\n protected createURL(path: string) {\n // Trim trailing slashes because it is assumed to be included in path\n return `${this.url.replace(/\\/+$/g, '')}${path}`;\n }\n\n private validateAddress(address: string) {\n if (validateAddress(address) !== ValidationResult.VALID) {\n throw new InvalidAddressError(`Invalid address: ${address}`);\n }\n }\n\n private validateContract(address: string) {\n if (validateContractAddress(address) !== ValidationResult.VALID) {\n throw new InvalidAddressError(`Invalid address: ${address}`);\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Get the block's hash, its unique identifier.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-hash\n */\n async getBlockHash({ block }: RPCOptions = defaultRPCOptions): Promise<string> {\n const hash = await this.httpBackend.createRequest<string>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/hash`),\n method: 'GET',\n });\n return hash;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List the ancestors of the given block which, if referred to as the branch in an operation header, are recent enough for that operation to be included in the current block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-live-blocks\n */\n async getLiveBlocks({ block }: RPCOptions = defaultRPCOptions): Promise<string[]> {\n const blocks = await this.httpBackend.createRequest<string[]>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/live_blocks`),\n method: 'GET',\n });\n return blocks;\n }\n\n /**\n *\n * @param address address from which we want to retrieve the balance\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the balance of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-balance\n */\n async getBalance(\n address: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BalanceResponse> {\n this.validateAddress(address);\n const balance = await this.httpBackend.createRequest<BalanceResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/balance`\n ),\n method: 'GET',\n });\n return new BigNumber(balance);\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the storage\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-storage\n */\n async getStorage(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<StorageResponse> {\n this.validateContract(address);\n return this.httpBackend.createRequest<StorageResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/storage`\n ),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the code and data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script\n */\n async getScript(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n return this.httpBackend.createRequest<ScriptResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/script`\n ),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param unparsingMode default is { unparsing_mode: \"Readable\" }\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the script of the contract and normalize it using the requested unparsing mode.\n *\n */\n async getNormalizedScript(\n address: string,\n unparsingMode: UnparsingMode = { unparsing_mode: 'Readable' },\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n return this.httpBackend.createRequest<ScriptResponse>(\n {\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/script/normalized`\n ),\n method: 'POST',\n },\n unparsingMode\n );\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the complete status of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id\n */\n async getContract(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ContractResponse> {\n this.validateAddress(address);\n const contractResponse = await this.httpBackend.createRequest<ContractResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/contracts/${address}`),\n method: 'GET',\n });\n return {\n ...contractResponse,\n balance: new BigNumber(contractResponse.balance),\n };\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the manager\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the manager key of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-manager-key\n */\n async getManagerKey(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ManagerKeyResponse> {\n this.validateAddress(address);\n return this.httpBackend.createRequest<ManagerKeyResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/manager_key`\n ),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the delegate (baker)\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the delegate of a contract, if any.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-delegate\n */\n async getDelegate(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegateResponse> {\n this.validateAddress(address);\n let delegate: DelegateResponse;\n try {\n delegate = await this.httpBackend.createRequest<DelegateResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/delegate`\n ),\n method: 'GET',\n });\n } catch (ex) {\n if (ex instanceof HttpResponseError && ex.status === STATUS_CODE.NOT_FOUND) {\n delegate = null;\n } else {\n throw ex;\n }\n }\n return delegate;\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the big map key\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in the big map storage of the contract.\n *\n * @deprecated Deprecated in favor of getBigMapKeyByID\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get\n */\n async getBigMapKey(\n address: string,\n key: BigMapKey,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapGetResponse> {\n this.validateAddress(address);\n return this.httpBackend.createRequest<BigMapGetResponse>(\n {\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/big_map_get`\n ),\n method: 'POST',\n },\n key\n );\n }\n\n /**\n *\n * @param id Big Map ID\n * @param expr Expression hash to query (A b58check encoded Blake2b hash of the expression (The expression can be packed using the pack_data method))\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in a big map.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-big-maps-big-map-id-script-expr\n */\n async getBigMapExpr(\n id: string,\n expr: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapResponse> {\n return this.httpBackend.createRequest<BigMapResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/big_maps/${id}/${expr}`),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address delegate address which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Fetches information about a delegate from RPC.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-delegates-pkh\n */\n async getDelegates(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegatesResponse> {\n this.validateAddress(address);\n const response = await this.httpBackend.createRequest<DelegatesResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/delegates/${address}`),\n method: 'GET',\n });\n\n const castedResponse: any = castToBigNumber(response, [\n 'balance',\n 'full_balance',\n 'current_frozen_deposits',\n 'frozen_deposits',\n 'frozen_balance',\n 'frozen_deposits_limit',\n 'staking_balance',\n 'delegated_balance',\n ]);\n\n return {\n ...response,\n ...castedResponse,\n frozen_balance_by_cycle: response.frozen_balance_by_cycle\n ? response.frozen_balance_by_cycle.map(({ deposit, deposits, fees, rewards, ...rest }) => {\n const castedToBigNumber: any = castToBigNumber({ deposit, deposits, fees, rewards }, [\n 'deposit',\n 'deposits',\n 'fees',\n 'rewards',\n ]);\n return {\n ...rest,\n deposit: castedToBigNumber.deposit,\n deposits: castedToBigNumber.deposits,\n fees: castedToBigNumber.fees,\n rewards: castedToBigNumber.rewards,\n };\n })\n : undefined,\n };\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All constants\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-constants\n */\n async getConstants({ block }: RPCOptions = defaultRPCOptions): Promise<ConstantsResponse> {\n const response = await this.httpBackend.createRequest<ConstantsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/constants`),\n method: 'GET',\n });\n\n const castedResponse: any = castToBigNumber(response, [\n 'time_between_blocks',\n 'hard_gas_limit_per_operation',\n 'hard_gas_limit_per_block',\n 'proof_of_work_threshold',\n 'tokens_per_roll',\n 'seed_nonce_revelation_tip',\n 'block_security_deposit',\n 'endorsement_security_deposit',\n 'block_reward',\n 'endorsement_reward',\n 'cost_per_byte',\n 'hard_storage_limit_per_operation',\n 'test_chain_duration',\n 'baking_reward_per_endorsement',\n 'delay_per_missing_endorsement',\n 'minimal_block_delay',\n 'liquidity_baking_subsidy',\n 'cache_layout',\n 'baking_reward_fixed_portion',\n 'baking_reward_bonus_per_slot',\n 'endorsing_reward_per_slot',\n 'double_baking_punishment',\n 'delay_increment_per_round',\n ]);\n\n return {\n ...response,\n ...(castedResponse as ConstantsResponse),\n };\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls. See examples for various available sytaxes.\n *\n * @description All the information about a block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id\n * @example getBlock() will default to /main/chains/block/head.\n * @example getBlock({ block: head~2 }) will return an offset of 2 blocks.\n * @example getBlock({ block: BL8fTiWcSxWCjiMVnDkbh6EuhqVPZzgWheJ2dqwrxYRm9AephXh~2 }) will return an offset of 2 blocks from given block hash..\n */\n async getBlock({ block }: RPCOptions = defaultRPCOptions): Promise<BlockResponse> {\n const response = await this.httpBackend.createRequest<BlockResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description The whole block header\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-header\n */\n async getBlockHeader({ block }: RPCOptions = defaultRPCOptions): Promise<BlockHeaderResponse> {\n const response = await this.httpBackend.createRequest<BlockHeaderResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/header`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All the metadata associated to the block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-metadata\n */\n async getBlockMetadata({ block }: RPCOptions = defaultRPCOptions): Promise<BlockMetadata> {\n const response = await this.httpBackend.createRequest<BlockMetadata>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/metadata`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-baking-rights\n */\n async getBakingRights(\n args: BakingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BakingRightsResponse> {\n const response = await this.httpBackend.createRequest<BakingRightsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/baking_rights`),\n method: 'GET',\n query: args,\n });\n\n return response;\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-endorsing-rights\n */\n async getEndorsingRights(\n args: EndorsingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EndorsingRightsResponse> {\n const response = await this.httpBackend.createRequest<EndorsingRightsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/endorsing_rights`),\n method: 'GET',\n query: args,\n });\n\n return response;\n }\n\n /**\n * @param options contains generic configuration for rpc calls\n *\n * @description Ballots casted so far during a voting period\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballot-list\n */\n async getBallotList({ block }: RPCOptions = defaultRPCOptions): Promise<BallotListResponse> {\n const response = await this.httpBackend.createRequest<BallotListResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/ballot_list`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Sum of ballots casted so far during a voting period.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballots\n */\n async getBallots({ block }: RPCOptions = defaultRPCOptions): Promise<BallotsResponse> {\n const response = await this.httpBackend.createRequest<BallotsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/ballots`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current proposal under evaluation.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-proposal\n */\n async getCurrentProposal({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentProposalResponse> {\n const response = await this.httpBackend.createRequest<CurrentProposalResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_proposal`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current expected quorum.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-quorum\n */\n async getCurrentQuorum({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentQuorumResponse> {\n const response = await this.httpBackend.createRequest<CurrentQuorumResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_quorum`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of delegates with their voting weight, in number of rolls.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-listings\n */\n async getVotesListings({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotesListingsResponse> {\n const response = await this.httpBackend.createRequest<VotesListingsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/listings`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of proposals with number of supporters.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-proposals\n */\n async getProposals({ block }: RPCOptions = defaultRPCOptions): Promise<ProposalsResponse> {\n const response = await this.httpBackend.createRequest<ProposalsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/proposals`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param data operation contents to forge\n * @param options contains generic configuration for rpc calls\n *\n * @description Forge an operation returning the unsigned bytes\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-forge-operations\n */\n async forgeOperations(\n data: ForgeOperationsParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<string> {\n return this.httpBackend.createRequest<string>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/forge/operations`),\n method: 'POST',\n },\n data\n );\n }\n\n /**\n *\n * @param signedOpBytes signed bytes to inject\n *\n * @description Inject an operation in node and broadcast it. Returns the ID of the operation. The `signedOperationContents` should be constructed using a contextual RPCs from the latest block and signed by the client. By default, the RPC will wait for the operation to be (pre-)validated before answering. See RPCs under /blocks/prevalidation for more details on the prevalidation context.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-injection-operation\n */\n async injectOperation(signedOpBytes: string): Promise<OperationHash> {\n return this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/injection/operation`),\n method: 'POST',\n },\n signedOpBytes\n );\n }\n\n /**\n *\n * @param ops Operations to apply\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate the validation of an operation\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-preapply-operations\n */\n async preapplyOperations(\n ops: PreapplyParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse[]> {\n const response = await this.httpBackend.createRequest<PreapplyResponse[]>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/preapply/operations`),\n method: 'POST',\n },\n ops\n );\n\n return response;\n }\n\n /**\n *\n * @param contract address of the contract we want to get the entrypoints of\n *\n * @description Return the list of entrypoints of the contract\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-entrypoints\n *\n * @version 005_PsBABY5H\n */\n async getEntrypoints(\n contract: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EntrypointsResponse> {\n this.validateContract(contract);\n const contractResponse = await this.httpBackend.createRequest<{\n entrypoints: { [key: string]: MichelsonV1ExpressionExtended };\n }>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${contract}/entrypoints`\n ),\n method: 'GET',\n });\n\n return contractResponse;\n }\n\n /**\n * @param op Operation to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run an operation without signature checks\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-operation\n */\n async runOperation(\n op: RPCRunOperationParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse> {\n const response = await this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_operation`),\n method: 'POST',\n },\n op\n );\n\n return response;\n }\n\n /**\n * @param code Code to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run a piece of code in the current context\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-code\n */\n async runCode(\n code: RPCRunCodeParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunCodeResult> {\n const response = await this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_code`),\n method: 'POST',\n },\n code\n );\n\n return response;\n }\n\n /**\n * @param viewParams Parameters of the view to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate a call to a view following the TZIP-4 standard. See https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-4/tzip-4.md#view-entrypoints.\n *\n */\n async runView(\n { unparsing_mode = 'Readable', ...rest }: RPCRunViewParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunViewResult> {\n return this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_view`),\n method: 'POST',\n },\n {\n unparsing_mode,\n ...rest,\n }\n );\n }\n\n async getChainId() {\n return this.httpBackend.createRequest<string>({\n url: this.createURL(`/chains/${this.chain}/chain_id`),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param data Data to pack\n * @param options contains generic configuration for rpc calls\n *\n * @description Computes the serialized version of a data expression using the same algorithm as script instruction PACK\n * Note: You should always verify the packed bytes before signing or requesting that they be signed when using the the RPC to pack.\n * This precaution helps protect you and your applications users from RPC nodes that have been compromised.\n * A node that is operated by a bad actor, or compromised by a bad actor could return a fully formed operation that does not correspond to the input provided to the RPC endpoint.\n * A safer solution to pack and sign data would be to use the `packDataBytes` function available in the `@taquito/michel-codec` package.\n *\n * @example packData({ data: { string: \"test\" }, type: { prim: \"string\" } })\n *\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-pack-data\n */\n async packData(data: PackDataParams, { block }: RPCOptions = defaultRPCOptions) {\n const { gas, ...rest } = await this.httpBackend.createRequest<PackDataResponse>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/pack_data`),\n method: 'POST',\n },\n data\n );\n\n let formattedGas = gas;\n const tryBigNumber = new BigNumber(gas || '');\n if (!tryBigNumber.isNaN()) {\n formattedGas = tryBigNumber;\n }\n\n return { gas: formattedGas, ...rest };\n }\n\n /**\n *\n * @description Return rpc root url\n */\n\n getRpcUrl() {\n return this.url;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of current block.\n *\n * @example getCurrentPeriod() will default to current voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-period\n */\n async getCurrentPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const response = await this.httpBackend.createRequest<VotingPeriodBlockResult>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_period`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of next block.\n *\n * @example getSuccessorPeriod() will default to successor voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-successor-period\n */\n async getSuccessorPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const response = await this.httpBackend.createRequest<VotingPeriodBlockResult>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/successor_period`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param id Sapling state ID\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state ID.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-sapling-sapling-state-id-get-diff\n */\n async getSaplingDiffById(\n id: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n return this.httpBackend.createRequest<SaplingDiffResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/sapling/${id}/get_diff`),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param contract address of the contract we want to get the sapling diff\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-contracts-contract-id-single-sapling-get-diff\n */\n async getSaplingDiffByContract(\n contract: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n return this.httpBackend.createRequest<SaplingDiffResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${contract}/single_sapling_get_diff`\n ),\n method: 'GET',\n });\n }\n\n async getProtocols({ block }: { block: string } = defaultRPCOptions): Promise<ProtocolsResponse> {\n return this.httpBackend.createRequest<ProtocolsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/protocols`),\n method: 'GET',\n });\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"taquito-rpc.es6.js","sources":["../src/rpc-client-interface.ts","../src/utils/utils.ts","../src/rpc-client-modules/rpc-cache.ts","../src/types.ts","../src/opkind.ts","../src/version.ts","../src/taquito-rpc.ts"],"sourcesContent":["import { BigNumber } from 'bignumber.js';\nimport {\n BakingRightsQueryArguments,\n BakingRightsResponse,\n BalanceResponse,\n BallotListResponse,\n BallotsResponse,\n BigMapGetResponse,\n BigMapKey,\n BigMapResponse,\n BlockHeaderResponse,\n BlockMetadata,\n BlockResponse,\n ConstantsResponse,\n ContractResponse,\n CurrentProposalResponse,\n CurrentQuorumResponse,\n DelegateResponse,\n DelegatesResponse,\n EndorsingRightsQueryArguments,\n EndorsingRightsResponse,\n EntrypointsResponse,\n ForgeOperationsParams,\n ManagerKeyResponse,\n OperationHash,\n PackDataParams,\n PeriodKindResponse,\n PreapplyParams,\n PreapplyResponse,\n ProposalsResponse,\n ProtocolsResponse,\n RPCRunCodeParam,\n RPCRunOperationParam,\n RPCRunViewParam,\n RunCodeResult,\n RunViewResult,\n SaplingDiffResponse,\n ScriptResponse,\n StorageResponse,\n UnparsingMode,\n VotesListingsResponse,\n VotingPeriodBlockResult,\n} from './types';\n\nexport interface RPCOptions {\n block: string;\n}\n\nexport const defaultChain = 'main';\nexport const defaultRPCOptions: RPCOptions = { block: 'head' };\n\nexport interface RpcClientInterface {\n getBlockHash(options?: RPCOptions): Promise<string>;\n getLiveBlocks(options?: RPCOptions): Promise<string[]>;\n getBalance(address: string, options?: RPCOptions): Promise<BalanceResponse>;\n getStorage(address: string, options?: RPCOptions): Promise<StorageResponse>;\n getScript(address: string, options?: RPCOptions): Promise<ScriptResponse>;\n getNormalizedScript(\n address: string,\n unparsingMode?: UnparsingMode,\n options?: RPCOptions\n ): Promise<ScriptResponse>;\n getContract(address: string, options?: RPCOptions): Promise<ContractResponse>;\n getManagerKey(address: string, options?: RPCOptions): Promise<ManagerKeyResponse>;\n getDelegate(address: string, options?: RPCOptions): Promise<DelegateResponse>;\n getBigMapKey(address: string, key: BigMapKey, options?: RPCOptions): Promise<BigMapGetResponse>;\n getBigMapExpr(id: string, expr: string, options?: RPCOptions): Promise<BigMapResponse>;\n getDelegates(address: string, options?: RPCOptions): Promise<DelegatesResponse>;\n getConstants(options?: RPCOptions): Promise<ConstantsResponse>;\n getBlock(options?: RPCOptions): Promise<BlockResponse>;\n getBlockHeader(options?: RPCOptions): Promise<BlockHeaderResponse>;\n getBlockMetadata(options?: RPCOptions): Promise<BlockMetadata>;\n getBakingRights(\n args: BakingRightsQueryArguments,\n options?: RPCOptions\n ): Promise<BakingRightsResponse>;\n getEndorsingRights(\n args: EndorsingRightsQueryArguments,\n options?: RPCOptions\n ): Promise<EndorsingRightsResponse>;\n getBallotList(options?: RPCOptions): Promise<BallotListResponse>;\n getBallots(options?: RPCOptions): Promise<BallotsResponse>;\n getCurrentProposal(options?: RPCOptions): Promise<CurrentProposalResponse>;\n getCurrentQuorum(options?: RPCOptions): Promise<CurrentQuorumResponse>;\n getVotesListings(options?: RPCOptions): Promise<VotesListingsResponse>;\n getProposals(options?: RPCOptions): Promise<ProposalsResponse>;\n forgeOperations(data: ForgeOperationsParams, options?: RPCOptions): Promise<string>;\n injectOperation(signedOpBytes: string): Promise<OperationHash>;\n preapplyOperations(ops: PreapplyParams, options?: RPCOptions): Promise<PreapplyResponse[]>;\n getEntrypoints(contract: string, options?: RPCOptions): Promise<EntrypointsResponse>;\n runOperation(op: RPCRunOperationParam, options?: RPCOptions): Promise<PreapplyResponse>;\n runCode(code: RPCRunCodeParam, options?: RPCOptions): Promise<RunCodeResult>;\n runView(viewParams: RPCRunViewParam, options?: RPCOptions): Promise<RunViewResult>;\n getChainId(): Promise<string>;\n packData(\n data: PackDataParams,\n options?: RPCOptions\n ): Promise<{ packed: string; gas: BigNumber | 'unaccounted' | undefined }>;\n getRpcUrl(): string;\n getCurrentPeriod(options?: RPCOptions): Promise<VotingPeriodBlockResult>;\n getSuccessorPeriod(options?: RPCOptions): Promise<VotingPeriodBlockResult>;\n getSaplingDiffById(id: string, options?: RPCOptions): Promise<SaplingDiffResponse>;\n getSaplingDiffByContract(contract: string, options?: RPCOptions): Promise<SaplingDiffResponse>;\n getProtocols(options?: RPCOptions): Promise<ProtocolsResponse>;\n}\n","import BigNumber from 'bignumber.js';\n\n/**\n * Casts object/array items to BigNumber\n * @param data input object or array\n * @param keys keys for processing or all items if not defined\n *\n */\nexport function castToBigNumber(data: any, keys?: any): object {\n const returnArray: boolean = Array.isArray(data);\n if (typeof keys === 'undefined') {\n keys = Object.keys(data);\n }\n const response: any = returnArray ? [] : {};\n\n keys.forEach((key: any) => {\n const item = data[key];\n let res: any;\n if (typeof item === 'undefined') {\n return;\n }\n\n if (Array.isArray(item)) {\n res = castToBigNumber(item);\n response[key] = res;\n return;\n }\n\n res = new BigNumber(item);\n response[key] = res;\n });\n\n return response;\n}\n\n/**\n * Casts object/array BigNumber items to strings for readability\n * @param data input object or array\n * @param keys keys for processing or all items if not defined\n *\n */\nexport function castToString(data: any, keys?: any): object {\n const returnArray: boolean = Array.isArray(data);\n if (typeof keys === 'undefined') {\n keys = Object.keys(data);\n }\n const response: any = returnArray ? [] : {};\n\n keys.forEach((key: any) => {\n const item = data[key];\n\n if (typeof item === 'undefined') {\n return;\n }\n\n if (Array.isArray(item)) {\n response[key] = castToString(item);\n return;\n }\n\n if (!BigNumber.isBigNumber(item)) {\n response[key] = item;\n return;\n }\n\n response[key] = item.toString();\n });\n\n return response;\n}\n","import BigNumber from 'bignumber.js';\nimport { defaultRPCOptions, RpcClientInterface, RPCOptions } from '../rpc-client-interface';\nimport {\n BakingRightsQueryArguments,\n BakingRightsResponse,\n BalanceResponse,\n BallotListResponse,\n BallotsResponse,\n BigMapGetResponse,\n BigMapKey,\n BigMapResponse,\n BlockHeaderResponse,\n BlockMetadata,\n BlockResponse,\n ConstantsResponse,\n ContractResponse,\n CurrentProposalResponse,\n CurrentQuorumResponse,\n DelegateResponse,\n DelegatesResponse,\n EndorsingRightsQueryArguments,\n EndorsingRightsResponse,\n EntrypointsResponse,\n ForgeOperationsParams,\n ManagerKeyResponse,\n OperationHash,\n PackDataParams,\n PeriodKindResponse,\n PreapplyParams,\n PreapplyResponse,\n ProposalsResponse,\n ProtocolsResponse,\n RPCRunCodeParam,\n RPCRunOperationParam,\n RPCRunViewParam,\n RunCodeResult,\n RunViewResult,\n SaplingDiffResponse,\n ScriptResponse,\n StorageResponse,\n UnparsingMode,\n VotesListingsResponse,\n VotingPeriodBlockResult,\n} from '../types';\n\nimport {\n InvalidAddressError,\n InvalidContractAddressError,\n validateContractAddress,\n validateAddress,\n ValidationResult,\n} from '@taquito/utils';\n\ninterface CachedDataInterface {\n [key: string]: {\n handle: () => void;\n response: Promise<any>;\n };\n}\nconst defaultTtl = 1000;\n\n/***\n * @description RpcClientCache acts as a decorator over the RpcClient instance by caching responses for the period defined by the ttl.\n */\nexport class RpcClientCache implements RpcClientInterface {\n private _cache: CachedDataInterface = {};\n /**\n *\n * @param rpcClient rpcClient responsible of the interaction with Tezos network through an rpc node\n * @param ttl number representing the time to live (default 1000 milliseconds)\n *\n * @example new RpcClientCache(new RpcClient('https://mainnet.api.tez.ie/'))\n */\n constructor(private rpcClient: RpcClientInterface, private ttl = defaultTtl) {}\n\n getAllCachedData() {\n return this._cache;\n }\n /**\n * @description Remove all the data in the cache.\n *\n */\n deleteAllCachedData() {\n for (const key in this._cache) {\n delete this._cache[key];\n }\n }\n\n private formatCacheKey(\n rpcUrl: string,\n rpcMethodName: string,\n rpcMethodParams: any[],\n rpcMethodData?: any\n ) {\n let paramsToString = '';\n rpcMethodParams.forEach((param) => {\n paramsToString =\n typeof param === 'object'\n ? paramsToString + JSON.stringify(param) + '/'\n : paramsToString + param + '/';\n });\n return rpcMethodData\n ? `${rpcUrl}/${rpcMethodName}/${paramsToString}/${JSON.stringify(rpcMethodData)}`\n : `${rpcUrl}/${rpcMethodName}/${paramsToString}`;\n }\n\n private has(key: string) {\n return key in this._cache;\n }\n\n private get(key: string) {\n return this._cache[key].response;\n }\n\n private put(key: string, response: Promise<any>) {\n const handle = setTimeout(() => {\n return this.remove(key);\n }, this.ttl);\n\n Object.assign(this._cache, { [key]: { handle, response } });\n }\n\n private remove(key: string) {\n if (key in this._cache) {\n delete this._cache[key];\n }\n }\n\n private validateAddress(address: string) {\n if (validateAddress(address) !== ValidationResult.VALID) {\n throw new InvalidAddressError(`Invalid address: ${address}`);\n }\n }\n\n private validateContract(address: string) {\n if (validateContractAddress(address) !== ValidationResult.VALID) {\n throw new InvalidContractAddressError(`Invalid contract address: ${address}`);\n }\n }\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Get the block's hash, its unique identifier.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-hash\n */\n async getBlockHash({ block }: RPCOptions = defaultRPCOptions): Promise<string> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlockHash', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlockHash({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List the ancestors of the given block which, if referred to as the branch in an operation header, are recent enough for that operation to be included in the current block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-live-blocks\n */\n async getLiveBlocks({ block }: RPCOptions = defaultRPCOptions): Promise<string[]> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getLiveBlocks', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getLiveBlocks({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address address from which we want to retrieve the balance\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the balance of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-balance\n */\n async getBalance(\n address: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BalanceResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBalance', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBalance(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the storage\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-storage\n */\n async getStorage(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<StorageResponse> {\n this.validateContract(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getStorage', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getStorage(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the code and data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script\n */\n async getScript(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getScript', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getScript(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param unparsingMode default is { unparsing_mode: \"Readable\" }\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the script of the contract and normalize it using the requested unparsing mode.\n *\n */\n async getNormalizedScript(\n address: string,\n unparsingMode: UnparsingMode = { unparsing_mode: 'Readable' },\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getNormalizedScript', [\n block,\n address,\n unparsingMode,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getNormalizedScript(address, unparsingMode, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the complete status of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id\n */\n async getContract(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ContractResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getContract', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getContract(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the manager\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the manager key of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-manager-key\n */\n async getManagerKey(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ManagerKeyResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getManagerKey', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getManagerKey(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the delegate (baker)\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the delegate of a contract, if any.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-delegate\n */\n async getDelegate(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegateResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getDelegate', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getDelegate(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the big map key\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in the big map storage of the contract.\n *\n * @deprecated Deprecated in favor of getBigMapKeyByID\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get\n */\n async getBigMapKey(\n address: string,\n key: BigMapKey,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapGetResponse> {\n this.validateAddress(address);\n const keyUrl = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBigMapKey', [\n block,\n address,\n key,\n ]);\n if (this.has(keyUrl)) {\n return this.get(keyUrl);\n } else {\n const response = this.rpcClient.getBigMapKey(address, key, { block });\n this.put(keyUrl, response);\n return response;\n }\n }\n\n /**\n *\n * @param id Big Map ID\n * @param expr Expression hash to query (A b58check encoded Blake2b hash of the expression (The expression can be packed using the pack_data method))\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in a big map.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-big-maps-big-map-id-script-expr\n */\n async getBigMapExpr(\n id: string,\n expr: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBigMapExpr', [block, id, expr]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBigMapExpr(id, expr, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param address delegate address which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Fetches information about a delegate from RPC.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-delegates-pkh\n */\n async getDelegates(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegatesResponse> {\n this.validateAddress(address);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getDelegates', [block, address]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getDelegates(address, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All constants\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-constants\n */\n async getConstants({ block }: RPCOptions = defaultRPCOptions): Promise<ConstantsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getConstants', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getConstants({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls. See examples for various available sytaxes.\n *\n * @description All the information about a block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id\n * @example getBlock() will default to /main/chains/block/head.\n * @example getBlock({ block: head~2 }) will return an offset of 2 blocks.\n * @example getBlock({ block: BL8fTiWcSxWCjiMVnDkbh6EuhqVPZzgWheJ2dqwrxYRm9AephXh~2 }) will return an offset of 2 blocks from given block hash..\n */\n async getBlock({ block }: RPCOptions = defaultRPCOptions): Promise<BlockResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlock', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlock({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description The whole block header\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-header\n */\n async getBlockHeader({ block }: RPCOptions = defaultRPCOptions): Promise<BlockHeaderResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlockHeader', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlockHeader({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All the metadata associated to the block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-metadata\n */\n async getBlockMetadata({ block }: RPCOptions = defaultRPCOptions): Promise<BlockMetadata> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBlockMetadata', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBlockMetadata({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-baking-rights\n */\n async getBakingRights(\n args: BakingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BakingRightsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBakingRights', [block, args]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBakingRights(args, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-endorsing-rights\n */\n async getEndorsingRights(\n args: EndorsingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EndorsingRightsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getEndorsingRights', [\n block,\n args,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getEndorsingRights(args, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n * @param options contains generic configuration for rpc calls\n *\n * @description Ballots casted so far during a voting period\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballot-list\n */\n async getBallotList({ block }: RPCOptions = defaultRPCOptions): Promise<BallotListResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBallotList', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBallotList({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Sum of ballots casted so far during a voting period.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballots\n */\n async getBallots({ block }: RPCOptions = defaultRPCOptions): Promise<BallotsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getBallots', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getBallots({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current proposal under evaluation.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-proposal\n */\n async getCurrentProposal({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentProposalResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getCurrentProposal', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getCurrentProposal({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current expected quorum.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-quorum\n */\n async getCurrentQuorum({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentQuorumResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getCurrentQuorum', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getCurrentQuorum({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of delegates with their voting weight, in number of rolls.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-listings\n */\n async getVotesListings({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotesListingsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getVotesListings', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getVotesListings({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of proposals with number of supporters.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-proposals\n */\n async getProposals({ block }: RPCOptions = defaultRPCOptions): Promise<ProposalsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getProposals', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getProposals({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param data operation contents to forge\n * @param options contains generic configuration for rpc calls\n *\n * @description Forge an operation returning the unsigned bytes\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-forge-operations\n */\n async forgeOperations(\n data: ForgeOperationsParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<string> {\n return this.rpcClient.forgeOperations(data, { block });\n }\n\n /**\n *\n * @param signedOpBytes signed bytes to inject\n *\n * @description Inject an operation in node and broadcast it. Returns the ID of the operation. The `signedOperationContents` should be constructed using a contextual RPCs from the latest block and signed by the client. By default, the RPC will wait for the operation to be (pre-)validated before answering. See RPCs under /blocks/prevalidation for more details on the prevalidation context.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-injection-operation\n */\n async injectOperation(signedOpBytes: string): Promise<OperationHash> {\n return this.rpcClient.injectOperation(signedOpBytes);\n }\n\n /**\n *\n * @param ops Operations to apply\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate the validation of an operation\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-preapply-operations\n */\n async preapplyOperations(\n ops: PreapplyParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse[]> {\n return this.rpcClient.preapplyOperations(ops, { block });\n }\n\n /**\n *\n * @param contract address of the contract we want to get the entrypoints of\n *\n * @description Return the list of entrypoints of the contract\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-entrypoints\n *\n * @version 005_PsBABY5H\n */\n async getEntrypoints(\n contract: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EntrypointsResponse> {\n this.validateContract(contract);\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getEntrypoints', [\n block,\n contract,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getEntrypoints(contract, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n * @param op Operation to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run an operation without signature checks\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-operation\n */\n async runOperation(\n op: RPCRunOperationParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse> {\n return this.rpcClient.runOperation(op, { block });\n }\n\n /**\n * @param code Code to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run a piece of code in the current context\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-code\n */\n async runCode(\n code: RPCRunCodeParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunCodeResult> {\n return this.rpcClient.runCode(code, { block });\n }\n\n /**\n * @param viewParams Parameters of the view to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate a call to a view following the TZIP-4 standard. See https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-4/tzip-4.md#view-entrypoints.\n *\n */\n async runView(\n { unparsing_mode = 'Readable', ...rest }: RPCRunViewParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunViewResult> {\n return this.rpcClient.runView(\n {\n unparsing_mode,\n ...rest,\n },\n { block }\n );\n }\n\n async getChainId() {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getChainId', []);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getChainId();\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param data Data to pack\n * @param options contains generic configuration for rpc calls\n *\n * @description Computes the serialized version of a data expression using the same algorithm as script instruction PACK\n *\n * @example packData({ data: { string: \"test\" }, type: { prim: \"string\" } })\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-pack-data\n */\n async packData(\n data: PackDataParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<{ packed: string; gas: BigNumber | 'unaccounted' | undefined }> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'packData', [block, data]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.packData(data, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @description Return rpc root url\n */\n getRpcUrl() {\n return this.rpcClient.getRpcUrl();\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of current block.\n *\n * @example getCurrentPeriod() will default to current voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-period\n */\n async getCurrentPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getCurrentPeriod', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getCurrentPeriod({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of next block.\n *\n * @example getSuccessorPeriod() will default to successor voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-successor-period\n */\n async getSuccessorPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getSuccessorPeriod', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getSuccessorPeriod({ block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param id Sapling state ID\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state ID.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-sapling-sapling-state-id-get-diff\n */\n async getSaplingDiffById(\n id: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getSaplingDiffById', [block, id]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getSaplingDiffById(id, { block });\n this.put(key, response);\n return response;\n }\n }\n\n /**\n *\n * @param contract address of the contract we want to get the sapling diff\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-contracts-contract-id-single-sapling-get-diff\n */\n async getSaplingDiffByContract(\n contract: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getSaplingDiffByContract', [\n block,\n contract,\n ]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getSaplingDiffByContract(contract, { block });\n this.put(key, response);\n return response;\n }\n }\n\n async getProtocols({ block }: { block: string } = defaultRPCOptions): Promise<ProtocolsResponse> {\n const key = this.formatCacheKey(this.rpcClient.getRpcUrl(), 'getProtocols', [block]);\n if (this.has(key)) {\n return this.get(key);\n } else {\n const response = this.rpcClient.getProtocols({ block });\n this.put(key, response);\n return response;\n }\n }\n}\n","import BigNumber from 'bignumber.js';\nimport { OpKind } from './opkind';\n\nexport type BalanceResponse = BigNumber;\nexport type StorageResponse = ScriptedContracts['storage'];\nexport type ScriptResponse = ScriptedContracts;\nexport type BigMapGetResponse = MichelsonV1Expression;\nexport type ManagerResponse = { manager: string };\nexport type ManagerKeyResponse = string | { key: string };\nexport type DelegateResponse = string | null;\n\nexport type OperationHash = string;\n\nexport interface DelegatesResponse {\n balance?: BigNumber;\n full_balance?: BigNumber;\n current_frozen_deposits?: BigNumber;\n frozen_deposits?: BigNumber;\n frozen_balance?: BigNumber;\n frozen_balance_by_cycle?: Frozenbalancebycycle[];\n frozen_deposits_limit?: BigNumber;\n staking_balance: BigNumber;\n delegated_contracts: string[];\n delegated_balance: BigNumber;\n deactivated: boolean;\n grace_period: number;\n voting_power?: number;\n}\n\ninterface Frozenbalancebycycle {\n cycle: number;\n deposit?: BigNumber;\n deposits?: BigNumber; // Since Granada, \"deposit\" is replaced by \"deposits\"\n fees: BigNumber;\n rewards: BigNumber;\n}\n\nexport type BigMapKey = {\n key: { [key: string]: string | object[] };\n type: { prim: string; args?: object[] };\n};\n\nexport interface BlockFullHeader {\n level: number;\n proto: number;\n predecessor: string;\n timestamp: TimeStampMixed;\n validation_pass: number;\n operations_hash: string;\n fitness: string[];\n context: string;\n payload_hash?: string;\n payload_round?: number;\n priority: number;\n proof_of_work_nonce: string;\n seed_nonce_hash?: string;\n liquidity_baking_escape_vote?: boolean;\n signature: string;\n}\n\nexport type InlinedEndorsementKindEnum = OpKind.ENDORSEMENT;\n\nexport interface InlinedEndorsementContents {\n kind: InlinedEndorsementKindEnum;\n slot?: number;\n round?: number;\n block_payload_hash?: string;\n level: number;\n}\n\nexport interface InlinedPreEndorsementContents {\n kind: OpKind.PREENDORSEMENT;\n slot: number;\n level: number;\n round: number;\n block_payload_hash: string;\n}\n\nexport interface InlinedEndorsement {\n branch: string;\n operations: InlinedEndorsementContents;\n signature?: string;\n}\n\nexport interface InlinedPreEndorsement {\n branch: string;\n operations: InlinedPreEndorsementContents;\n signature?: string;\n}\n\nexport type OperationContentsBallotEnum = 'nay' | 'yay' | 'pass';\n\nexport interface OperationContentsEndorsement {\n kind: OpKind.ENDORSEMENT;\n level: number;\n slot?: number;\n round?: number;\n block_payload_hash?: string;\n}\n\nexport interface OperationContentsPreEndorsement {\n kind: OpKind.PREENDORSEMENT;\n slot: number;\n level: number;\n round: number;\n block_payload_hash: string;\n}\n\nexport interface OperationContentsDoublePreEndorsement {\n kind: OpKind.DOUBLE_PREENDORSEMENT_EVIDENCE;\n op1: InlinedPreEndorsement;\n op2: InlinedPreEndorsement;\n}\n\nexport interface OperationContentsSetDepositsLimit {\n kind: OpKind.SET_DEPOSITS_LIMIT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n limit?: string;\n}\n\nexport interface OperationContentsEndorsementWithSlot {\n kind: OpKind.ENDORSEMENT_WITH_SLOT;\n endorsement: InlinedEndorsement;\n slot: number;\n}\n\nexport interface OperationContentsFailingNoop {\n kind: OpKind.FAILING_NOOP;\n arbitrary: string;\n}\n\nexport interface OperationContentsRevelation {\n kind: OpKind.SEED_NONCE_REVELATION;\n level: number;\n nonce: string;\n}\n\nexport interface OperationContentsDoubleEndorsement {\n kind: OpKind.DOUBLE_ENDORSEMENT_EVIDENCE;\n op1: InlinedEndorsement;\n op2: InlinedEndorsement;\n slot?: number;\n}\n\nexport interface OperationContentsDoubleBaking {\n kind: OpKind.DOUBLE_BAKING_EVIDENCE;\n bh1: BlockFullHeader;\n bh2: BlockFullHeader;\n}\n\nexport interface OperationContentsActivateAccount {\n kind: OpKind.ACTIVATION;\n pkh: string;\n secret: string;\n}\n\nexport interface OperationContentsProposals {\n kind: OpKind.PROPOSALS;\n source: string;\n period: number;\n proposals: string[];\n}\n\nexport interface OperationContentsBallot {\n kind: OpKind.BALLOT;\n source: string;\n period: number;\n proposal: string;\n ballot: OperationContentsBallotEnum;\n}\n\nexport interface OperationContentsReveal {\n kind: OpKind.REVEAL;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n public_key: string;\n}\n\nexport interface OperationContentsTransaction {\n kind: OpKind.TRANSACTION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n amount: string;\n destination: string;\n parameters?: TransactionOperationParameter;\n}\n\nexport interface OperationContentsOrigination {\n kind: OpKind.ORIGINATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n balance: string;\n delegate?: string;\n script?: ScriptedContracts;\n}\n\nexport interface OperationContentsDelegation {\n kind: OpKind.DELEGATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n delegate?: string;\n}\n\nexport interface OperationContentsRegisterGlobalConstant {\n kind: OpKind.REGISTER_GLOBAL_CONSTANT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n value: MichelsonV1Expression;\n}\n\nexport type OperationContents =\n | OperationContentsEndorsement\n | OperationContentsPreEndorsement\n | OperationContentsDoublePreEndorsement\n | OperationContentsRevelation\n | OperationContentsDoubleEndorsement\n | OperationContentsDoubleBaking\n | OperationContentsActivateAccount\n | OperationContentsProposals\n | OperationContentsBallot\n | OperationContentsReveal\n | OperationContentsTransaction\n | OperationContentsOrigination\n | OperationContentsDelegation\n | OperationContentsEndorsementWithSlot\n | OperationContentsFailingNoop\n | OperationContentsRegisterGlobalConstant\n | OperationContentsSetDepositsLimit;\n\nexport interface OperationContentsAndResultMetadataExtended {\n balance_updates: OperationMetadataBalanceUpdates[];\n delegate: string;\n slots?: number[];\n endorsement_power?: number;\n}\n\nexport interface OperationContentsAndResultMetadataPreEndorsement {\n balance_updates: OperationMetadataBalanceUpdates[];\n delegate: string;\n preendorsement_power: number;\n}\n\nexport interface OperationContentsAndResultMetadataReveal {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultReveal;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataTransaction {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultTransaction;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataDelegation {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultDelegation;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataRegisterGlobalConstant {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultRegisterGlobalConstant;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadataSetDepositsLimit {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultSetDepositsLimit;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport interface OperationContentsAndResultMetadata {\n balance_updates: OperationMetadataBalanceUpdates[];\n}\n\nexport interface OperationContentsAndResultEndorsement {\n kind: OpKind.ENDORSEMENT;\n block_payload_hash?: string;\n level: number;\n round?: number;\n slot?: number;\n metadata: OperationContentsAndResultMetadataExtended;\n}\n\nexport interface OperationContentsAndResultPreEndorsement {\n kind: OpKind.PREENDORSEMENT;\n slot: number;\n level: number;\n round: number;\n block_payload_hash: string;\n metadata: OperationContentsAndResultMetadataPreEndorsement;\n}\n\nexport interface OperationContentsAndResultDoublePreEndorsement {\n kind: OpKind.DOUBLE_PREENDORSEMENT_EVIDENCE;\n op1: InlinedPreEndorsement;\n op2: InlinedPreEndorsement;\n metadata: OperationContentsAndResultMetadata;\n}\nexport interface OperationContentsAndResultEndorsementWithSlot {\n kind: OpKind.ENDORSEMENT_WITH_SLOT;\n endorsement: InlinedEndorsement;\n slot: number;\n metadata: OperationContentsAndResultMetadataExtended;\n}\n\nexport interface OperationContentsAndResultRevelation {\n kind: OpKind.SEED_NONCE_REVELATION;\n level: number;\n nonce: string;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultDoubleEndorsement {\n kind: OpKind.DOUBLE_ENDORSEMENT_EVIDENCE;\n op1: InlinedEndorsement;\n op2: InlinedEndorsement;\n slot?: number;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultDoubleBaking {\n kind: OpKind.DOUBLE_BAKING_EVIDENCE;\n bh1: BlockFullHeader;\n bh2: BlockFullHeader;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultActivateAccount {\n kind: OpKind.ACTIVATION;\n pkh: string;\n secret: string;\n metadata: OperationContentsAndResultMetadata;\n}\n\nexport interface OperationContentsAndResultProposals {\n kind: OpKind.PROPOSALS;\n source: string;\n period: number;\n proposals: string[];\n}\n\nexport interface OperationContentsAndResultBallot {\n kind: OpKind.BALLOT;\n source: string;\n period: number;\n proposal: string;\n ballot: OperationContentsBallotEnum;\n}\n\nexport interface OperationContentsAndResultReveal {\n kind: OpKind.REVEAL;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n public_key: string;\n metadata: OperationContentsAndResultMetadataReveal;\n}\n\nexport interface OperationContentsAndResultTransaction {\n kind: OpKind.TRANSACTION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n amount: string;\n destination: string;\n parameters?: TransactionOperationParameter;\n metadata: OperationContentsAndResultMetadataTransaction;\n}\n\nexport interface OperationContentsAndResultDelegation {\n kind: OpKind.DELEGATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n delegate?: string;\n metadata: OperationContentsAndResultMetadataDelegation;\n}\n\nexport interface OperationContentsAndResultRegisterGlobalConstant {\n kind: OpKind.REGISTER_GLOBAL_CONSTANT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n value: MichelsonV1Expression;\n metadata: OperationContentsAndResultMetadataRegisterGlobalConstant;\n}\n\nexport interface OperationContentsAndResultSetDepositsLimit {\n kind: OpKind.SET_DEPOSITS_LIMIT;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n limit?: string;\n metadata: OperationContentsAndResultMetadataSetDepositsLimit;\n}\n\nexport type OperationContentsAndResult =\n | OperationContentsAndResultEndorsement\n | OperationContentsAndResultPreEndorsement\n | OperationContentsAndResultDoublePreEndorsement\n | OperationContentsAndResultRevelation\n | OperationContentsAndResultDoubleEndorsement\n | OperationContentsAndResultDoubleBaking\n | OperationContentsAndResultActivateAccount\n | OperationContentsAndResultProposals\n | OperationContentsAndResultBallot\n | OperationContentsAndResultReveal\n | OperationContentsAndResultTransaction\n | OperationContentsAndResultOrigination\n | OperationContentsAndResultDelegation\n | OperationContentsAndResultEndorsementWithSlot\n | OperationContentsAndResultRegisterGlobalConstant\n | OperationContentsAndResultSetDepositsLimit;\n\nexport interface OperationEntry {\n protocol: string;\n chain_id: string;\n hash: string;\n branch: string;\n contents: (OperationContents | OperationContentsAndResult)[];\n signature?: string;\n}\n\nexport interface BlockResponse {\n protocol: string;\n chain_id: string;\n hash: string;\n header: BlockFullHeader;\n metadata: BlockMetadata;\n operations: OperationEntry[][];\n}\n\nexport type BakingRightsArgumentsDelegate = string | string[];\nexport type BakingRightsArgumentsCycle = number | number[];\nexport type BakingRightsArgumentsLevel = number | number[];\n\nexport type BakingRightsQueryArguments =\n | BakingRightsQueryArgumentsProto12\n | BakingRightsQueryArgumentsBase;\n\nexport interface BakingRightsQueryArgumentsProto12\n extends Omit<BakingRightsQueryArgumentsBase, 'max_priority'> {\n max_round?: string;\n}\nexport interface BakingRightsQueryArgumentsBase {\n level?: BakingRightsArgumentsLevel;\n cycle?: BakingRightsArgumentsCycle;\n delegate?: BakingRightsArgumentsDelegate;\n max_priority?: number;\n all?: null;\n}\n\nexport interface BakingRightsResponseItem {\n level: number;\n delegate: string;\n priority?: number;\n round?: number;\n estimated_time?: Date;\n}\n\nexport type BakingRightsResponse = BakingRightsResponseItem[];\n\nexport type EndorsingRightsArgumentsDelegate = string | string[];\nexport type EndorsingRightsArgumentsCycle = number | number[];\nexport type EndorsingRightsArgumentsLevel = number | number[];\n\nexport interface EndorsingRightsQueryArguments {\n level?: EndorsingRightsArgumentsLevel;\n cycle?: EndorsingRightsArgumentsCycle;\n delegate?: EndorsingRightsArgumentsDelegate;\n}\n\nexport interface EndorsingRightsResponseItemDelegates {\n delegate: string;\n first_slot: number;\n endorsing_power: number;\n}\nexport interface EndorsingRightsResponseItem {\n level: number;\n delegate?: string;\n delegates?: EndorsingRightsResponseItemDelegates[];\n slots?: number[];\n estimated_time?: Date;\n}\n\nexport type EndorsingRightsResponse = EndorsingRightsResponseItem[];\n\nexport type BallotListResponseEnum = 'nay' | 'yay' | 'pass';\n\nexport interface BallotListResponseItem {\n pkh: string;\n ballot: BallotListResponseEnum;\n}\n\nexport type BallotListResponse = BallotListResponseItem[];\n\nexport interface BallotsResponse {\n yay: number;\n nay: number;\n pass: number;\n}\n\nexport type PeriodKindResponse =\n | 'proposal'\n | 'testing_vote'\n | 'testing'\n | 'promotion_vote'\n | 'exploration'\n | 'cooldown'\n | 'promotion'\n | 'adoption';\n\nexport type CurrentProposalResponse = string | null;\n\nexport type CurrentQuorumResponse = number;\n\nexport interface VotesListingsResponseItem {\n pkh: string;\n rolls: number;\n}\n\nexport type VotesListingsResponse = VotesListingsResponseItem[];\n\nexport type ProposalsResponseItem = [string, number];\n\nexport type ProposalsResponse = ProposalsResponseItem[];\n\nexport interface BlockHeaderResponse {\n protocol: string;\n chain_id: string;\n hash: string;\n level: number;\n proto: number;\n predecessor: string;\n timestamp: string;\n validation_pass: number;\n operations_hash: string;\n fitness: string[];\n context: string;\n payload_hash?: string;\n payload_round?: number;\n priority?: number;\n proof_of_work_nonce: string;\n liquidity_baking_escape_vote?: boolean;\n signature: string;\n}\n\nexport interface PackDataParams {\n data: MichelsonV1Expression;\n type: MichelsonV1Expression;\n gas?: BigNumber;\n}\n\nexport type HexString = string;\n\nexport interface PackDataResponse {\n packed: HexString;\n gas?: BigNumber | 'unaccounted';\n}\n\nexport type BigMapResponse = MichelsonV1Expression | MichelsonV1Expression[];\n\nexport type SaplingDiffResponse = {\n root: SaplingTransactionCommitmentHash;\n commitments_and_ciphertexts: CommitmentsAndCiphertexts[];\n nullifiers: string[];\n};\n\nexport type SaplingTransactionCommitmentHash = string;\n\nexport type PreapplyParams = OperationObject[];\nexport type PreapplyResponse = {\n contents: OperationContentsAndResult[];\n};\n\nexport type ForgeOperationsParams = Pick<OperationObject, 'branch' | 'contents'>;\n\nexport type TimeStampMixed = Date | string;\n\nexport type BalanceUpdateKindEnum = MetadataBalanceUpdatesKindEnum;\nexport type BalanceUpdateCategoryEnum = MetadataBalanceUpdatesCategoryEnum;\n\nexport interface MichelsonV1ExpressionBase {\n int?: string;\n string?: string;\n bytes?: string;\n}\n\nexport interface MichelsonV1ExpressionExtended {\n prim: string;\n args?: MichelsonV1Expression[];\n annots?: string[];\n}\n\nexport type MichelsonV1Expression =\n | MichelsonV1ExpressionBase\n | MichelsonV1ExpressionExtended\n | MichelsonV1Expression[];\n\nexport interface ScriptedContracts {\n code: MichelsonV1Expression[];\n storage: MichelsonV1Expression;\n}\n\nexport interface OperationBalanceUpdatesItem {\n kind: BalanceUpdateKindEnum;\n category?: BalanceUpdateCategoryEnum;\n delegate?: string;\n cycle?: number;\n contract?: string;\n change: string;\n origin?: MetadataBalanceUpdatesOriginEnum;\n participation?: boolean;\n revelation?: boolean;\n committer?: string;\n}\n\nexport type OperationBalanceUpdates = OperationBalanceUpdatesItem[];\n\nexport interface OperationObject {\n branch?: string;\n contents?: OperationContents[];\n protocol?: string;\n signature?: string;\n}\n\nexport type InternalOperationResultKindEnum =\n | OpKind.REVEAL\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.DELEGATION\n | OpKind.REGISTER_GLOBAL_CONSTANT\n | OpKind.SET_DEPOSITS_LIMIT;\n\nexport type SuccessfulManagerOperationResultKindEnum =\n | OpKind.REVEAL\n | OpKind.TRANSACTION\n | OpKind.ORIGINATION\n | OpKind.DELEGATION;\n\nexport type InternalOperationResultEnum =\n | OperationResultReveal\n | OperationResultTransaction\n | OperationResultDelegation\n | OperationResultOrigination\n | OperationResultRegisterGlobalConstant\n | OperationResultSetDepositsLimit;\n\nexport interface OperationResultDelegation {\n status: OperationResultStatusEnum;\n consumed_gas?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n}\n\nexport interface OperationResultSetDepositsLimit {\n status: OperationResultStatusEnum;\n consumed_gas?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n}\n\nexport interface OperationResultRegisterGlobalConstant {\n status: OperationResultStatusEnum;\n balance_updates?: OperationBalanceUpdates;\n consumed_gas?: string;\n storage_size?: string;\n global_address?: string;\n errors?: TezosGenericOperationError[];\n}\n\nexport interface ContractBigMapDiffItem {\n key_hash?: string;\n key?: MichelsonV1Expression;\n value?: MichelsonV1Expression;\n action?: DiffActionEnum;\n big_map?: string;\n source_big_map?: string;\n destination_big_map?: string;\n key_type?: MichelsonV1Expression;\n value_type?: MichelsonV1Expression;\n}\n\nexport type ContractBigMapDiff = ContractBigMapDiffItem[];\n\nexport interface TezosGenericOperationError {\n kind: string;\n id: string;\n}\n\nexport interface OperationResultTransaction {\n status: OperationResultStatusEnum;\n storage?: MichelsonV1Expression;\n big_map_diff?: ContractBigMapDiff;\n balance_updates?: OperationBalanceUpdates;\n originated_contracts?: string[];\n consumed_gas?: string;\n storage_size?: string;\n paid_storage_size_diff?: string;\n allocated_destination_contract?: boolean;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n lazy_storage_diff?: LazyStorageDiff[];\n}\n\nexport interface OperationResultReveal {\n status: OperationResultStatusEnum;\n consumed_gas?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n}\n\nexport interface TransactionOperationParameter {\n entrypoint: string;\n value: MichelsonV1Expression;\n}\n\nexport interface InternalOperationResult {\n kind: InternalOperationResultKindEnum;\n source: string;\n nonce: number;\n amount?: string;\n destination?: string;\n parameters?: TransactionOperationParameter;\n public_key?: string;\n balance?: string;\n delegate?: string;\n script?: ScriptedContracts;\n value?: MichelsonV1Expression;\n limit?: string;\n result: InternalOperationResultEnum;\n}\n\nexport interface SuccessfulManagerOperationResult {\n kind: SuccessfulManagerOperationResultKindEnum;\n consumed_gas?: string;\n consumed_milligas?: string;\n storage?: MichelsonV1Expression;\n big_map_diff?: ContractBigMapDiff;\n balance_updates?: OperationBalanceUpdates;\n originated_contracts?: string[];\n storage_size?: string;\n paid_storage_size_diff?: string;\n lazy_storage_diff?: LazyStorageDiff[];\n}\n\nexport type MetadataBalanceUpdatesKindEnum =\n | 'contract'\n | 'freezer'\n | 'accumulator'\n | 'burned'\n | 'commitment'\n | 'minted';\n\nexport enum METADATA_BALANCE_UPDATES_CATEGORY {\n BAKING_REWARDS = 'baking rewards',\n REWARDS = 'rewards',\n FEES = 'fees',\n DEPOSITS = 'deposits',\n LEGACY_REWARDS = 'legacy_rewards',\n LEGACY_FEES = 'legacy_fees',\n LEGACY_DEPOSITS = 'legacy_deposits',\n BLOCK_FEES = 'block fees',\n NONCE_REVELATION_REWARDS = 'nonce revelation rewards',\n DOUBLE_SIGNING_EVIDENCE_REWARDS = 'double signing evidence rewards',\n ENDORSING_REWARDS = 'endorsing rewards',\n BAKING_BONUSES = 'baking bonuses',\n STORAGE_FEES = 'storage fees',\n PUNISHMENTS = 'punishments',\n LOST_ENDORSING_REWARDS = 'lost endorsing rewards',\n SUBSIDY = 'subsidy',\n BURNED = 'burned',\n COMMITMENT = 'commitment',\n BOOTSTRAP = 'bootstrap',\n INVOICE = 'invoice',\n MINTED = 'minted',\n}\nexport type MetadataBalanceUpdatesCategoryEnum = METADATA_BALANCE_UPDATES_CATEGORY;\n\nexport type MetadataBalanceUpdatesOriginEnum = 'block' | 'migration' | 'subsidy' | 'simulation';\n\nexport interface OperationMetadataBalanceUpdates {\n kind: MetadataBalanceUpdatesKindEnum;\n category?: MetadataBalanceUpdatesCategoryEnum;\n contract?: string;\n delegate?: string;\n participation?: boolean;\n revelation?: boolean;\n committer?: string;\n cycle?: number;\n change: string;\n origin?: MetadataBalanceUpdatesOriginEnum;\n}\n\nexport type OperationResultStatusEnum = 'applied' | 'failed' | 'skipped' | 'backtracked';\n\nexport type DiffActionEnum = 'update' | 'remove' | 'copy' | 'alloc';\n\nexport type LazyStorageDiff = LazyStorageDiffBigMap | LazyStorageDiffSaplingState;\n\nexport interface LazyStorageDiffBigMap {\n kind: 'big_map';\n id: string;\n diff: LazyStorageDiffBigMapItems;\n}\n\nexport interface LazyStorageDiffSaplingState {\n kind: 'sapling_state';\n id: string;\n diff: LazyStorageDiffSaplingStateItems;\n}\n\nexport interface LazyStorageDiffBigMapItems {\n action: DiffActionEnum;\n updates?: LazyStorageDiffUpdatesBigMap[];\n source?: string;\n key_type?: MichelsonV1Expression;\n value_type?: MichelsonV1Expression;\n}\n\nexport interface LazyStorageDiffSaplingStateItems {\n action: DiffActionEnum;\n updates?: LazyStorageDiffUpdatesSaplingState;\n source?: string;\n memo_size?: number;\n}\n\nexport interface LazyStorageDiffUpdatesBigMap {\n key_hash: string;\n key: MichelsonV1Expression;\n value?: MichelsonV1Expression;\n}\n\nexport type CommitmentsAndCiphertexts = [\n SaplingTransactionCommitment,\n SaplingTransactionCiphertext\n];\n\nexport type SaplingTransactionCommitment = string;\n\nexport interface LazyStorageDiffUpdatesSaplingState {\n commitments_and_ciphertexts: CommitmentsAndCiphertexts[];\n nullifiers: string[];\n}\n\nexport interface SaplingTransactionCiphertext {\n cv: string;\n epk: string;\n payload_enc: string;\n nonce_enc: string;\n payload_out: string;\n nonce_out: string;\n}\n\nexport interface OperationResultOrigination {\n status: OperationResultStatusEnum;\n big_map_diff?: ContractBigMapDiff;\n balance_updates?: OperationBalanceUpdates;\n originated_contracts?: string[];\n consumed_gas?: string;\n storage_size?: string;\n paid_storage_size_diff?: string;\n errors?: TezosGenericOperationError[];\n consumed_milligas?: string;\n lazy_storage_diff?: LazyStorageDiff[];\n}\n\nexport interface OperationContentsAndResultMetadataOrigination {\n balance_updates: OperationMetadataBalanceUpdates[];\n operation_result: OperationResultOrigination;\n internal_operation_results?: InternalOperationResult[];\n}\n\nexport type ConstantsResponse = ConstantsResponseCommon &\n ConstantsResponseProto012 &\n ConstantsResponseProto011 &\n ConstantsResponseProto010 &\n ConstantsResponseProto009 &\n ConstantsResponseProto008 &\n ConstantsResponseProto007 &\n ConstantsResponseProto006 &\n ConstantsResponseProto005 &\n ConstantsResponseProto004 &\n ConstantsResponseProto003 &\n ConstantsResponseProto001And002;\n\nexport interface ConstantsResponseCommon {\n proof_of_work_nonce_size: number;\n nonce_length: number;\n max_operation_data_length: number;\n preserved_cycles: number;\n blocks_per_cycle: number;\n blocks_per_commitment: number;\n blocks_per_roll_snapshot: number;\n blocks_per_voting_period: number;\n time_between_blocks: BigNumber[];\n endorsers_per_block: number;\n hard_gas_limit_per_operation: BigNumber;\n hard_gas_limit_per_block: BigNumber;\n proof_of_work_threshold: BigNumber;\n tokens_per_roll: BigNumber;\n michelson_maximum_type_size: number;\n seed_nonce_revelation_tip: BigNumber;\n block_security_deposit: BigNumber;\n endorsement_security_deposit: BigNumber;\n endorsement_reward: BigNumber | BigNumber[]; // BigNumber[] since proto 006, BigNumber before\n cost_per_byte: BigNumber;\n hard_storage_limit_per_operation: BigNumber;\n}\n\nexport type Ratio = { numerator: number; denominator: number };\nexport interface ConstantsResponseProto012\n extends Omit<\n ConstantsResponseProto011,\n | 'baking_reward_per_endorsement'\n | 'initial_endorsers'\n | 'delay_per_missing_endorsement'\n | 'test_chain_duration'\n | 'blocks_per_roll_snapshot'\n | 'time_between_blocks'\n | 'endorsers_per_block'\n | 'block_security_deposit'\n | 'endorsement_security_deposit'\n | 'endorsement_reward'\n > {\n blocks_per_stake_snapshot?: number;\n baking_reward_fixed_portion?: BigNumber;\n baking_reward_bonus_per_slot?: BigNumber;\n endorsing_reward_per_slot?: BigNumber;\n max_operations_time_to_live?: number;\n consensus_committee_size?: number;\n consensus_threshold?: number;\n minimal_participation_ratio?: Ratio;\n max_slashing_period?: number;\n frozen_deposits_percentage?: number;\n double_baking_punishment?: BigNumber;\n ratio_of_frozen_deposits_slashed_per_double_endorsement?: Ratio;\n delegate_selection?: 'random' | string[][];\n delay_increment_per_round?: BigNumber;\n}\n\nexport interface ConstantsResponseProto011 extends ConstantsResponseProto010 {\n max_micheline_node_count?: number;\n max_allowed_global_constants_depth?: number;\n max_micheline_bytes_limit?: number;\n cache_layout?: BigNumber[];\n}\nexport interface ConstantsResponseProto010 extends ConstantsResponseProto007 {\n minimal_block_delay?: BigNumber;\n liquidity_baking_subsidy?: BigNumber;\n liquidity_baking_sunset_level?: number;\n liquidity_baking_escape_ema_threshold?: number;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConstantsResponseProto009 extends ConstantsResponseProto007 {}\n\n// eslint-disable-next-line @typescript-eslint/no-empty-interface\nexport interface ConstantsResponseProto008 extends ConstantsResponseProto007 {}\n\nexport interface ConstantsResponseProto007\n extends Omit<ConstantsResponseProto006, 'max_revelations_per_block'> {\n max_anon_ops_per_block?: number;\n}\n\nexport interface ConstantsResponseProto006 extends Omit<ConstantsResponseProto005, 'block_reward'> {\n baking_reward_per_endorsement?: BigNumber[];\n}\n\nexport interface ConstantsResponseProto005 extends ConstantsResponseProto004 {\n quorum_min?: number;\n quorum_max?: number;\n min_proposal_quorum?: number;\n initial_endorsers?: number;\n delay_per_missing_endorsement?: BigNumber;\n}\n\nexport interface ConstantsResponseProto004 extends ConstantsResponseProto003 {\n test_chain_duration?: BigNumber;\n}\n\nexport interface ConstantsResponseProto003\n extends Omit<ConstantsResponseProto001And002, 'origination_burn'> {\n origination_size?: number;\n max_proposals_per_delegate?: number;\n}\n\nexport interface ConstantsResponseProto001And002 {\n max_revelations_per_block?: number;\n origination_burn?: string;\n block_reward?: BigNumber;\n}\n\nexport interface ContractResponse {\n balance: BigNumber;\n script: ScriptedContracts;\n counter?: string;\n delegate?: string;\n}\n\nexport interface TestChainStatus {\n status: string;\n}\n\nexport interface MaxOperationListLength {\n max_size: number;\n max_op?: number;\n}\n\nexport interface Level {\n level: number;\n level_position: number;\n cycle: number;\n cycle_position: number;\n voting_period: number;\n voting_period_position: number;\n expected_commitment: boolean;\n}\n\nexport interface LevelInfo {\n level: number;\n level_position: number;\n cycle: number;\n cycle_position: number;\n expected_commitment: boolean;\n}\n\nexport interface BlockMetadata {\n protocol: string;\n next_protocol: string;\n test_chain_status: TestChainStatus;\n max_operations_ttl: number;\n max_operation_data_length: number;\n max_block_header_length: number;\n max_operation_list_length: MaxOperationListLength[];\n proposer?: string;\n baker: string;\n level?: Level;\n level_info?: LevelInfo;\n voting_period_kind?: string;\n voting_period_info?: VotingPeriodBlockResult;\n nonce_hash?: any;\n consumed_gas: string;\n deactivated: any[];\n balance_updates: OperationBalanceUpdates;\n liquidity_baking_escape_ema?: number;\n implicit_operations_results?: SuccessfulManagerOperationResult[];\n}\n\nexport type RPCRunOperationParam = {\n operation: OperationObject;\n chain_id: string;\n};\n\nexport type RPCRunCodeParam = {\n script: MichelsonV1ExpressionExtended[];\n storage: MichelsonV1Expression;\n input: MichelsonV1Expression;\n amount: string;\n chain_id: string;\n source?: string;\n payer?: string;\n gas?: BigNumber;\n entrypoint?: string;\n balance?: string;\n};\n\nexport type RunCodeResult = {\n storage: MichelsonV1Expression;\n operations: InternalOperationResult[];\n big_map_diff?: ContractBigMapDiff;\n lazy_storage_diff?: LazyStorageDiff;\n};\n\nexport type RPCRunViewParam = {\n contract: string;\n entrypoint: string;\n input: MichelsonV1Expression;\n chain_id: string;\n source?: string;\n payer?: string;\n gas?: BigNumber;\n unparsing_mode?: UnparsingModeEnum;\n};\n\nexport type RunViewResult = {\n data: MichelsonV1Expression;\n};\n\nexport type EntrypointsResponse = {\n entrypoints: { [key: string]: MichelsonV1ExpressionExtended };\n unreachable?: { path: ('Left' | 'Right')[] };\n};\n\nexport interface OperationContentsAndResultOrigination {\n kind: OpKind.ORIGINATION;\n source: string;\n fee: string;\n counter: string;\n gas_limit: string;\n storage_limit: string;\n balance: string;\n delegate?: string;\n script?: ScriptedContracts;\n metadata: OperationContentsAndResultMetadataOrigination;\n}\n\nexport interface VotingPeriodResult {\n index: number;\n kind: PeriodKindResponse;\n start_position: number;\n}\n\nexport interface VotingPeriodBlockResult {\n voting_period: VotingPeriodResult;\n position: number;\n remaining: number;\n}\n\nexport type UnparsingModeEnum = 'Readable' | 'Optimized' | 'Optimized_legacy';\nexport type UnparsingMode = {\n unparsing_mode: UnparsingModeEnum;\n};\n\nexport type ProtocolsResponse = {\n protocol: string;\n next_protocol: string;\n};\n","export enum OpKind {\n ORIGINATION = 'origination',\n DELEGATION = 'delegation',\n REVEAL = 'reveal',\n TRANSACTION = 'transaction',\n ACTIVATION = 'activate_account',\n ENDORSEMENT = 'endorsement',\n PREENDORSEMENT = 'preendorsement',\n SET_DEPOSITS_LIMIT = 'set_deposits_limit',\n DOUBLE_PREENDORSEMENT_EVIDENCE = 'double_preendorsement_evidence',\n ENDORSEMENT_WITH_SLOT = 'endorsement_with_slot',\n SEED_NONCE_REVELATION = 'seed_nonce_revelation',\n DOUBLE_ENDORSEMENT_EVIDENCE = 'double_endorsement_evidence',\n DOUBLE_BAKING_EVIDENCE = 'double_baking_evidence',\n PROPOSALS = 'proposals',\n BALLOT = 'ballot',\n FAILING_NOOP = 'failing_noop',\n REGISTER_GLOBAL_CONSTANT = 'register_global_constant',\n}\n","\n// IMPORTANT: THIS FILE IS AUTO GENERATED! DO NOT MANUALLY EDIT OR CHECKIN!\nexport const VERSION = {\n \"commitHash\": \"8203ea7669c742797022f1b61f2577bcac50ca55\",\n \"version\": \"12.0.1\"\n};\n","/**\n * @packageDocumentation\n * @module @taquito/rpc\n */\nimport { HttpBackend, HttpResponseError, STATUS_CODE } from '@taquito/http-utils';\nimport BigNumber from 'bignumber.js';\nimport {\n defaultChain,\n defaultRPCOptions,\n RpcClientInterface,\n RPCOptions,\n} from './rpc-client-interface';\nimport {\n BakingRightsQueryArguments,\n BakingRightsResponse,\n BalanceResponse,\n BallotListResponse,\n BallotsResponse,\n BigMapGetResponse,\n BigMapKey,\n BigMapResponse,\n BlockHeaderResponse,\n BlockMetadata,\n BlockResponse,\n ConstantsResponse,\n ContractResponse,\n CurrentProposalResponse,\n CurrentQuorumResponse,\n DelegateResponse,\n DelegatesResponse,\n EndorsingRightsQueryArguments,\n EndorsingRightsResponse,\n EntrypointsResponse,\n ForgeOperationsParams,\n ManagerKeyResponse,\n MichelsonV1ExpressionExtended,\n OperationHash,\n PackDataParams,\n PackDataResponse,\n PreapplyParams,\n PreapplyResponse,\n ProposalsResponse,\n ProtocolsResponse,\n RPCRunCodeParam,\n RPCRunOperationParam,\n RPCRunViewParam,\n RunCodeResult,\n RunViewResult,\n SaplingDiffResponse,\n ScriptResponse,\n StorageResponse,\n UnparsingMode,\n VotesListingsResponse,\n VotingPeriodBlockResult,\n} from './types';\nimport { castToBigNumber } from './utils/utils';\nimport {\n InvalidAddressError,\n validateAddress,\n validateContractAddress,\n ValidationResult,\n} from '@taquito/utils';\n\nexport { castToBigNumber } from './utils/utils';\n\nexport {\n RPCOptions,\n defaultChain,\n defaultRPCOptions,\n RpcClientInterface,\n} from './rpc-client-interface';\n\nexport { RpcClientCache } from './rpc-client-modules/rpc-cache';\n\nexport * from './types';\n\nexport { OpKind } from './opkind';\n\nexport { VERSION } from './version';\n\n/***\n * @description RpcClient allows interaction with Tezos network through an rpc node\n */\nexport class RpcClient implements RpcClientInterface {\n /**\n *\n * @param url rpc root url\n * @param chain chain (default main)\n * @param httpBackend Http backend that issue http request.\n * You can override it by providing your own if you which to hook in the request/response\n *\n * @example new RpcClient('https://mainnet.api.tez.ie/', 'main') this will use https://mainnet.api.tez.ie//chains/main\n */\n constructor(\n protected url: string,\n protected chain: string = defaultChain,\n protected httpBackend: HttpBackend = new HttpBackend()\n ) {}\n\n protected createURL(path: string) {\n // Trim trailing slashes because it is assumed to be included in path\n return `${this.url.replace(/\\/+$/g, '')}${path}`;\n }\n\n private validateAddress(address: string) {\n if (validateAddress(address) !== ValidationResult.VALID) {\n throw new InvalidAddressError(`Invalid address: ${address}`);\n }\n }\n\n private validateContract(address: string) {\n if (validateContractAddress(address) !== ValidationResult.VALID) {\n throw new InvalidAddressError(`Invalid address: ${address}`);\n }\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Get the block's hash, its unique identifier.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-hash\n */\n async getBlockHash({ block }: RPCOptions = defaultRPCOptions): Promise<string> {\n const hash = await this.httpBackend.createRequest<string>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/hash`),\n method: 'GET',\n });\n return hash;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List the ancestors of the given block which, if referred to as the branch in an operation header, are recent enough for that operation to be included in the current block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-live-blocks\n */\n async getLiveBlocks({ block }: RPCOptions = defaultRPCOptions): Promise<string[]> {\n const blocks = await this.httpBackend.createRequest<string[]>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/live_blocks`),\n method: 'GET',\n });\n return blocks;\n }\n\n /**\n *\n * @param address address from which we want to retrieve the balance\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the balance of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-balance\n */\n async getBalance(\n address: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BalanceResponse> {\n this.validateAddress(address);\n const balance = await this.httpBackend.createRequest<BalanceResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/balance`\n ),\n method: 'GET',\n });\n return new BigNumber(balance);\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the storage\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-storage\n */\n async getStorage(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<StorageResponse> {\n this.validateContract(address);\n return this.httpBackend.createRequest<StorageResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/storage`\n ),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the code and data of the contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-script\n */\n async getScript(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n return this.httpBackend.createRequest<ScriptResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/script`\n ),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the script\n * @param unparsingMode default is { unparsing_mode: \"Readable\" }\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the script of the contract and normalize it using the requested unparsing mode.\n *\n */\n async getNormalizedScript(\n address: string,\n unparsingMode: UnparsingMode = { unparsing_mode: 'Readable' },\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ScriptResponse> {\n this.validateContract(address);\n return this.httpBackend.createRequest<ScriptResponse>(\n {\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/script/normalized`\n ),\n method: 'POST',\n },\n unparsingMode\n );\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the complete status of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id\n */\n async getContract(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ContractResponse> {\n this.validateAddress(address);\n const contractResponse = await this.httpBackend.createRequest<ContractResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/contracts/${address}`),\n method: 'GET',\n });\n return {\n ...contractResponse,\n balance: new BigNumber(contractResponse.balance),\n };\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the manager\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the manager key of a contract.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-manager-key\n */\n async getManagerKey(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<ManagerKeyResponse> {\n this.validateAddress(address);\n return this.httpBackend.createRequest<ManagerKeyResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/manager_key`\n ),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the delegate (baker)\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the delegate of a contract, if any.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-delegate\n */\n async getDelegate(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegateResponse> {\n this.validateAddress(address);\n let delegate: DelegateResponse;\n try {\n delegate = await this.httpBackend.createRequest<DelegateResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/delegate`\n ),\n method: 'GET',\n });\n } catch (ex) {\n if (ex instanceof HttpResponseError && ex.status === STATUS_CODE.NOT_FOUND) {\n delegate = null;\n } else {\n throw ex;\n }\n }\n return delegate;\n }\n\n /**\n *\n * @param address contract address from which we want to retrieve the big map key\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in the big map storage of the contract.\n *\n * @deprecated Deprecated in favor of getBigMapKeyByID\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-context-contracts-contract-id-big-map-get\n */\n async getBigMapKey(\n address: string,\n key: BigMapKey,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapGetResponse> {\n this.validateAddress(address);\n return this.httpBackend.createRequest<BigMapGetResponse>(\n {\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${address}/big_map_get`\n ),\n method: 'POST',\n },\n key\n );\n }\n\n /**\n *\n * @param id Big Map ID\n * @param expr Expression hash to query (A b58check encoded Blake2b hash of the expression (The expression can be packed using the pack_data method))\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a key in a big map.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-big-maps-big-map-id-script-expr\n */\n async getBigMapExpr(\n id: string,\n expr: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<BigMapResponse> {\n return this.httpBackend.createRequest<BigMapResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/big_maps/${id}/${expr}`),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param address delegate address which we want to retrieve\n * @param options contains generic configuration for rpc calls\n *\n * @description Fetches information about a delegate from RPC.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-delegates-pkh\n */\n async getDelegates(\n address: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<DelegatesResponse> {\n this.validateAddress(address);\n const response = await this.httpBackend.createRequest<DelegatesResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/delegates/${address}`),\n method: 'GET',\n });\n\n const castedResponse: any = castToBigNumber(response, [\n 'balance',\n 'full_balance',\n 'current_frozen_deposits',\n 'frozen_deposits',\n 'frozen_balance',\n 'frozen_deposits_limit',\n 'staking_balance',\n 'delegated_balance',\n ]);\n\n return {\n ...response,\n ...castedResponse,\n frozen_balance_by_cycle: response.frozen_balance_by_cycle\n ? response.frozen_balance_by_cycle.map(({ deposit, deposits, fees, rewards, ...rest }) => {\n const castedToBigNumber: any = castToBigNumber({ deposit, deposits, fees, rewards }, [\n 'deposit',\n 'deposits',\n 'fees',\n 'rewards',\n ]);\n return {\n ...rest,\n deposit: castedToBigNumber.deposit,\n deposits: castedToBigNumber.deposits,\n fees: castedToBigNumber.fees,\n rewards: castedToBigNumber.rewards,\n };\n })\n : undefined,\n };\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All constants\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-constants\n */\n async getConstants({ block }: RPCOptions = defaultRPCOptions): Promise<ConstantsResponse> {\n const response = await this.httpBackend.createRequest<ConstantsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/constants`),\n method: 'GET',\n });\n\n const castedResponse: any = castToBigNumber(response, [\n 'time_between_blocks',\n 'hard_gas_limit_per_operation',\n 'hard_gas_limit_per_block',\n 'proof_of_work_threshold',\n 'tokens_per_roll',\n 'seed_nonce_revelation_tip',\n 'block_security_deposit',\n 'endorsement_security_deposit',\n 'block_reward',\n 'endorsement_reward',\n 'cost_per_byte',\n 'hard_storage_limit_per_operation',\n 'test_chain_duration',\n 'baking_reward_per_endorsement',\n 'delay_per_missing_endorsement',\n 'minimal_block_delay',\n 'liquidity_baking_subsidy',\n 'cache_layout',\n 'baking_reward_fixed_portion',\n 'baking_reward_bonus_per_slot',\n 'endorsing_reward_per_slot',\n 'double_baking_punishment',\n 'delay_increment_per_round',\n ]);\n\n return {\n ...response,\n ...(castedResponse as ConstantsResponse),\n };\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls. See examples for various available sytaxes.\n *\n * @description All the information about a block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id\n * @example getBlock() will default to /main/chains/block/head.\n * @example getBlock({ block: head~2 }) will return an offset of 2 blocks.\n * @example getBlock({ block: BL8fTiWcSxWCjiMVnDkbh6EuhqVPZzgWheJ2dqwrxYRm9AephXh~2 }) will return an offset of 2 blocks from given block hash..\n */\n async getBlock({ block }: RPCOptions = defaultRPCOptions): Promise<BlockResponse> {\n const response = await this.httpBackend.createRequest<BlockResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description The whole block header\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-header\n */\n async getBlockHeader({ block }: RPCOptions = defaultRPCOptions): Promise<BlockHeaderResponse> {\n const response = await this.httpBackend.createRequest<BlockHeaderResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/header`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description All the metadata associated to the block\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-metadata\n */\n async getBlockMetadata({ block }: RPCOptions = defaultRPCOptions): Promise<BlockMetadata> {\n const response = await this.httpBackend.createRequest<BlockMetadata>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/metadata`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-baking-rights\n */\n async getBakingRights(\n args: BakingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<BakingRightsResponse> {\n const response = await this.httpBackend.createRequest<BakingRightsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/baking_rights`),\n method: 'GET',\n query: args,\n });\n\n return response;\n }\n\n /**\n *\n * @param args contains optional query arguments\n * @param options contains generic configuration for rpc calls\n *\n * @description Retrieves the list of delegates allowed to bake a block.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-helpers-endorsing-rights\n */\n async getEndorsingRights(\n args: EndorsingRightsQueryArguments = {},\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EndorsingRightsResponse> {\n const response = await this.httpBackend.createRequest<EndorsingRightsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/endorsing_rights`),\n method: 'GET',\n query: args,\n });\n\n return response;\n }\n\n /**\n * @param options contains generic configuration for rpc calls\n *\n * @description Ballots casted so far during a voting period\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballot-list\n */\n async getBallotList({ block }: RPCOptions = defaultRPCOptions): Promise<BallotListResponse> {\n const response = await this.httpBackend.createRequest<BallotListResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/ballot_list`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Sum of ballots casted so far during a voting period.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-ballots\n */\n async getBallots({ block }: RPCOptions = defaultRPCOptions): Promise<BallotsResponse> {\n const response = await this.httpBackend.createRequest<BallotsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/ballots`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current proposal under evaluation.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-proposal\n */\n async getCurrentProposal({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentProposalResponse> {\n const response = await this.httpBackend.createRequest<CurrentProposalResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_proposal`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Current expected quorum.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-quorum\n */\n async getCurrentQuorum({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<CurrentQuorumResponse> {\n const response = await this.httpBackend.createRequest<CurrentQuorumResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_quorum`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of delegates with their voting weight, in number of rolls.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-listings\n */\n async getVotesListings({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotesListingsResponse> {\n const response = await this.httpBackend.createRequest<VotesListingsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/listings`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description List of proposals with number of supporters.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-proposals\n */\n async getProposals({ block }: RPCOptions = defaultRPCOptions): Promise<ProposalsResponse> {\n const response = await this.httpBackend.createRequest<ProposalsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/proposals`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param data operation contents to forge\n * @param options contains generic configuration for rpc calls\n *\n * @description Forge an operation returning the unsigned bytes\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-forge-operations\n */\n async forgeOperations(\n data: ForgeOperationsParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<string> {\n return this.httpBackend.createRequest<string>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/forge/operations`),\n method: 'POST',\n },\n data\n );\n }\n\n /**\n *\n * @param signedOpBytes signed bytes to inject\n *\n * @description Inject an operation in node and broadcast it. Returns the ID of the operation. The `signedOperationContents` should be constructed using a contextual RPCs from the latest block and signed by the client. By default, the RPC will wait for the operation to be (pre-)validated before answering. See RPCs under /blocks/prevalidation for more details on the prevalidation context.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-injection-operation\n */\n async injectOperation(signedOpBytes: string): Promise<OperationHash> {\n return this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/injection/operation`),\n method: 'POST',\n },\n signedOpBytes\n );\n }\n\n /**\n *\n * @param ops Operations to apply\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate the validation of an operation\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-preapply-operations\n */\n async preapplyOperations(\n ops: PreapplyParams,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse[]> {\n const response = await this.httpBackend.createRequest<PreapplyResponse[]>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/preapply/operations`),\n method: 'POST',\n },\n ops\n );\n\n return response;\n }\n\n /**\n *\n * @param contract address of the contract we want to get the entrypoints of\n *\n * @description Return the list of entrypoints of the contract\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-context-contracts-contract-id-entrypoints\n *\n * @version 005_PsBABY5H\n */\n async getEntrypoints(\n contract: string,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<EntrypointsResponse> {\n this.validateContract(contract);\n const contractResponse = await this.httpBackend.createRequest<{\n entrypoints: { [key: string]: MichelsonV1ExpressionExtended };\n }>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${contract}/entrypoints`\n ),\n method: 'GET',\n });\n\n return contractResponse;\n }\n\n /**\n * @param op Operation to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run an operation without signature checks\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-operation\n */\n async runOperation(\n op: RPCRunOperationParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<PreapplyResponse> {\n const response = await this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_operation`),\n method: 'POST',\n },\n op\n );\n\n return response;\n }\n\n /**\n * @param code Code to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Run a piece of code in the current context\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-run-code\n */\n async runCode(\n code: RPCRunCodeParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunCodeResult> {\n const response = await this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_code`),\n method: 'POST',\n },\n code\n );\n\n return response;\n }\n\n /**\n * @param viewParams Parameters of the view to run\n * @param options contains generic configuration for rpc calls\n *\n * @description Simulate a call to a view following the TZIP-4 standard. See https://gitlab.com/tzip/tzip/-/blob/master/proposals/tzip-4/tzip-4.md#view-entrypoints.\n *\n */\n async runView(\n { unparsing_mode = 'Readable', ...rest }: RPCRunViewParam,\n { block }: RPCOptions = defaultRPCOptions\n ): Promise<RunViewResult> {\n return this.httpBackend.createRequest<any>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/run_view`),\n method: 'POST',\n },\n {\n unparsing_mode,\n ...rest,\n }\n );\n }\n\n async getChainId() {\n return this.httpBackend.createRequest<string>({\n url: this.createURL(`/chains/${this.chain}/chain_id`),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param data Data to pack\n * @param options contains generic configuration for rpc calls\n *\n * @description Computes the serialized version of a data expression using the same algorithm as script instruction PACK\n * Note: You should always verify the packed bytes before signing or requesting that they be signed when using the the RPC to pack.\n * This precaution helps protect you and your applications users from RPC nodes that have been compromised.\n * A node that is operated by a bad actor, or compromised by a bad actor could return a fully formed operation that does not correspond to the input provided to the RPC endpoint.\n * A safer solution to pack and sign data would be to use the `packDataBytes` function available in the `@taquito/michel-codec` package.\n *\n * @example packData({ data: { string: \"test\" }, type: { prim: \"string\" } })\n *\n *\n * @see https://tezos.gitlab.io/api/rpc.html#post-block-id-helpers-scripts-pack-data\n */\n async packData(data: PackDataParams, { block }: RPCOptions = defaultRPCOptions) {\n const { gas, ...rest } = await this.httpBackend.createRequest<PackDataResponse>(\n {\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/helpers/scripts/pack_data`),\n method: 'POST',\n },\n data\n );\n\n let formattedGas = gas;\n const tryBigNumber = new BigNumber(gas || '');\n if (!tryBigNumber.isNaN()) {\n formattedGas = tryBigNumber;\n }\n\n return { gas: formattedGas, ...rest };\n }\n\n /**\n *\n * @description Return rpc root url\n */\n\n getRpcUrl() {\n return this.url;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of current block.\n *\n * @example getCurrentPeriod() will default to current voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-current-period\n */\n async getCurrentPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const response = await this.httpBackend.createRequest<VotingPeriodBlockResult>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/current_period`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param options contains generic configuration for rpc calls\n *\n * @description Voting period of next block.\n *\n * @example getSuccessorPeriod() will default to successor voting period for /main/chains/block/head.\n *\n * @see https://tezos.gitlab.io/api/rpc.html#get-block-id-votes-successor-period\n */\n async getSuccessorPeriod({\n block,\n }: RPCOptions = defaultRPCOptions): Promise<VotingPeriodBlockResult> {\n const response = await this.httpBackend.createRequest<VotingPeriodBlockResult>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/votes/successor_period`),\n method: 'GET',\n });\n\n return response;\n }\n\n /**\n *\n * @param id Sapling state ID\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state ID.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-sapling-sapling-state-id-get-diff\n */\n async getSaplingDiffById(\n id: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n return this.httpBackend.createRequest<SaplingDiffResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/context/sapling/${id}/get_diff`),\n method: 'GET',\n });\n }\n\n /**\n *\n * @param contract address of the contract we want to get the sapling diff\n * @param options contains generic configuration for rpc calls\n *\n * @description Access the value associated with a sapling state.\n *\n * @see https://tezos.gitlab.io/active/rpc.html#get-block-id-context-contracts-contract-id-single-sapling-get-diff\n */\n async getSaplingDiffByContract(\n contract: string,\n { block }: { block: string } = defaultRPCOptions\n ): Promise<SaplingDiffResponse> {\n return this.httpBackend.createRequest<SaplingDiffResponse>({\n url: this.createURL(\n `/chains/${this.chain}/blocks/${block}/context/contracts/${contract}/single_sapling_get_diff`\n ),\n method: 'GET',\n });\n }\n\n async getProtocols({ block }: { block: string } = defaultRPCOptions): Promise<ProtocolsResponse> {\n return this.httpBackend.createRequest<ProtocolsResponse>({\n url: this.createURL(`/chains/${this.chain}/blocks/${block}/protocols`),\n method: 'GET',\n });\n }\n}\n"],"names":[],"mappings":"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"}
|