@sentio/sdk-bundle 2.61.0-rc.2 → 2.61.0-rc.4
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.
- package/lib/aptos/builtin/0x1.js +5 -7
- package/lib/aptos/builtin/0x3.js +6 -8
- package/lib/aptos/builtin/0x4.js +6 -8
- package/lib/aptos/builtin/index.js +7 -9
- package/lib/aptos/builtin/index.js.map +1 -1
- package/lib/aptos/ext/index.js +5 -7
- package/lib/aptos/ext/index.js.map +1 -1
- package/lib/aptos/index.js +5 -7
- package/lib/btc/index.js +2 -3
- package/lib/btc/index.js.map +1 -1
- package/lib/{chunk-OD6FL4VS.js → chunk-3U72IHGI.js} +3 -5
- package/lib/{chunk-OD6FL4VS.js.map → chunk-3U72IHGI.js.map} +1 -1
- package/lib/{chunk-4BUIMDJ2.js → chunk-63C2SM23.js} +3 -5
- package/lib/{chunk-4BUIMDJ2.js.map → chunk-63C2SM23.js.map} +1 -1
- package/lib/{chunk-43HP4DQZ.js → chunk-B4NQDXHJ.js} +51 -3
- package/lib/chunk-B4NQDXHJ.js.map +1 -0
- package/lib/{chunk-SA6EVEF3.js → chunk-FSFHO32Q.js} +8 -12
- package/lib/{chunk-SA6EVEF3.js.map → chunk-FSFHO32Q.js.map} +1 -1
- package/lib/{chunk-DHPXVIOI.js → chunk-GXWFPPVN.js} +3 -5
- package/lib/{chunk-DHPXVIOI.js.map → chunk-GXWFPPVN.js.map} +1 -1
- package/lib/{chunk-742S42NO.js → chunk-HFODIGHI.js} +449 -1
- package/lib/chunk-HFODIGHI.js.map +1 -0
- package/lib/{chunk-63RPKHNV.js → chunk-JM77GOBI.js} +5 -5
- package/lib/{chunk-GNJ4FJ6M.js → chunk-NEDO74L4.js} +2 -2
- package/lib/{chunk-AIRBHETL.js → chunk-NF66PTSR.js} +4 -4
- package/lib/{chunk-Y4VWRXPJ.js → chunk-O2FX3ST4.js} +2 -2
- package/lib/{chunk-5LEP7IFP.js → chunk-OUQN675E.js} +16 -16
- package/lib/{chunk-2UBTY7RU.js → chunk-P4MCMQEQ.js} +2 -2
- package/lib/{chunk-LP3F7TLM.js → chunk-PSLT5TLU.js} +554 -3
- package/lib/chunk-PSLT5TLU.js.map +1 -0
- package/lib/{chunk-C33DZMWZ.js → chunk-RNKAUU7M.js} +3 -3
- package/lib/{chunk-KORR4KWH.js → chunk-RQEJ6VYV.js} +1684 -267
- package/lib/chunk-RQEJ6VYV.js.map +1 -0
- package/lib/{chunk-DNXKWX3C.js → chunk-TBCNZKOI.js} +15 -15
- package/lib/{chunk-23ATGE5K.js → chunk-V7GMUFEU.js} +11 -11
- package/lib/{chunk-GQ543QK7.js → chunk-VOZ7XW36.js} +2 -2
- package/lib/{chunk-XBLI6KNQ.js → chunk-W5VWFQZQ.js} +18 -18
- package/lib/{chunk-6RTCDLBK.js → chunk-XLNIFS5I.js} +2 -2
- package/lib/eth/builtin/eacaggregatorproxy.js +2 -3
- package/lib/eth/builtin/erc1155.js +3 -4
- package/lib/eth/builtin/erc20.js +2 -3
- package/lib/eth/builtin/erc721.js +2 -3
- package/lib/eth/builtin/index.js +4 -5
- package/lib/eth/builtin/index.js.map +1 -1
- package/lib/eth/builtin/weth9.js +3 -4
- package/lib/eth/index.js +2 -3
- package/lib/fuel/index.js +2 -3
- package/lib/iota/builtin/0x1.js +11 -6
- package/lib/iota/builtin/0x2.js +12 -7
- package/lib/iota/builtin/0x3.js +13 -8
- package/lib/iota/builtin/index.js +13 -8
- package/lib/iota/builtin/index.js.map +1 -1
- package/lib/iota/ext/index.js +5 -8
- package/lib/iota/ext/index.js.map +1 -1
- package/lib/iota/index.js +10 -5
- package/lib/stark/index.js +2 -4
- package/lib/stark/index.js.map +1 -1
- package/lib/sui/builtin/0x1.js +9 -13
- package/lib/sui/builtin/0x2.js +10 -14
- package/lib/sui/builtin/0x3.js +11 -15
- package/lib/sui/builtin/index.js +11 -15
- package/lib/sui/builtin/index.js.map +1 -1
- package/lib/sui/ext/index.js +5 -7
- package/lib/sui/ext/index.js.map +1 -1
- package/lib/sui/index.js +10 -14
- package/lib/testing/index.js +18 -23
- package/lib/testing/index.js.map +1 -1
- package/lib/utils/index.js +2 -3
- package/package.json +2 -2
- package/lib/chunk-43HP4DQZ.js.map +0 -1
- package/lib/chunk-742S42NO.js.map +0 -1
- package/lib/chunk-KORR4KWH.js.map +0 -1
- package/lib/chunk-LP3F7TLM.js.map +0 -1
- package/lib/chunk-OZTZ5YWM.js +0 -456
- package/lib/chunk-OZTZ5YWM.js.map +0 -1
- package/lib/chunk-P7O6NN6M.js +0 -562
- package/lib/chunk-P7O6NN6M.js.map +0 -1
- package/lib/chunk-XEXUSO2Q.js +0 -1469
- package/lib/chunk-XEXUSO2Q.js.map +0 -1
- package/lib/chunk-Z2CE3JTO.js +0 -56
- package/lib/chunk-Z2CE3JTO.js.map +0 -1
- /package/lib/{chunk-63RPKHNV.js.map → chunk-JM77GOBI.js.map} +0 -0
- /package/lib/{chunk-GNJ4FJ6M.js.map → chunk-NEDO74L4.js.map} +0 -0
- /package/lib/{chunk-AIRBHETL.js.map → chunk-NF66PTSR.js.map} +0 -0
- /package/lib/{chunk-Y4VWRXPJ.js.map → chunk-O2FX3ST4.js.map} +0 -0
- /package/lib/{chunk-5LEP7IFP.js.map → chunk-OUQN675E.js.map} +0 -0
- /package/lib/{chunk-2UBTY7RU.js.map → chunk-P4MCMQEQ.js.map} +0 -0
- /package/lib/{chunk-C33DZMWZ.js.map → chunk-RNKAUU7M.js.map} +0 -0
- /package/lib/{chunk-DNXKWX3C.js.map → chunk-TBCNZKOI.js.map} +0 -0
- /package/lib/{chunk-23ATGE5K.js.map → chunk-V7GMUFEU.js.map} +0 -0
- /package/lib/{chunk-GQ543QK7.js.map → chunk-VOZ7XW36.js.map} +0 -0
- /package/lib/{chunk-XBLI6KNQ.js.map → chunk-W5VWFQZQ.js.map} +0 -0
- /package/lib/{chunk-6RTCDLBK.js.map → chunk-XLNIFS5I.js.map} +0 -0
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { createRequire as createRequireSdkShim } from 'module'; const require = createRequireSdkShim(import.meta.url);
|
|
2
2
|
import {
|
|
3
|
-
HandlerRegister
|
|
4
|
-
} from "./chunk-Z2CE3JTO.js";
|
|
5
|
-
import {
|
|
3
|
+
HandlerRegister,
|
|
6
4
|
getHandlerName,
|
|
7
5
|
proxyProcessor
|
|
8
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-B4NQDXHJ.js";
|
|
9
7
|
import {
|
|
10
8
|
BTCTransactionFilter_Condition,
|
|
11
9
|
BTCTransactionFilter_Filter,
|
|
@@ -527,4 +525,4 @@ export {
|
|
|
527
525
|
filters2Proto,
|
|
528
526
|
BTCPlugin
|
|
529
527
|
};
|
|
530
|
-
//# sourceMappingURL=chunk-
|
|
528
|
+
//# sourceMappingURL=chunk-GXWFPPVN.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/btc/types.ts","../src/btc/btc-processor.ts","../src/btc/filter.ts","../src/btc/btc-plugin.ts"],"sourcesContent":["import { BaseContext, Labels, normalizeLabels } from '../core/index.js'\nimport { Data_BTCBlock, HandleInterval, ProcessResult, RecordMetaData } from '@sentio/protos'\nimport { ChainId } from '@sentio/chain'\n\nexport type Transaction = {\n txid: string\n hash: string\n txindex: number\n blockhash: string\n blockheight: number\n blocktime: number\n size: number\n vsize: number\n version: number\n locktime: number\n vin: Vin[]\n vout: Vout[]\n}\n\nexport type Vin = {\n vin_index: number\n coinbase?: string\n txid?: string\n vout?: number\n sequence: number\n witness?: string[]\n scriptSig: {\n asm: string\n hex: string\n }\n pre_vout?: Vout\n pre_transaction?: Transaction\n}\n\nexport type Vout = {\n value: number\n n: number\n scriptPubKey: {\n asm: string\n hex: string\n reqSigs: number\n type: string\n address: string\n }\n}\n\nexport type BTCBlock = {\n hash: string\n confirmations: number\n strippedsize: number\n size: number\n weight: number\n height: number\n version: number\n merkleroot: string\n tx?: Transaction[]\n time: number\n nonce: number\n bits: string\n difficulty: number\n previousblockhash: string\n nextblockhash: string\n}\n\nexport class BTCContext extends BaseContext {\n constructor(\n readonly chainId: string,\n readonly name: string,\n readonly tx: Transaction,\n readonly address: string\n ) {\n super({})\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.name,\n blockNumber: BigInt(this.tx.blockheight ?? 0),\n transactionIndex: 0,\n transactionHash: this.tx.txid,\n chainId: this.getChainId(),\n name: name,\n logIndex: 0,\n labels: normalizeLabels(labels)\n }\n }\n\n getChainId(): ChainId {\n return this.chainId as ChainId\n }\n}\n\nexport class BTCBlockContext extends BaseContext {\n constructor(\n readonly chainId: string,\n readonly name: string,\n readonly block: BTCBlock,\n readonly address?: string\n ) {\n super({})\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address ?? '',\n contractName: this.name,\n blockNumber: BigInt(this.block.height ?? 0),\n transactionIndex: 0,\n transactionHash: '',\n chainId: this.getChainId(),\n name: name,\n logIndex: 0,\n labels: normalizeLabels(labels)\n }\n }\n\n getChainId(): ChainId {\n return this.chainId as ChainId\n }\n}\n\nexport type BlockHandler = {\n blockInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (block: Data_BTCBlock) => Promise<ProcessResult>\n handlerName: string\n fetchConfig?: BTCOnIntervalFetchConfig\n partitionHandler?: (block: Data_BTCBlock) => Promise<string | undefined>\n}\n\nexport type BTCOnIntervalFetchConfig = {\n getTransactions?: boolean\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { ListStateStorage } from '@sentio/runtime'\nimport { BlockHandler, BTCBlock, BTCBlockContext, BTCContext, BTCOnIntervalFetchConfig, Transaction } from './types.js'\nimport { Data_BTCBlock, Data_BTCTransaction, HandleInterval, ProcessResult } from '@sentio/protos'\nimport { TransactionFilters } from './filter.js'\nimport { HandlerOptions, PromiseOrVoid } from '../core/index.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nexport class BTCProcessorState extends ListStateStorage<BTCProcessor> {\n static INSTANCE = new BTCProcessorState()\n}\n\nexport class BTCProcessor {\n callHandlers: CallHandler<Data_BTCTransaction>[] = []\n blockHandlers: BlockHandler[] = []\n\n constructor(readonly config: BTCProcessorConfig) {\n return proxyProcessor(this)\n }\n\n static bind(config: BTCProcessorConfig): BTCProcessor {\n const processor = new BTCProcessor(config)\n BTCProcessorState.INSTANCE.addValue(processor)\n return processor\n }\n\n public onTransaction(\n handler: (transaction: Transaction, ctx: BTCContext) => void | Promise<void>,\n filter?: TransactionFilters,\n handlerOptions?: HandlerOptions<object, Transaction>\n ) {\n const callHandler = {\n handlerName: getHandlerName(),\n handler: async (call: Data_BTCTransaction) => {\n const tx = call.transaction as Transaction\n\n const ctx = new BTCContext(\n this.config.chainId,\n this.config.name ?? this.config.address ?? '',\n tx,\n this.config.address ?? tx.vout?.[0]?.scriptPubKey?.address\n )\n await handler(tx, ctx)\n return ctx.stopAndGetResult()\n },\n filter,\n partitionHandler: async (call: Data_BTCTransaction): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const tx = call.transaction as Transaction\n return p(tx)\n }\n return p\n }\n }\n this.callHandlers.push(callHandler)\n return this\n }\n\n public onInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n blockInterval: HandleInterval | undefined,\n handlerOptions?: HandlerOptions<BTCOnIntervalFetchConfig, BTCBlock>\n ): this {\n if (timeInterval) {\n if (timeInterval.backfillInterval < timeInterval.recentInterval) {\n timeInterval.backfillInterval = timeInterval.recentInterval\n }\n }\n\n const processor = this\n\n this.blockHandlers.push({\n blockInterval,\n timeIntervalInMinutes: timeInterval,\n handlerName: getHandlerName(),\n handler: async function (data: Data_BTCBlock) {\n const header = data.block\n if (!header) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Block is empty')\n }\n\n const block = {\n ...header\n } as BTCBlock\n if (handlerOptions?.getTransactions) {\n block.tx = header.rawtx?.map((tx: any) => tx as Transaction)\n }\n\n const ctx = new BTCBlockContext(\n processor.config.chainId,\n processor.config.name ?? processor.config.address ?? '',\n block,\n processor.config.address\n )\n await handler(block, ctx)\n return ctx.stopAndGetResult()\n },\n fetchConfig: handlerOptions,\n partitionHandler: async (data: Data_BTCBlock): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const header = data.block\n if (!header) return undefined\n const block = { ...header } as BTCBlock\n if (handlerOptions?.getTransactions) {\n block.tx = header.rawtx?.map((tx: any) => tx as Transaction)\n }\n return p(block)\n }\n return p\n }\n })\n return this\n }\n\n public onBlockInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n blockInterval = 250,\n backfillBlockInterval = 1000,\n handlerOptions?: HandlerOptions<BTCOnIntervalFetchConfig, BTCBlock>\n ): this {\n return this.onInterval(\n handler,\n undefined,\n {\n recentInterval: blockInterval,\n backfillInterval: backfillBlockInterval\n },\n handlerOptions\n )\n }\n\n public onTimeInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n handlerOptions?: HandlerOptions<BTCOnIntervalFetchConfig, BTCBlock>\n ): this {\n return this.onInterval(\n handler,\n { recentInterval: timeIntervalInMinutes, backfillInterval: backfillTimeIntervalInMinutes },\n undefined,\n handlerOptions\n )\n }\n}\n\ninterface BTCProcessorConfig {\n chainId: string\n name?: string\n address?: string\n startBlock?: bigint\n endBlock?: bigint\n}\n\nexport type CallHandler<T> = {\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n filter?: TransactionFilters\n partitionHandler?: (call: T) => Promise<string | undefined>\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n BTCTransactionFilter,\n BTCTransactionFilter_Condition,\n BTCTransactionFilter_Filter,\n BTCTransactionFilter_Filters,\n BTCTransactionFilter_VinFilter,\n BTCTransactionFilter_VOutFilter\n} from '@sentio/protos'\nimport { serializeRichValue } from '../store/util.js'\nimport { BigDecimal } from '@sentio/bigdecimal'\nimport { Transaction, Vin, Vout } from './types.js'\n\nexport type TransactionFields = keyof Omit<Transaction, 'vin' | 'vout'>\n\nexport type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction' | 'scriptSig'> | 'script_asm' | 'script_hex'\n\nexport type VOutFields =\n | keyof Omit<Vout, 'scriptPubKey'>\n | 'script_asm'\n | 'script_hex'\n | 'script_type'\n | 'script_address'\n\nexport type Filter<F extends string> = {\n [K in F]?: Condition | Comparable\n}\n\nexport type Condition = {\n eq?: Comparable\n gt?: Comparable\n gte?: Comparable\n lt?: Comparable\n lte?: Comparable\n ne?: Comparable\n // string has the prefix\n prefix?: string\n // string contains\n contains?: string\n notContains?: string\n length?: number\n lengthGt?: number\n lengthLt?: number\n // array contains any of the values\n hasAny?: Array<Comparable>\n // array contains all the values\n hasAll?: Array<Comparable>\n in?: Array<Comparable>\n}\n\nexport type Filters<T extends string> = Filter<T> | Filter<T>[]\n\nexport type VinFilter = Filter<VinFields> & {\n preVOut?: Filter<VOutFields>\n preTransaction?: {\n filter?: Array<Filter<TransactionFields>>\n outputFilter?: Filters<VOutFields>\n // can't have inputFilter here, we can only support one level of nesting\n }\n}\n\nexport type VOutFilter = Filter<VOutFields>\n\nexport type TransactionFilter = {\n inputFilter?: VinFilter | VinFilter[]\n outputFilter?: VOutFilter | VOutFilter[]\n filter?: Array<Filter<TransactionFields>>\n}\n\nexport type Comparable = number | BigDecimal | bigint | Date | string | boolean\n\nexport type TransactionFilters = TransactionFilter | TransactionFilter[]\n\nfunction toVinFilter(inputFilter?: VinFilter | VinFilter[]): BTCTransactionFilter_VinFilter | undefined {\n if (inputFilter) {\n const ret = BTCTransactionFilter_VinFilter.create()\n const filters = []\n const vouts: Filter<VOutFields>[] = []\n const txs: TransactionFilters = []\n\n for (const f of Array.isArray(inputFilter) ? inputFilter : [inputFilter]) {\n const { preVOut, preTransaction, ...rest } = f\n filters.push(rest)\n if (preVOut) {\n vouts.push(preVOut)\n }\n if (preTransaction) {\n txs.push(preTransaction)\n }\n }\n ret.filters = BTCTransactionFilter_Filters.create({\n filters: convertFilters(filters)\n })\n\n if (vouts.length > 0) {\n const voutFilters = convertFilters(vouts)\n if (voutFilters && voutFilters.length > 0) {\n ret.preVOut = voutFilters[0]\n }\n }\n if (txs.length > 0) {\n ret.preTransaction = filters2Proto(txs)?.[0]\n }\n\n return ret\n }\n\n return undefined\n}\n\nfunction toVOutFilter(outputFilter?: VOutFilter | VOutFilter[]): BTCTransactionFilter_VOutFilter | undefined {\n if (outputFilter) {\n const ret = BTCTransactionFilter_VOutFilter.create()\n const filters = Array.isArray(outputFilter) ? outputFilter : ([outputFilter] as Filter<VOutFields>[])\n ret.filters = BTCTransactionFilter_Filters.create({\n filters: convertFilters(filters)\n })\n\n return ret\n }\n return undefined\n}\n\nexport function filters2Proto(filter: TransactionFilters): BTCTransactionFilter[] {\n const filters = Array.isArray(filter) ? filter : [filter]\n return filters.map((f) => {\n return {\n filter: convertFilters(f.filter),\n inputFilter: toVinFilter(f.inputFilter),\n outputFilter: toVOutFilter(f.outputFilter)\n } as BTCTransactionFilter\n })\n}\n\nfunction toCondition(value: Condition | Comparable): BTCTransactionFilter_Condition {\n const ret: BTCTransactionFilter_Condition = BTCTransactionFilter_Condition.create()\n if (value instanceof Date) {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'number') {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'string') {\n ret.eq = serializeRichValue(value)\n }\n if (value instanceof BigDecimal) {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'bigint') {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'boolean') {\n ret.eq = serializeRichValue(value)\n }\n if (Array.isArray(value)) {\n ret.in = { values: value.map((v) => serializeRichValue(v)) }\n }\n\n for (const [k, v] of Object.entries(value)) {\n switch (k) {\n case 'prefix':\n case 'contains':\n case 'notContains':\n ret[k] = v.toString()\n break\n case 'length':\n ret['lengthEq'] = v\n break\n case 'lengthGt':\n case 'lengthLt':\n ret[k] = v\n break\n case 'hasAny':\n case 'hasAll':\n case 'in':\n ret[k] = { values: v.map((v: any) => serializeRichValue(v)) }\n break\n case 'eq':\n case 'gt':\n case 'gte':\n case 'lt':\n case 'lte':\n case 'ne':\n ret[k] = serializeRichValue(v)\n break\n default:\n throw new Error('Unknown condition op: ' + k)\n }\n }\n\n return ret\n}\n\nfunction convertFilters<T extends string>(filters?: Array<Filter<T>>): BTCTransactionFilter_Filter[] | undefined {\n if (filters && filters.length > 0) {\n const ret: BTCTransactionFilter_Filter[] = []\n for (const filter of filters) {\n const f: BTCTransactionFilter_Filter = BTCTransactionFilter_Filter.create()\n for (const [key, value] of Object.entries(filter)) {\n f.conditions[key] = toCondition(value as any)\n }\n ret.push(f)\n }\n return ret\n }\n return []\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport {\n ContractConfig,\n DataBinding,\n HandlerType,\n InitResponse,\n ProcessConfigResponse,\n ProcessResult,\n ProcessStreamResponse_Partitions,\n StartRequest\n} from '@sentio/protos'\n\nimport { ServerError, Status } from 'nice-grpc'\nimport { PartitionHandlerManager } from '../core/index.js'\nimport { HandlerRegister } from '../core/handler-register.js'\nimport { TemplateInstanceState } from '../core/template.js'\nimport { BTCProcessorState } from './btc-processor.js'\nimport { filters2Proto, TransactionFilter } from './filter.js'\n\nexport class BTCPlugin extends Plugin {\n name: string = 'BTCPlugin'\n handlerRegister = new HandlerRegister()\n partitionManager = new PartitionHandlerManager()\n\n async init(config: InitResponse) {\n for (const aptosProcessor of BTCProcessorState.INSTANCE.getValues()) {\n const chainId = aptosProcessor.config.chainId\n config.chainIds.push(chainId)\n }\n }\n\n async configure(config: ProcessConfigResponse, forChainId?: string) {\n this.handlerRegister.clear(forChainId as any)\n\n for (const processor of BTCProcessorState.INSTANCE.getValues()) {\n const chainId = processor.config.chainId\n if (forChainId !== undefined && forChainId !== chainId.toString()) {\n continue\n }\n const contractConfig = ContractConfig.fromPartial({\n processorType: USER_PROCESSOR,\n contract: {\n name: processor.config.name,\n chainId: processor.config.chainId.toString(),\n address: processor.config.address || '*',\n abi: ''\n },\n startBlock: processor.config.startBlock,\n endBlock: processor.config.endBlock\n })\n for (const callHandler of processor.callHandlers) {\n const handlerId = this.handlerRegister.register(callHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(\n HandlerType.BTC_TRANSACTION,\n handlerId,\n callHandler.partitionHandler\n )\n const handlerName = callHandler.handlerName\n\n if (callHandler.filter) {\n contractConfig.btcTransactionConfigs.push({\n filters: filters2Proto(callHandler.filter),\n handlerId,\n handlerName\n })\n } else if (contractConfig.contract?.address != '*') {\n contractConfig.btcTransactionConfigs.push({\n filters: filters2Proto({\n outputFilter: {\n script_address: processor.config.address\n }\n } as TransactionFilter),\n handlerId,\n handlerName\n })\n }\n }\n\n for (const blockHandler of processor.blockHandlers) {\n const handlerId = this.handlerRegister.register(blockHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(HandlerType.BTC_BLOCK, handlerId, blockHandler.partitionHandler)\n contractConfig.intervalConfigs.push({\n slot: 0,\n slotInterval: blockHandler.blockInterval,\n minutes: 0,\n minutesInterval: blockHandler.timeIntervalInMinutes,\n handlerId,\n handlerName: blockHandler.handlerName,\n fetchConfig: {\n transaction: blockHandler.fetchConfig?.getTransactions ?? false,\n trace: false,\n block: true,\n transactionReceipt: false,\n transactionReceiptLogs: false\n }\n })\n }\n\n // Finish up a contract\n config.contractConfigs.push(contractConfig)\n }\n }\n\n supportedHandlers = [HandlerType.BTC_TRANSACTION, HandlerType.BTC_BLOCK]\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.BTC_TRANSACTION:\n return this.processTransaction(request)\n case HandlerType.BTC_BLOCK:\n return this.processBlock(request)\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n }\n\n async partition(request: DataBinding): Promise<ProcessStreamResponse_Partitions> {\n let data: any\n switch (request.handlerType) {\n case HandlerType.BTC_TRANSACTION:\n if (!request.data?.btcTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"btcTransaction can't be empty\")\n }\n data = request.data.btcTransaction\n break\n case HandlerType.BTC_BLOCK:\n if (!request.data?.btcBlock) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"btcBlock can't be empty\")\n }\n data = request.data.btcBlock\n break\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n const partitions = await this.partitionManager.processPartitionForHandlerType(\n request.handlerType,\n request.handlerIds,\n data\n )\n return {\n partitions\n }\n }\n\n async start(request: StartRequest) {}\n\n stateDiff(config: ProcessConfigResponse): boolean {\n return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length\n }\n\n async processTransaction(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.btcTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"BTCEvents can't be null\")\n }\n\n const promises: Promise<ProcessResult>[] = []\n\n const result = binding.data?.btcTransaction\n\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n binding.chainId,\n handlerId\n )(binding.data?.btcTransaction)\n .catch((e: any) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing transaction: ' + JSON.stringify(result) + '\\n' + errorString(e)\n )\n })\n if (GLOBAL_CONFIG.execution.sequential) {\n await promise\n }\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n private async processBlock(request: DataBinding) {\n if (!request.data?.btcBlock) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Block can't be empty\")\n }\n\n const block = request.data.btcBlock\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of request.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n request.chainId,\n handlerId\n )(block)\n .catch((e: any) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing block: ' + JSON.stringify(block) + '\\n' + errorString(e)\n )\n })\n if (GLOBAL_CONFIG.execution.sequential) {\n await promise\n }\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n}\n\nPluginManager.INSTANCE.register(new BTCPlugin())\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":"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","names":["v","import_nice_grpc"]}
|
|
1
|
+
{"version":3,"sources":["../src/btc/types.ts","../src/btc/btc-processor.ts","../src/btc/filter.ts","../src/btc/btc-plugin.ts"],"sourcesContent":["import { BaseContext, Labels, normalizeLabels } from '../core/index.js'\nimport { Data_BTCBlock, HandleInterval, ProcessResult, RecordMetaData } from '@sentio/protos'\nimport { ChainId } from '@sentio/chain'\n\nexport type Transaction = {\n txid: string\n hash: string\n txindex: number\n blockhash: string\n blockheight: number\n blocktime: number\n size: number\n vsize: number\n version: number\n locktime: number\n vin: Vin[]\n vout: Vout[]\n}\n\nexport type Vin = {\n vin_index: number\n coinbase?: string\n txid?: string\n vout?: number\n sequence: number\n witness?: string[]\n scriptSig: {\n asm: string\n hex: string\n }\n pre_vout?: Vout\n pre_transaction?: Transaction\n}\n\nexport type Vout = {\n value: number\n n: number\n scriptPubKey: {\n asm: string\n hex: string\n reqSigs: number\n type: string\n address: string\n }\n}\n\nexport type BTCBlock = {\n hash: string\n confirmations: number\n strippedsize: number\n size: number\n weight: number\n height: number\n version: number\n merkleroot: string\n tx?: Transaction[]\n time: number\n nonce: number\n bits: string\n difficulty: number\n previousblockhash: string\n nextblockhash: string\n}\n\nexport class BTCContext extends BaseContext {\n constructor(\n readonly chainId: string,\n readonly name: string,\n readonly tx: Transaction,\n readonly address: string\n ) {\n super({})\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address,\n contractName: this.name,\n blockNumber: BigInt(this.tx.blockheight ?? 0),\n transactionIndex: 0,\n transactionHash: this.tx.txid,\n chainId: this.getChainId(),\n name: name,\n logIndex: 0,\n labels: normalizeLabels(labels)\n }\n }\n\n getChainId(): ChainId {\n return this.chainId as ChainId\n }\n}\n\nexport class BTCBlockContext extends BaseContext {\n constructor(\n readonly chainId: string,\n readonly name: string,\n readonly block: BTCBlock,\n readonly address?: string\n ) {\n super({})\n }\n\n protected getMetaDataInternal(name: string, labels: Labels): RecordMetaData {\n return {\n address: this.address ?? '',\n contractName: this.name,\n blockNumber: BigInt(this.block.height ?? 0),\n transactionIndex: 0,\n transactionHash: '',\n chainId: this.getChainId(),\n name: name,\n logIndex: 0,\n labels: normalizeLabels(labels)\n }\n }\n\n getChainId(): ChainId {\n return this.chainId as ChainId\n }\n}\n\nexport type BlockHandler = {\n blockInterval?: HandleInterval\n timeIntervalInMinutes?: HandleInterval\n handler: (block: Data_BTCBlock) => Promise<ProcessResult>\n handlerName: string\n fetchConfig?: BTCOnIntervalFetchConfig\n partitionHandler?: (block: Data_BTCBlock) => Promise<string | undefined>\n}\n\nexport type BTCOnIntervalFetchConfig = {\n getTransactions?: boolean\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { ListStateStorage } from '@sentio/runtime'\nimport { BlockHandler, BTCBlock, BTCBlockContext, BTCContext, BTCOnIntervalFetchConfig, Transaction } from './types.js'\nimport { Data_BTCBlock, Data_BTCTransaction, HandleInterval, ProcessResult } from '@sentio/protos'\nimport { TransactionFilters } from './filter.js'\nimport { HandlerOptions, PromiseOrVoid } from '../core/index.js'\nimport { ServerError, Status } from 'nice-grpc'\nimport { getHandlerName, proxyProcessor } from '../utils/metrics.js'\n\nexport class BTCProcessorState extends ListStateStorage<BTCProcessor> {\n static INSTANCE = new BTCProcessorState()\n}\n\nexport class BTCProcessor {\n callHandlers: CallHandler<Data_BTCTransaction>[] = []\n blockHandlers: BlockHandler[] = []\n\n constructor(readonly config: BTCProcessorConfig) {\n return proxyProcessor(this)\n }\n\n static bind(config: BTCProcessorConfig): BTCProcessor {\n const processor = new BTCProcessor(config)\n BTCProcessorState.INSTANCE.addValue(processor)\n return processor\n }\n\n public onTransaction(\n handler: (transaction: Transaction, ctx: BTCContext) => void | Promise<void>,\n filter?: TransactionFilters,\n handlerOptions?: HandlerOptions<object, Transaction>\n ) {\n const callHandler = {\n handlerName: getHandlerName(),\n handler: async (call: Data_BTCTransaction) => {\n const tx = call.transaction as Transaction\n\n const ctx = new BTCContext(\n this.config.chainId,\n this.config.name ?? this.config.address ?? '',\n tx,\n this.config.address ?? tx.vout?.[0]?.scriptPubKey?.address\n )\n await handler(tx, ctx)\n return ctx.stopAndGetResult()\n },\n filter,\n partitionHandler: async (call: Data_BTCTransaction): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const tx = call.transaction as Transaction\n return p(tx)\n }\n return p\n }\n }\n this.callHandlers.push(callHandler)\n return this\n }\n\n public onInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n timeInterval: HandleInterval | undefined,\n blockInterval: HandleInterval | undefined,\n handlerOptions?: HandlerOptions<BTCOnIntervalFetchConfig, BTCBlock>\n ): this {\n if (timeInterval) {\n if (timeInterval.backfillInterval < timeInterval.recentInterval) {\n timeInterval.backfillInterval = timeInterval.recentInterval\n }\n }\n\n const processor = this\n\n this.blockHandlers.push({\n blockInterval,\n timeIntervalInMinutes: timeInterval,\n handlerName: getHandlerName(),\n handler: async function (data: Data_BTCBlock) {\n const header = data.block\n if (!header) {\n throw new ServerError(Status.INVALID_ARGUMENT, 'Block is empty')\n }\n\n const block = {\n ...header\n } as BTCBlock\n if (handlerOptions?.getTransactions) {\n block.tx = header.rawtx?.map((tx: any) => tx as Transaction)\n }\n\n const ctx = new BTCBlockContext(\n processor.config.chainId,\n processor.config.name ?? processor.config.address ?? '',\n block,\n processor.config.address\n )\n await handler(block, ctx)\n return ctx.stopAndGetResult()\n },\n fetchConfig: handlerOptions,\n partitionHandler: async (data: Data_BTCBlock): Promise<string | undefined> => {\n const p = handlerOptions?.partitionKey\n if (!p) return undefined\n if (typeof p === 'function') {\n const header = data.block\n if (!header) return undefined\n const block = { ...header } as BTCBlock\n if (handlerOptions?.getTransactions) {\n block.tx = header.rawtx?.map((tx: any) => tx as Transaction)\n }\n return p(block)\n }\n return p\n }\n })\n return this\n }\n\n public onBlockInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n blockInterval = 250,\n backfillBlockInterval = 1000,\n handlerOptions?: HandlerOptions<BTCOnIntervalFetchConfig, BTCBlock>\n ): this {\n return this.onInterval(\n handler,\n undefined,\n {\n recentInterval: blockInterval,\n backfillInterval: backfillBlockInterval\n },\n handlerOptions\n )\n }\n\n public onTimeInterval(\n handler: (block: BTCBlock, ctx: BTCBlockContext) => PromiseOrVoid,\n timeIntervalInMinutes = 60,\n backfillTimeIntervalInMinutes = 240,\n handlerOptions?: HandlerOptions<BTCOnIntervalFetchConfig, BTCBlock>\n ): this {\n return this.onInterval(\n handler,\n { recentInterval: timeIntervalInMinutes, backfillInterval: backfillTimeIntervalInMinutes },\n undefined,\n handlerOptions\n )\n }\n}\n\ninterface BTCProcessorConfig {\n chainId: string\n name?: string\n address?: string\n startBlock?: bigint\n endBlock?: bigint\n}\n\nexport type CallHandler<T> = {\n handlerName: string\n handler: (call: T) => Promise<ProcessResult>\n filter?: TransactionFilters\n partitionHandler?: (call: T) => Promise<string | undefined>\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import {\n BTCTransactionFilter,\n BTCTransactionFilter_Condition,\n BTCTransactionFilter_Filter,\n BTCTransactionFilter_Filters,\n BTCTransactionFilter_VinFilter,\n BTCTransactionFilter_VOutFilter\n} from '@sentio/protos'\nimport { serializeRichValue } from '../store/util.js'\nimport { BigDecimal } from '@sentio/bigdecimal'\nimport { Transaction, Vin, Vout } from './types.js'\n\nexport type TransactionFields = keyof Omit<Transaction, 'vin' | 'vout'>\n\nexport type VinFields = keyof Omit<Vin, 'pre_vout' | 'pre_transaction' | 'scriptSig'> | 'script_asm' | 'script_hex'\n\nexport type VOutFields =\n | keyof Omit<Vout, 'scriptPubKey'>\n | 'script_asm'\n | 'script_hex'\n | 'script_type'\n | 'script_address'\n\nexport type Filter<F extends string> = {\n [K in F]?: Condition | Comparable\n}\n\nexport type Condition = {\n eq?: Comparable\n gt?: Comparable\n gte?: Comparable\n lt?: Comparable\n lte?: Comparable\n ne?: Comparable\n // string has the prefix\n prefix?: string\n // string contains\n contains?: string\n notContains?: string\n length?: number\n lengthGt?: number\n lengthLt?: number\n // array contains any of the values\n hasAny?: Array<Comparable>\n // array contains all the values\n hasAll?: Array<Comparable>\n in?: Array<Comparable>\n}\n\nexport type Filters<T extends string> = Filter<T> | Filter<T>[]\n\nexport type VinFilter = Filter<VinFields> & {\n preVOut?: Filter<VOutFields>\n preTransaction?: {\n filter?: Array<Filter<TransactionFields>>\n outputFilter?: Filters<VOutFields>\n // can't have inputFilter here, we can only support one level of nesting\n }\n}\n\nexport type VOutFilter = Filter<VOutFields>\n\nexport type TransactionFilter = {\n inputFilter?: VinFilter | VinFilter[]\n outputFilter?: VOutFilter | VOutFilter[]\n filter?: Array<Filter<TransactionFields>>\n}\n\nexport type Comparable = number | BigDecimal | bigint | Date | string | boolean\n\nexport type TransactionFilters = TransactionFilter | TransactionFilter[]\n\nfunction toVinFilter(inputFilter?: VinFilter | VinFilter[]): BTCTransactionFilter_VinFilter | undefined {\n if (inputFilter) {\n const ret = BTCTransactionFilter_VinFilter.create()\n const filters = []\n const vouts: Filter<VOutFields>[] = []\n const txs: TransactionFilters = []\n\n for (const f of Array.isArray(inputFilter) ? inputFilter : [inputFilter]) {\n const { preVOut, preTransaction, ...rest } = f\n filters.push(rest)\n if (preVOut) {\n vouts.push(preVOut)\n }\n if (preTransaction) {\n txs.push(preTransaction)\n }\n }\n ret.filters = BTCTransactionFilter_Filters.create({\n filters: convertFilters(filters)\n })\n\n if (vouts.length > 0) {\n const voutFilters = convertFilters(vouts)\n if (voutFilters && voutFilters.length > 0) {\n ret.preVOut = voutFilters[0]\n }\n }\n if (txs.length > 0) {\n ret.preTransaction = filters2Proto(txs)?.[0]\n }\n\n return ret\n }\n\n return undefined\n}\n\nfunction toVOutFilter(outputFilter?: VOutFilter | VOutFilter[]): BTCTransactionFilter_VOutFilter | undefined {\n if (outputFilter) {\n const ret = BTCTransactionFilter_VOutFilter.create()\n const filters = Array.isArray(outputFilter) ? outputFilter : ([outputFilter] as Filter<VOutFields>[])\n ret.filters = BTCTransactionFilter_Filters.create({\n filters: convertFilters(filters)\n })\n\n return ret\n }\n return undefined\n}\n\nexport function filters2Proto(filter: TransactionFilters): BTCTransactionFilter[] {\n const filters = Array.isArray(filter) ? filter : [filter]\n return filters.map((f) => {\n return {\n filter: convertFilters(f.filter),\n inputFilter: toVinFilter(f.inputFilter),\n outputFilter: toVOutFilter(f.outputFilter)\n } as BTCTransactionFilter\n })\n}\n\nfunction toCondition(value: Condition | Comparable): BTCTransactionFilter_Condition {\n const ret: BTCTransactionFilter_Condition = BTCTransactionFilter_Condition.create()\n if (value instanceof Date) {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'number') {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'string') {\n ret.eq = serializeRichValue(value)\n }\n if (value instanceof BigDecimal) {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'bigint') {\n ret.eq = serializeRichValue(value)\n }\n if (typeof value === 'boolean') {\n ret.eq = serializeRichValue(value)\n }\n if (Array.isArray(value)) {\n ret.in = { values: value.map((v) => serializeRichValue(v)) }\n }\n\n for (const [k, v] of Object.entries(value)) {\n switch (k) {\n case 'prefix':\n case 'contains':\n case 'notContains':\n ret[k] = v.toString()\n break\n case 'length':\n ret['lengthEq'] = v\n break\n case 'lengthGt':\n case 'lengthLt':\n ret[k] = v\n break\n case 'hasAny':\n case 'hasAll':\n case 'in':\n ret[k] = { values: v.map((v: any) => serializeRichValue(v)) }\n break\n case 'eq':\n case 'gt':\n case 'gte':\n case 'lt':\n case 'lte':\n case 'ne':\n ret[k] = serializeRichValue(v)\n break\n default:\n throw new Error('Unknown condition op: ' + k)\n }\n }\n\n return ret\n}\n\nfunction convertFilters<T extends string>(filters?: Array<Filter<T>>): BTCTransactionFilter_Filter[] | undefined {\n if (filters && filters.length > 0) {\n const ret: BTCTransactionFilter_Filter[] = []\n for (const filter of filters) {\n const f: BTCTransactionFilter_Filter = BTCTransactionFilter_Filter.create()\n for (const [key, value] of Object.entries(filter)) {\n f.conditions[key] = toCondition(value as any)\n }\n ret.push(f)\n }\n return ret\n }\n return []\n}\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));","import { errorString, GLOBAL_CONFIG, mergeProcessResults, Plugin, PluginManager, USER_PROCESSOR } from '@sentio/runtime'\nimport {\n ContractConfig,\n DataBinding,\n HandlerType,\n InitResponse,\n ProcessConfigResponse,\n ProcessResult,\n ProcessStreamResponse_Partitions,\n StartRequest\n} from '@sentio/protos'\n\nimport { ServerError, Status } from 'nice-grpc'\nimport { PartitionHandlerManager } from '../core/index.js'\nimport { HandlerRegister } from '../core/handler-register.js'\nimport { TemplateInstanceState } from '../core/template.js'\nimport { BTCProcessorState } from './btc-processor.js'\nimport { filters2Proto, TransactionFilter } from './filter.js'\n\nexport class BTCPlugin extends Plugin {\n name: string = 'BTCPlugin'\n handlerRegister = new HandlerRegister()\n partitionManager = new PartitionHandlerManager()\n\n async init(config: InitResponse) {\n for (const aptosProcessor of BTCProcessorState.INSTANCE.getValues()) {\n const chainId = aptosProcessor.config.chainId\n config.chainIds.push(chainId)\n }\n }\n\n async configure(config: ProcessConfigResponse, forChainId?: string) {\n this.handlerRegister.clear(forChainId as any)\n\n for (const processor of BTCProcessorState.INSTANCE.getValues()) {\n const chainId = processor.config.chainId\n if (forChainId !== undefined && forChainId !== chainId.toString()) {\n continue\n }\n const contractConfig = ContractConfig.fromPartial({\n processorType: USER_PROCESSOR,\n contract: {\n name: processor.config.name,\n chainId: processor.config.chainId.toString(),\n address: processor.config.address || '*',\n abi: ''\n },\n startBlock: processor.config.startBlock,\n endBlock: processor.config.endBlock\n })\n for (const callHandler of processor.callHandlers) {\n const handlerId = this.handlerRegister.register(callHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(\n HandlerType.BTC_TRANSACTION,\n handlerId,\n callHandler.partitionHandler\n )\n const handlerName = callHandler.handlerName\n\n if (callHandler.filter) {\n contractConfig.btcTransactionConfigs.push({\n filters: filters2Proto(callHandler.filter),\n handlerId,\n handlerName\n })\n } else if (contractConfig.contract?.address != '*') {\n contractConfig.btcTransactionConfigs.push({\n filters: filters2Proto({\n outputFilter: {\n script_address: processor.config.address\n }\n } as TransactionFilter),\n handlerId,\n handlerName\n })\n }\n }\n\n for (const blockHandler of processor.blockHandlers) {\n const handlerId = this.handlerRegister.register(blockHandler.handler, chainId)\n this.partitionManager.registerPartitionHandler(HandlerType.BTC_BLOCK, handlerId, blockHandler.partitionHandler)\n contractConfig.intervalConfigs.push({\n slot: 0,\n slotInterval: blockHandler.blockInterval,\n minutes: 0,\n minutesInterval: blockHandler.timeIntervalInMinutes,\n handlerId,\n handlerName: blockHandler.handlerName,\n fetchConfig: {\n transaction: blockHandler.fetchConfig?.getTransactions ?? false,\n trace: false,\n block: true,\n transactionReceipt: false,\n transactionReceiptLogs: false\n }\n })\n }\n\n // Finish up a contract\n config.contractConfigs.push(contractConfig)\n }\n }\n\n supportedHandlers = [HandlerType.BTC_TRANSACTION, HandlerType.BTC_BLOCK]\n\n processBinding(request: DataBinding): Promise<ProcessResult> {\n switch (request.handlerType) {\n case HandlerType.BTC_TRANSACTION:\n return this.processTransaction(request)\n case HandlerType.BTC_BLOCK:\n return this.processBlock(request)\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n }\n\n async partition(request: DataBinding): Promise<ProcessStreamResponse_Partitions> {\n let data: any\n switch (request.handlerType) {\n case HandlerType.BTC_TRANSACTION:\n if (!request.data?.btcTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"btcTransaction can't be empty\")\n }\n data = request.data.btcTransaction\n break\n case HandlerType.BTC_BLOCK:\n if (!request.data?.btcBlock) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"btcBlock can't be empty\")\n }\n data = request.data.btcBlock\n break\n default:\n throw new ServerError(Status.INVALID_ARGUMENT, 'No handle type registered ' + request.handlerType)\n }\n const partitions = await this.partitionManager.processPartitionForHandlerType(\n request.handlerType,\n request.handlerIds,\n data\n )\n return {\n partitions\n }\n }\n\n async start(request: StartRequest) {}\n\n stateDiff(config: ProcessConfigResponse): boolean {\n return TemplateInstanceState.INSTANCE.getValues().length !== config.templateInstances.length\n }\n\n async processTransaction(binding: DataBinding): Promise<ProcessResult> {\n if (!binding.data?.btcTransaction) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"BTCEvents can't be null\")\n }\n\n const promises: Promise<ProcessResult>[] = []\n\n const result = binding.data?.btcTransaction\n\n for (const handlerId of binding.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n binding.chainId,\n handlerId\n )(binding.data?.btcTransaction)\n .catch((e: any) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing transaction: ' + JSON.stringify(result) + '\\n' + errorString(e)\n )\n })\n if (GLOBAL_CONFIG.execution.sequential) {\n await promise\n }\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n\n private async processBlock(request: DataBinding) {\n if (!request.data?.btcBlock) {\n throw new ServerError(Status.INVALID_ARGUMENT, \"Block can't be empty\")\n }\n\n const block = request.data.btcBlock\n\n const promises: Promise<ProcessResult>[] = []\n for (const handlerId of request.handlerIds) {\n const promise = this.handlerRegister\n .getHandlerById(\n request.chainId,\n handlerId\n )(block)\n .catch((e: any) => {\n throw new ServerError(\n Status.INTERNAL,\n 'error processing block: ' + JSON.stringify(block) + '\\n' + errorString(e)\n )\n })\n if (GLOBAL_CONFIG.execution.sequential) {\n await promise\n }\n promises.push(promise)\n }\n return mergeProcessResults(await Promise.all(promises))\n }\n}\n\nPluginManager.INSTANCE.register(new BTCPlugin())\n;import(\"node:process\").then((p) => p.stdout.write(\"\"));"],"mappings":"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","names":["v","import_nice_grpc"]}
|
|
@@ -1317,7 +1317,455 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) {
|
|
|
1317
1317
|
}
|
|
1318
1318
|
__name(fixResponseChunkedTransferBadEnding, "fixResponseChunkedTransferBadEnding");
|
|
1319
1319
|
|
|
1320
|
+
// ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/cryptoNode.js
|
|
1321
|
+
import * as nc from "node:crypto";
|
|
1322
|
+
var crypto = nc && typeof nc === "object" && "webcrypto" in nc ? nc.webcrypto : nc && typeof nc === "object" && "randomBytes" in nc ? nc : void 0;
|
|
1323
|
+
|
|
1324
|
+
// ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/utils.js
|
|
1325
|
+
function isBytes(a) {
|
|
1326
|
+
return a instanceof Uint8Array || ArrayBuffer.isView(a) && a.constructor.name === "Uint8Array";
|
|
1327
|
+
}
|
|
1328
|
+
__name(isBytes, "isBytes");
|
|
1329
|
+
function anumber(n) {
|
|
1330
|
+
if (!Number.isSafeInteger(n) || n < 0)
|
|
1331
|
+
throw new Error("positive integer expected, got " + n);
|
|
1332
|
+
}
|
|
1333
|
+
__name(anumber, "anumber");
|
|
1334
|
+
function abytes(b, ...lengths) {
|
|
1335
|
+
if (!isBytes(b))
|
|
1336
|
+
throw new Error("Uint8Array expected");
|
|
1337
|
+
if (lengths.length > 0 && !lengths.includes(b.length))
|
|
1338
|
+
throw new Error("Uint8Array expected of length " + lengths + ", got length=" + b.length);
|
|
1339
|
+
}
|
|
1340
|
+
__name(abytes, "abytes");
|
|
1341
|
+
function ahash(h) {
|
|
1342
|
+
if (typeof h !== "function" || typeof h.create !== "function")
|
|
1343
|
+
throw new Error("Hash should be wrapped by utils.createHasher");
|
|
1344
|
+
anumber(h.outputLen);
|
|
1345
|
+
anumber(h.blockLen);
|
|
1346
|
+
}
|
|
1347
|
+
__name(ahash, "ahash");
|
|
1348
|
+
function aexists(instance, checkFinished = true) {
|
|
1349
|
+
if (instance.destroyed)
|
|
1350
|
+
throw new Error("Hash instance has been destroyed");
|
|
1351
|
+
if (checkFinished && instance.finished)
|
|
1352
|
+
throw new Error("Hash#digest() has already been called");
|
|
1353
|
+
}
|
|
1354
|
+
__name(aexists, "aexists");
|
|
1355
|
+
function aoutput(out, instance) {
|
|
1356
|
+
abytes(out);
|
|
1357
|
+
const min = instance.outputLen;
|
|
1358
|
+
if (out.length < min) {
|
|
1359
|
+
throw new Error("digestInto() expects output buffer of length at least " + min);
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
__name(aoutput, "aoutput");
|
|
1363
|
+
function u32(arr) {
|
|
1364
|
+
return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));
|
|
1365
|
+
}
|
|
1366
|
+
__name(u32, "u32");
|
|
1367
|
+
function clean(...arrays) {
|
|
1368
|
+
for (let i = 0; i < arrays.length; i++) {
|
|
1369
|
+
arrays[i].fill(0);
|
|
1370
|
+
}
|
|
1371
|
+
}
|
|
1372
|
+
__name(clean, "clean");
|
|
1373
|
+
function createView(arr) {
|
|
1374
|
+
return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);
|
|
1375
|
+
}
|
|
1376
|
+
__name(createView, "createView");
|
|
1377
|
+
function rotr(word, shift) {
|
|
1378
|
+
return word << 32 - shift | word >>> shift;
|
|
1379
|
+
}
|
|
1380
|
+
__name(rotr, "rotr");
|
|
1381
|
+
function rotl(word, shift) {
|
|
1382
|
+
return word << shift | word >>> 32 - shift >>> 0;
|
|
1383
|
+
}
|
|
1384
|
+
__name(rotl, "rotl");
|
|
1385
|
+
var isLE = /* @__PURE__ */ (() => new Uint8Array(new Uint32Array([287454020]).buffer)[0] === 68)();
|
|
1386
|
+
function byteSwap(word) {
|
|
1387
|
+
return word << 24 & 4278190080 | word << 8 & 16711680 | word >>> 8 & 65280 | word >>> 24 & 255;
|
|
1388
|
+
}
|
|
1389
|
+
__name(byteSwap, "byteSwap");
|
|
1390
|
+
var swap8IfBE = isLE ? (n) => n : (n) => byteSwap(n);
|
|
1391
|
+
function byteSwap32(arr) {
|
|
1392
|
+
for (let i = 0; i < arr.length; i++) {
|
|
1393
|
+
arr[i] = byteSwap(arr[i]);
|
|
1394
|
+
}
|
|
1395
|
+
return arr;
|
|
1396
|
+
}
|
|
1397
|
+
__name(byteSwap32, "byteSwap32");
|
|
1398
|
+
var swap32IfBE = isLE ? (u) => u : byteSwap32;
|
|
1399
|
+
var hasHexBuiltin = /* @__PURE__ */ (() => (
|
|
1400
|
+
// @ts-ignore
|
|
1401
|
+
typeof Uint8Array.from([]).toHex === "function" && typeof Uint8Array.fromHex === "function"
|
|
1402
|
+
))();
|
|
1403
|
+
var hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, "0"));
|
|
1404
|
+
function bytesToHex(bytes) {
|
|
1405
|
+
abytes(bytes);
|
|
1406
|
+
if (hasHexBuiltin)
|
|
1407
|
+
return bytes.toHex();
|
|
1408
|
+
let hex = "";
|
|
1409
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
1410
|
+
hex += hexes[bytes[i]];
|
|
1411
|
+
}
|
|
1412
|
+
return hex;
|
|
1413
|
+
}
|
|
1414
|
+
__name(bytesToHex, "bytesToHex");
|
|
1415
|
+
var asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 };
|
|
1416
|
+
function asciiToBase16(ch) {
|
|
1417
|
+
if (ch >= asciis._0 && ch <= asciis._9)
|
|
1418
|
+
return ch - asciis._0;
|
|
1419
|
+
if (ch >= asciis.A && ch <= asciis.F)
|
|
1420
|
+
return ch - (asciis.A - 10);
|
|
1421
|
+
if (ch >= asciis.a && ch <= asciis.f)
|
|
1422
|
+
return ch - (asciis.a - 10);
|
|
1423
|
+
return;
|
|
1424
|
+
}
|
|
1425
|
+
__name(asciiToBase16, "asciiToBase16");
|
|
1426
|
+
function hexToBytes(hex) {
|
|
1427
|
+
if (typeof hex !== "string")
|
|
1428
|
+
throw new Error("hex string expected, got " + typeof hex);
|
|
1429
|
+
if (hasHexBuiltin)
|
|
1430
|
+
return Uint8Array.fromHex(hex);
|
|
1431
|
+
const hl = hex.length;
|
|
1432
|
+
const al = hl / 2;
|
|
1433
|
+
if (hl % 2)
|
|
1434
|
+
throw new Error("hex string expected, got unpadded hex of length " + hl);
|
|
1435
|
+
const array = new Uint8Array(al);
|
|
1436
|
+
for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {
|
|
1437
|
+
const n1 = asciiToBase16(hex.charCodeAt(hi));
|
|
1438
|
+
const n2 = asciiToBase16(hex.charCodeAt(hi + 1));
|
|
1439
|
+
if (n1 === void 0 || n2 === void 0) {
|
|
1440
|
+
const char = hex[hi] + hex[hi + 1];
|
|
1441
|
+
throw new Error('hex string expected, got non-hex character "' + char + '" at index ' + hi);
|
|
1442
|
+
}
|
|
1443
|
+
array[ai] = n1 * 16 + n2;
|
|
1444
|
+
}
|
|
1445
|
+
return array;
|
|
1446
|
+
}
|
|
1447
|
+
__name(hexToBytes, "hexToBytes");
|
|
1448
|
+
function utf8ToBytes(str) {
|
|
1449
|
+
if (typeof str !== "string")
|
|
1450
|
+
throw new Error("string expected");
|
|
1451
|
+
return new Uint8Array(new TextEncoder().encode(str));
|
|
1452
|
+
}
|
|
1453
|
+
__name(utf8ToBytes, "utf8ToBytes");
|
|
1454
|
+
function toBytes(data) {
|
|
1455
|
+
if (typeof data === "string")
|
|
1456
|
+
data = utf8ToBytes(data);
|
|
1457
|
+
abytes(data);
|
|
1458
|
+
return data;
|
|
1459
|
+
}
|
|
1460
|
+
__name(toBytes, "toBytes");
|
|
1461
|
+
function kdfInputToBytes(data) {
|
|
1462
|
+
if (typeof data === "string")
|
|
1463
|
+
data = utf8ToBytes(data);
|
|
1464
|
+
abytes(data);
|
|
1465
|
+
return data;
|
|
1466
|
+
}
|
|
1467
|
+
__name(kdfInputToBytes, "kdfInputToBytes");
|
|
1468
|
+
function concatBytes(...arrays) {
|
|
1469
|
+
let sum = 0;
|
|
1470
|
+
for (let i = 0; i < arrays.length; i++) {
|
|
1471
|
+
const a = arrays[i];
|
|
1472
|
+
abytes(a);
|
|
1473
|
+
sum += a.length;
|
|
1474
|
+
}
|
|
1475
|
+
const res = new Uint8Array(sum);
|
|
1476
|
+
for (let i = 0, pad = 0; i < arrays.length; i++) {
|
|
1477
|
+
const a = arrays[i];
|
|
1478
|
+
res.set(a, pad);
|
|
1479
|
+
pad += a.length;
|
|
1480
|
+
}
|
|
1481
|
+
return res;
|
|
1482
|
+
}
|
|
1483
|
+
__name(concatBytes, "concatBytes");
|
|
1484
|
+
function checkOpts(defaults, opts) {
|
|
1485
|
+
if (opts !== void 0 && {}.toString.call(opts) !== "[object Object]")
|
|
1486
|
+
throw new Error("options should be object or undefined");
|
|
1487
|
+
const merged = Object.assign(defaults, opts);
|
|
1488
|
+
return merged;
|
|
1489
|
+
}
|
|
1490
|
+
__name(checkOpts, "checkOpts");
|
|
1491
|
+
var Hash = class {
|
|
1492
|
+
static {
|
|
1493
|
+
__name(this, "Hash");
|
|
1494
|
+
}
|
|
1495
|
+
};
|
|
1496
|
+
function createHasher(hashCons) {
|
|
1497
|
+
const hashC = /* @__PURE__ */ __name((msg) => hashCons().update(toBytes(msg)).digest(), "hashC");
|
|
1498
|
+
const tmp = hashCons();
|
|
1499
|
+
hashC.outputLen = tmp.outputLen;
|
|
1500
|
+
hashC.blockLen = tmp.blockLen;
|
|
1501
|
+
hashC.create = () => hashCons();
|
|
1502
|
+
return hashC;
|
|
1503
|
+
}
|
|
1504
|
+
__name(createHasher, "createHasher");
|
|
1505
|
+
function createOptHasher(hashCons) {
|
|
1506
|
+
const hashC = /* @__PURE__ */ __name((msg, opts) => hashCons(opts).update(toBytes(msg)).digest(), "hashC");
|
|
1507
|
+
const tmp = hashCons({});
|
|
1508
|
+
hashC.outputLen = tmp.outputLen;
|
|
1509
|
+
hashC.blockLen = tmp.blockLen;
|
|
1510
|
+
hashC.create = (opts) => hashCons(opts);
|
|
1511
|
+
return hashC;
|
|
1512
|
+
}
|
|
1513
|
+
__name(createOptHasher, "createOptHasher");
|
|
1514
|
+
function randomBytes(bytesLength = 32) {
|
|
1515
|
+
if (crypto && typeof crypto.getRandomValues === "function") {
|
|
1516
|
+
return crypto.getRandomValues(new Uint8Array(bytesLength));
|
|
1517
|
+
}
|
|
1518
|
+
if (crypto && typeof crypto.randomBytes === "function") {
|
|
1519
|
+
return Uint8Array.from(crypto.randomBytes(bytesLength));
|
|
1520
|
+
}
|
|
1521
|
+
throw new Error("crypto.getRandomValues must be defined");
|
|
1522
|
+
}
|
|
1523
|
+
__name(randomBytes, "randomBytes");
|
|
1524
|
+
|
|
1525
|
+
// ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_u64.js
|
|
1526
|
+
var U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);
|
|
1527
|
+
var _32n = /* @__PURE__ */ BigInt(32);
|
|
1528
|
+
function fromBig(n, le = false) {
|
|
1529
|
+
if (le)
|
|
1530
|
+
return { h: Number(n & U32_MASK64), l: Number(n >> _32n & U32_MASK64) };
|
|
1531
|
+
return { h: Number(n >> _32n & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };
|
|
1532
|
+
}
|
|
1533
|
+
__name(fromBig, "fromBig");
|
|
1534
|
+
function split(lst, le = false) {
|
|
1535
|
+
const len = lst.length;
|
|
1536
|
+
let Ah = new Uint32Array(len);
|
|
1537
|
+
let Al = new Uint32Array(len);
|
|
1538
|
+
for (let i = 0; i < len; i++) {
|
|
1539
|
+
const { h, l } = fromBig(lst[i], le);
|
|
1540
|
+
[Ah[i], Al[i]] = [h, l];
|
|
1541
|
+
}
|
|
1542
|
+
return [Ah, Al];
|
|
1543
|
+
}
|
|
1544
|
+
__name(split, "split");
|
|
1545
|
+
var shrSH = /* @__PURE__ */ __name((h, _l, s) => h >>> s, "shrSH");
|
|
1546
|
+
var shrSL = /* @__PURE__ */ __name((h, l, s) => h << 32 - s | l >>> s, "shrSL");
|
|
1547
|
+
var rotrSH = /* @__PURE__ */ __name((h, l, s) => h >>> s | l << 32 - s, "rotrSH");
|
|
1548
|
+
var rotrSL = /* @__PURE__ */ __name((h, l, s) => h << 32 - s | l >>> s, "rotrSL");
|
|
1549
|
+
var rotrBH = /* @__PURE__ */ __name((h, l, s) => h << 64 - s | l >>> s - 32, "rotrBH");
|
|
1550
|
+
var rotrBL = /* @__PURE__ */ __name((h, l, s) => h >>> s - 32 | l << 64 - s, "rotrBL");
|
|
1551
|
+
var rotr32H = /* @__PURE__ */ __name((_h, l) => l, "rotr32H");
|
|
1552
|
+
var rotr32L = /* @__PURE__ */ __name((h, _l) => h, "rotr32L");
|
|
1553
|
+
var rotlSH = /* @__PURE__ */ __name((h, l, s) => h << s | l >>> 32 - s, "rotlSH");
|
|
1554
|
+
var rotlSL = /* @__PURE__ */ __name((h, l, s) => l << s | h >>> 32 - s, "rotlSL");
|
|
1555
|
+
var rotlBH = /* @__PURE__ */ __name((h, l, s) => l << s - 32 | h >>> 64 - s, "rotlBH");
|
|
1556
|
+
var rotlBL = /* @__PURE__ */ __name((h, l, s) => h << s - 32 | l >>> 64 - s, "rotlBL");
|
|
1557
|
+
function add(Ah, Al, Bh, Bl) {
|
|
1558
|
+
const l = (Al >>> 0) + (Bl >>> 0);
|
|
1559
|
+
return { h: Ah + Bh + (l / 2 ** 32 | 0) | 0, l: l | 0 };
|
|
1560
|
+
}
|
|
1561
|
+
__name(add, "add");
|
|
1562
|
+
var add3L = /* @__PURE__ */ __name((Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0), "add3L");
|
|
1563
|
+
var add3H = /* @__PURE__ */ __name((low, Ah, Bh, Ch) => Ah + Bh + Ch + (low / 2 ** 32 | 0) | 0, "add3H");
|
|
1564
|
+
var add4L = /* @__PURE__ */ __name((Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0), "add4L");
|
|
1565
|
+
var add4H = /* @__PURE__ */ __name((low, Ah, Bh, Ch, Dh) => Ah + Bh + Ch + Dh + (low / 2 ** 32 | 0) | 0, "add4H");
|
|
1566
|
+
var add5L = /* @__PURE__ */ __name((Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0), "add5L");
|
|
1567
|
+
var add5H = /* @__PURE__ */ __name((low, Ah, Bh, Ch, Dh, Eh) => Ah + Bh + Ch + Dh + Eh + (low / 2 ** 32 | 0) | 0, "add5H");
|
|
1568
|
+
|
|
1569
|
+
// ../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/esm/_md.js
|
|
1570
|
+
function setBigUint64(view, byteOffset, value, isLE2) {
|
|
1571
|
+
if (typeof view.setBigUint64 === "function")
|
|
1572
|
+
return view.setBigUint64(byteOffset, value, isLE2);
|
|
1573
|
+
const _32n2 = BigInt(32);
|
|
1574
|
+
const _u32_max = BigInt(4294967295);
|
|
1575
|
+
const wh = Number(value >> _32n2 & _u32_max);
|
|
1576
|
+
const wl = Number(value & _u32_max);
|
|
1577
|
+
const h = isLE2 ? 4 : 0;
|
|
1578
|
+
const l = isLE2 ? 0 : 4;
|
|
1579
|
+
view.setUint32(byteOffset + h, wh, isLE2);
|
|
1580
|
+
view.setUint32(byteOffset + l, wl, isLE2);
|
|
1581
|
+
}
|
|
1582
|
+
__name(setBigUint64, "setBigUint64");
|
|
1583
|
+
function Chi(a, b, c) {
|
|
1584
|
+
return a & b ^ ~a & c;
|
|
1585
|
+
}
|
|
1586
|
+
__name(Chi, "Chi");
|
|
1587
|
+
function Maj(a, b, c) {
|
|
1588
|
+
return a & b ^ a & c ^ b & c;
|
|
1589
|
+
}
|
|
1590
|
+
__name(Maj, "Maj");
|
|
1591
|
+
var HashMD = class extends Hash {
|
|
1592
|
+
static {
|
|
1593
|
+
__name(this, "HashMD");
|
|
1594
|
+
}
|
|
1595
|
+
constructor(blockLen, outputLen, padOffset, isLE2) {
|
|
1596
|
+
super();
|
|
1597
|
+
this.finished = false;
|
|
1598
|
+
this.length = 0;
|
|
1599
|
+
this.pos = 0;
|
|
1600
|
+
this.destroyed = false;
|
|
1601
|
+
this.blockLen = blockLen;
|
|
1602
|
+
this.outputLen = outputLen;
|
|
1603
|
+
this.padOffset = padOffset;
|
|
1604
|
+
this.isLE = isLE2;
|
|
1605
|
+
this.buffer = new Uint8Array(blockLen);
|
|
1606
|
+
this.view = createView(this.buffer);
|
|
1607
|
+
}
|
|
1608
|
+
update(data) {
|
|
1609
|
+
aexists(this);
|
|
1610
|
+
data = toBytes(data);
|
|
1611
|
+
abytes(data);
|
|
1612
|
+
const { view, buffer, blockLen } = this;
|
|
1613
|
+
const len = data.length;
|
|
1614
|
+
for (let pos = 0; pos < len; ) {
|
|
1615
|
+
const take = Math.min(blockLen - this.pos, len - pos);
|
|
1616
|
+
if (take === blockLen) {
|
|
1617
|
+
const dataView = createView(data);
|
|
1618
|
+
for (; blockLen <= len - pos; pos += blockLen)
|
|
1619
|
+
this.process(dataView, pos);
|
|
1620
|
+
continue;
|
|
1621
|
+
}
|
|
1622
|
+
buffer.set(data.subarray(pos, pos + take), this.pos);
|
|
1623
|
+
this.pos += take;
|
|
1624
|
+
pos += take;
|
|
1625
|
+
if (this.pos === blockLen) {
|
|
1626
|
+
this.process(view, 0);
|
|
1627
|
+
this.pos = 0;
|
|
1628
|
+
}
|
|
1629
|
+
}
|
|
1630
|
+
this.length += data.length;
|
|
1631
|
+
this.roundClean();
|
|
1632
|
+
return this;
|
|
1633
|
+
}
|
|
1634
|
+
digestInto(out) {
|
|
1635
|
+
aexists(this);
|
|
1636
|
+
aoutput(out, this);
|
|
1637
|
+
this.finished = true;
|
|
1638
|
+
const { buffer, view, blockLen, isLE: isLE2 } = this;
|
|
1639
|
+
let { pos } = this;
|
|
1640
|
+
buffer[pos++] = 128;
|
|
1641
|
+
clean(this.buffer.subarray(pos));
|
|
1642
|
+
if (this.padOffset > blockLen - pos) {
|
|
1643
|
+
this.process(view, 0);
|
|
1644
|
+
pos = 0;
|
|
1645
|
+
}
|
|
1646
|
+
for (let i = pos; i < blockLen; i++)
|
|
1647
|
+
buffer[i] = 0;
|
|
1648
|
+
setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE2);
|
|
1649
|
+
this.process(view, 0);
|
|
1650
|
+
const oview = createView(out);
|
|
1651
|
+
const len = this.outputLen;
|
|
1652
|
+
if (len % 4)
|
|
1653
|
+
throw new Error("_sha2: outputLen should be aligned to 32bit");
|
|
1654
|
+
const outLen = len / 4;
|
|
1655
|
+
const state = this.get();
|
|
1656
|
+
if (outLen > state.length)
|
|
1657
|
+
throw new Error("_sha2: outputLen bigger than state");
|
|
1658
|
+
for (let i = 0; i < outLen; i++)
|
|
1659
|
+
oview.setUint32(4 * i, state[i], isLE2);
|
|
1660
|
+
}
|
|
1661
|
+
digest() {
|
|
1662
|
+
const { buffer, outputLen } = this;
|
|
1663
|
+
this.digestInto(buffer);
|
|
1664
|
+
const res = buffer.slice(0, outputLen);
|
|
1665
|
+
this.destroy();
|
|
1666
|
+
return res;
|
|
1667
|
+
}
|
|
1668
|
+
_cloneInto(to) {
|
|
1669
|
+
to || (to = new this.constructor());
|
|
1670
|
+
to.set(...this.get());
|
|
1671
|
+
const { blockLen, buffer, length, finished, destroyed, pos } = this;
|
|
1672
|
+
to.destroyed = destroyed;
|
|
1673
|
+
to.finished = finished;
|
|
1674
|
+
to.length = length;
|
|
1675
|
+
to.pos = pos;
|
|
1676
|
+
if (length % blockLen)
|
|
1677
|
+
to.buffer.set(buffer);
|
|
1678
|
+
return to;
|
|
1679
|
+
}
|
|
1680
|
+
clone() {
|
|
1681
|
+
return this._cloneInto();
|
|
1682
|
+
}
|
|
1683
|
+
};
|
|
1684
|
+
var SHA256_IV = /* @__PURE__ */ Uint32Array.from([
|
|
1685
|
+
1779033703,
|
|
1686
|
+
3144134277,
|
|
1687
|
+
1013904242,
|
|
1688
|
+
2773480762,
|
|
1689
|
+
1359893119,
|
|
1690
|
+
2600822924,
|
|
1691
|
+
528734635,
|
|
1692
|
+
1541459225
|
|
1693
|
+
]);
|
|
1694
|
+
var SHA512_IV = /* @__PURE__ */ Uint32Array.from([
|
|
1695
|
+
1779033703,
|
|
1696
|
+
4089235720,
|
|
1697
|
+
3144134277,
|
|
1698
|
+
2227873595,
|
|
1699
|
+
1013904242,
|
|
1700
|
+
4271175723,
|
|
1701
|
+
2773480762,
|
|
1702
|
+
1595750129,
|
|
1703
|
+
1359893119,
|
|
1704
|
+
2917565137,
|
|
1705
|
+
2600822924,
|
|
1706
|
+
725511199,
|
|
1707
|
+
528734635,
|
|
1708
|
+
4215389547,
|
|
1709
|
+
1541459225,
|
|
1710
|
+
327033209
|
|
1711
|
+
]);
|
|
1712
|
+
|
|
1320
1713
|
export {
|
|
1714
|
+
isBytes,
|
|
1715
|
+
anumber,
|
|
1716
|
+
abytes,
|
|
1717
|
+
ahash,
|
|
1718
|
+
aexists,
|
|
1719
|
+
aoutput,
|
|
1720
|
+
u32,
|
|
1721
|
+
clean,
|
|
1722
|
+
createView,
|
|
1723
|
+
rotr,
|
|
1724
|
+
rotl,
|
|
1725
|
+
swap8IfBE,
|
|
1726
|
+
swap32IfBE,
|
|
1727
|
+
bytesToHex,
|
|
1728
|
+
hexToBytes,
|
|
1729
|
+
utf8ToBytes,
|
|
1730
|
+
toBytes,
|
|
1731
|
+
kdfInputToBytes,
|
|
1732
|
+
concatBytes,
|
|
1733
|
+
checkOpts,
|
|
1734
|
+
Hash,
|
|
1735
|
+
createHasher,
|
|
1736
|
+
createOptHasher,
|
|
1737
|
+
randomBytes,
|
|
1738
|
+
fromBig,
|
|
1739
|
+
split,
|
|
1740
|
+
shrSH,
|
|
1741
|
+
shrSL,
|
|
1742
|
+
rotrSH,
|
|
1743
|
+
rotrSL,
|
|
1744
|
+
rotrBH,
|
|
1745
|
+
rotrBL,
|
|
1746
|
+
rotr32H,
|
|
1747
|
+
rotr32L,
|
|
1748
|
+
rotlSH,
|
|
1749
|
+
rotlSL,
|
|
1750
|
+
rotlBH,
|
|
1751
|
+
rotlBL,
|
|
1752
|
+
add,
|
|
1753
|
+
add3L,
|
|
1754
|
+
add3H,
|
|
1755
|
+
add4L,
|
|
1756
|
+
add4H,
|
|
1757
|
+
add5L,
|
|
1758
|
+
add5H,
|
|
1759
|
+
Chi,
|
|
1760
|
+
Maj,
|
|
1761
|
+
HashMD,
|
|
1762
|
+
SHA256_IV,
|
|
1763
|
+
SHA512_IV,
|
|
1321
1764
|
fetch
|
|
1322
1765
|
};
|
|
1323
|
-
|
|
1766
|
+
/*! Bundled license information:
|
|
1767
|
+
|
|
1768
|
+
@noble/hashes/esm/utils.js:
|
|
1769
|
+
(*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) *)
|
|
1770
|
+
*/
|
|
1771
|
+
//# sourceMappingURL=chunk-HFODIGHI.js.map
|