@xyo-network/crypto-contract-function-read-plugin 2.99.5 → 3.0.0

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.
Files changed (104) hide show
  1. package/dist/browser/index.d.ts +63 -4
  2. package/dist/browser/index.mjs +69 -77
  3. package/dist/browser/index.mjs.map +1 -1
  4. package/dist/neutral/index.d.ts +63 -4
  5. package/dist/neutral/index.mjs +69 -77
  6. package/dist/neutral/index.mjs.map +1 -1
  7. package/dist/node/index.d.ts +63 -4
  8. package/dist/node/index.mjs +76 -90
  9. package/dist/node/index.mjs.map +1 -1
  10. package/package.json +38 -57
  11. package/src/Plugin.ts +1 -1
  12. package/dist/browser/Diviner/Diviner.d.cts +0 -16
  13. package/dist/browser/Diviner/Diviner.d.cts.map +0 -1
  14. package/dist/browser/Diviner/Diviner.d.mts +0 -16
  15. package/dist/browser/Diviner/Diviner.d.mts.map +0 -1
  16. package/dist/browser/Diviner/Diviner.d.ts +0 -16
  17. package/dist/browser/Diviner/Diviner.d.ts.map +0 -1
  18. package/dist/browser/Diviner/index.d.cts +0 -2
  19. package/dist/browser/Diviner/index.d.cts.map +0 -1
  20. package/dist/browser/Diviner/index.d.mts +0 -2
  21. package/dist/browser/Diviner/index.d.mts.map +0 -1
  22. package/dist/browser/Diviner/index.d.ts +0 -2
  23. package/dist/browser/Diviner/index.d.ts.map +0 -1
  24. package/dist/browser/Plugin.d.cts +0 -25
  25. package/dist/browser/Plugin.d.cts.map +0 -1
  26. package/dist/browser/Plugin.d.mts +0 -25
  27. package/dist/browser/Plugin.d.mts.map +0 -1
  28. package/dist/browser/Plugin.d.ts +0 -25
  29. package/dist/browser/Plugin.d.ts.map +0 -1
  30. package/dist/browser/Witness.d.cts +0 -16
  31. package/dist/browser/Witness.d.cts.map +0 -1
  32. package/dist/browser/Witness.d.mts +0 -16
  33. package/dist/browser/Witness.d.mts.map +0 -1
  34. package/dist/browser/Witness.d.ts +0 -16
  35. package/dist/browser/Witness.d.ts.map +0 -1
  36. package/dist/browser/index.cjs +0 -178
  37. package/dist/browser/index.cjs.map +0 -1
  38. package/dist/browser/index.d.cts +0 -4
  39. package/dist/browser/index.d.cts.map +0 -1
  40. package/dist/browser/index.d.mts +0 -4
  41. package/dist/browser/index.d.mts.map +0 -1
  42. package/dist/browser/index.d.ts.map +0 -1
  43. package/dist/neutral/Diviner/Diviner.d.cts +0 -16
  44. package/dist/neutral/Diviner/Diviner.d.cts.map +0 -1
  45. package/dist/neutral/Diviner/Diviner.d.mts +0 -16
  46. package/dist/neutral/Diviner/Diviner.d.mts.map +0 -1
  47. package/dist/neutral/Diviner/Diviner.d.ts +0 -16
  48. package/dist/neutral/Diviner/Diviner.d.ts.map +0 -1
  49. package/dist/neutral/Diviner/index.d.cts +0 -2
  50. package/dist/neutral/Diviner/index.d.cts.map +0 -1
  51. package/dist/neutral/Diviner/index.d.mts +0 -2
  52. package/dist/neutral/Diviner/index.d.mts.map +0 -1
  53. package/dist/neutral/Diviner/index.d.ts +0 -2
  54. package/dist/neutral/Diviner/index.d.ts.map +0 -1
  55. package/dist/neutral/Plugin.d.cts +0 -25
  56. package/dist/neutral/Plugin.d.cts.map +0 -1
  57. package/dist/neutral/Plugin.d.mts +0 -25
  58. package/dist/neutral/Plugin.d.mts.map +0 -1
  59. package/dist/neutral/Plugin.d.ts +0 -25
  60. package/dist/neutral/Plugin.d.ts.map +0 -1
  61. package/dist/neutral/Witness.d.cts +0 -16
  62. package/dist/neutral/Witness.d.cts.map +0 -1
  63. package/dist/neutral/Witness.d.mts +0 -16
  64. package/dist/neutral/Witness.d.mts.map +0 -1
  65. package/dist/neutral/Witness.d.ts +0 -16
  66. package/dist/neutral/Witness.d.ts.map +0 -1
  67. package/dist/neutral/index.cjs +0 -178
  68. package/dist/neutral/index.cjs.map +0 -1
  69. package/dist/neutral/index.d.cts +0 -4
  70. package/dist/neutral/index.d.cts.map +0 -1
  71. package/dist/neutral/index.d.mts +0 -4
  72. package/dist/neutral/index.d.mts.map +0 -1
  73. package/dist/neutral/index.d.ts.map +0 -1
  74. package/dist/node/Diviner/Diviner.d.cts +0 -16
  75. package/dist/node/Diviner/Diviner.d.cts.map +0 -1
  76. package/dist/node/Diviner/Diviner.d.mts +0 -16
  77. package/dist/node/Diviner/Diviner.d.mts.map +0 -1
  78. package/dist/node/Diviner/Diviner.d.ts +0 -16
  79. package/dist/node/Diviner/Diviner.d.ts.map +0 -1
  80. package/dist/node/Diviner/index.d.cts +0 -2
  81. package/dist/node/Diviner/index.d.cts.map +0 -1
  82. package/dist/node/Diviner/index.d.mts +0 -2
  83. package/dist/node/Diviner/index.d.mts.map +0 -1
  84. package/dist/node/Diviner/index.d.ts +0 -2
  85. package/dist/node/Diviner/index.d.ts.map +0 -1
  86. package/dist/node/Plugin.d.cts +0 -25
  87. package/dist/node/Plugin.d.cts.map +0 -1
  88. package/dist/node/Plugin.d.mts +0 -25
  89. package/dist/node/Plugin.d.mts.map +0 -1
  90. package/dist/node/Plugin.d.ts +0 -25
  91. package/dist/node/Plugin.d.ts.map +0 -1
  92. package/dist/node/Witness.d.cts +0 -16
  93. package/dist/node/Witness.d.cts.map +0 -1
  94. package/dist/node/Witness.d.mts +0 -16
  95. package/dist/node/Witness.d.mts.map +0 -1
  96. package/dist/node/Witness.d.ts +0 -16
  97. package/dist/node/Witness.d.ts.map +0 -1
  98. package/dist/node/index.cjs +0 -190
  99. package/dist/node/index.cjs.map +0 -1
  100. package/dist/node/index.d.cts +0 -4
  101. package/dist/node/index.d.cts.map +0 -1
  102. package/dist/node/index.d.mts +0 -4
  103. package/dist/node/index.d.mts.map +0 -1
  104. package/dist/node/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } from '@xyo-network/payload-model'\n\n/** @deprecated use EvmCallDiviner instead */\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\n/** @deprecated use EvmCallDiviner instead */\nexport class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractDivinerConfigSchema\n static override labels: CryptoContractDivinerLabels = { ...super.labels, ...CryptoContractDivinerLabels }\n\n protected static findCallResult<TResult = string>(\n address: string,\n functionName: string,\n payloads: CryptoContractFunctionCallResult[],\n ): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asCryptoContractFunctionCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo {\n return {\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: ContractInfoSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: CryptoContractFunctionCallResult[] = []): Promise<ContractInfo[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<CryptoContractFunctionCallResult>(CryptoContractFunctionCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const info: ContractInfo = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return info\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<Record<string, unknown>>((prev, callResult) => {\n prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result\n return prev\n }, {})\n }\n}\n","import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\n// eslint-disable-next-line import/no-deprecated\nimport { CryptoContractFunctionReadWitness } from './Witness.ts'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoContractFunctionReadWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } from 'ethers'\n\n/** @deprecated use EvmCallWitness instead */\nexport type CryptoContractFunctionReadWitnessParams = WitnessParams<\n AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>,\n {\n providers: Provider[]\n }\n>\n\n/** @deprecated use EvmCallWitness instead */\nexport class CryptoContractFunctionReadWitness<\n TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams,\n> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {\n const { providers } = this.params\n const provider = providers[Date.now() % providers.length] // pick a random provider\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])]\n\n const contract = new Contract(validatedAddress, this.abi, provider)\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n const transformedResult = typeof result === 'bigint' ? result.toString(16) : result\n const observation: CryptoContractFunctionCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n } catch (ex) {\n const error = ex as Error & { code: string }\n console.log(`Error [${this.config.name}]: ${error.code}`)\n const observation: CryptoContractFunctionCallFailure = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n error: error.code,\n functionName: validatedFunctionName,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n }\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":"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","names":["assertEx","asCryptoContractFunctionCallSuccess","ContractInfoSchema","CryptoContractDivinerConfigSchema","CryptoContractDivinerLabels","CryptoContractFunctionCallResultSchema","AbstractDiviner","isPayloadOfSchemaType","CryptoContractDiviner","AbstractDiviner","configSchemas","CryptoContractDivinerConfigSchema","defaultConfigSchema","labels","CryptoContractDivinerLabels","findCallResult","address","functionName","payloads","foundPayload","find","payload","asCryptoContractFunctionCallSuccess","result","matchingExistingField","objs","field","expectedValue","at","didNotMatch","reduce","prev","obj","undefined","contractInfoRequiredFields","callResults","assertEx","chainId","schema","ContractInfoSchema","divineHandler","inPayloads","filter","isPayloadOfSchemaType","CryptoContractFunctionCallResultSchema","addresses","Object","keys","Promise","all","map","foundCallResults","callResult","info","results","reduceResults","NftSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","assertEx","AbstractWitness","CryptoContractFunctionCallResultSchema","CryptoContractFunctionCallSchema","CryptoContractFunctionReadWitnessConfigSchema","isPayloadOfSchemaType","Contract","CryptoContractFunctionReadWitness","AbstractWitness","configSchemas","CryptoContractFunctionReadWitnessConfigSchema","defaultConfigSchema","abi","assertEx","config","observeHandler","inPayloads","started","observations","Promise","all","filter","isPayloadOfSchemaType","CryptoContractFunctionCallSchema","map","functionName","args","address","providers","params","provider","Date","now","length","validatedAddress","validatedFunctionName","mergedArgs","contract","Contract","result","transformedResult","toString","observation","chainId","Number","getNetwork","schema","CryptoContractFunctionCallResultSchema","ex","error","console","log","name","code","message","CryptoContractFunctionReadWitnessPlugin","createPayloadSetWitnessPlugin","required","NftSchema","schema","PayloadSetSchema","witness","params","result","CryptoContractFunctionReadWitness","create"]}
1
+ {"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } from '@xyo-network/payload-model'\n\n/** @deprecated use EvmCallDiviner instead */\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\n/** @deprecated use EvmCallDiviner instead */\nexport class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractDivinerConfigSchema\n static override labels: CryptoContractDivinerLabels = { ...super.labels, ...CryptoContractDivinerLabels }\n\n protected static findCallResult<TResult = string>(\n address: string,\n functionName: string,\n payloads: CryptoContractFunctionCallResult[],\n ): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asCryptoContractFunctionCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo {\n return {\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: ContractInfoSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: CryptoContractFunctionCallResult[] = []): Promise<ContractInfo[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<CryptoContractFunctionCallResult>(CryptoContractFunctionCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const info: ContractInfo = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return info\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<Record<string, unknown>>((prev, callResult) => {\n prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result\n return prev\n }, {})\n }\n}\n","import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\n// eslint-disable-next-line import-x/no-deprecated\nimport { CryptoContractFunctionReadWitness } from './Witness.ts'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoContractFunctionReadWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } from 'ethers'\n\n/** @deprecated use EvmCallWitness instead */\nexport type CryptoContractFunctionReadWitnessParams = WitnessParams<\n AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>,\n {\n providers: Provider[]\n }\n>\n\n/** @deprecated use EvmCallWitness instead */\nexport class CryptoContractFunctionReadWitness<\n TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams,\n> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {\n const { providers } = this.params\n const provider = providers[Date.now() % providers.length] // pick a random provider\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])]\n\n const contract = new Contract(validatedAddress, this.abi, provider)\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n const transformedResult = typeof result === 'bigint' ? result.toString(16) : result\n const observation: CryptoContractFunctionCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n } catch (ex) {\n const error = ex as Error & { code: string }\n console.log(`Error [${this.config.name}]: ${error.code}`)\n const observation: CryptoContractFunctionCallFailure = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n error: error.code,\n functionName: validatedFunctionName,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n }\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":"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","names":["result","assertEx","CryptoContractFunctionCallResultSchema","isPayloadOfSchemaType"]}
@@ -1,4 +1,63 @@
1
- export * from './Diviner/index.ts';
2
- export { CryptoContractFunctionReadWitnessPlugin, CryptoContractFunctionReadWitnessPlugin as default } from './Plugin.ts';
3
- export * from './Witness.ts';
4
- //# sourceMappingURL=index.d.ts.map
1
+ import { Promisable } from '@xylabs/promise';
2
+ import * as _xyo_network_crypto_contract_function_read_payload_plugin from '@xyo-network/crypto-contract-function-read-payload-plugin';
3
+ import { CryptoContractDivinerParams, CryptoContractDivinerLabels, CryptoContractFunctionCallResult, ContractInfo, CryptoContractFunctionReadWitnessConfig, CryptoContractFunctionCall } from '@xyo-network/crypto-contract-function-read-payload-plugin';
4
+ import { AbstractDiviner } from '@xyo-network/diviner-abstract';
5
+ import * as _xyo_network_payload_model from '@xyo-network/payload-model';
6
+ import { Payload, Schema } from '@xyo-network/payload-model';
7
+ import * as _xyo_network_payloadset_plugin from '@xyo-network/payloadset-plugin';
8
+ import * as ethers from 'ethers';
9
+ import { Provider } from 'ethers';
10
+ import * as _xyo_network_module_model from '@xyo-network/module-model';
11
+ import { AnyConfigSchema } from '@xyo-network/module-model';
12
+ import * as _store__xyo_network_account_model_virtual_3afa553815_package from '.store/@xyo-network-account-model-virtual-3afa553815/package';
13
+ import * as _xylabs_object from '@xylabs/object';
14
+ import { AbstractWitness } from '@xyo-network/abstract-witness';
15
+ import { WitnessParams } from '@xyo-network/witness-model';
16
+
17
+ type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined];
18
+ declare class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {
19
+ static readonly configSchemas: Schema[];
20
+ static readonly defaultConfigSchema: Schema;
21
+ static labels: CryptoContractDivinerLabels;
22
+ protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: CryptoContractFunctionCallResult[]): TResult | undefined;
23
+ protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined;
24
+ protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo;
25
+ protected divineHandler(inPayloads?: CryptoContractFunctionCallResult[]): Promise<ContractInfo[]>;
26
+ protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']>;
27
+ }
28
+
29
+ type CryptoContractFunctionReadWitnessParams = WitnessParams<AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>, {
30
+ providers: Provider[];
31
+ }>;
32
+ declare class CryptoContractFunctionReadWitness<TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {
33
+ static readonly configSchemas: Schema[];
34
+ static readonly defaultConfigSchema: Schema;
35
+ get abi(): string | readonly (string | ethers.JsonFragment)[];
36
+ protected observeHandler(inPayloads?: CryptoContractFunctionCall[]): Promise<CryptoContractFunctionCallResult[]>;
37
+ }
38
+
39
+ declare const CryptoContractFunctionReadWitnessPlugin: () => _xyo_network_payloadset_plugin.PayloadSetWitnessPlugin<CryptoContractFunctionReadWitness<_xylabs_object.BaseParamsFields & {
40
+ account?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance | "random";
41
+ addToResolvers?: boolean;
42
+ additionalSigners?: _store__xyo_network_account_model_virtual_3afa553815_package.AccountInstance[];
43
+ allowNameResolution?: boolean;
44
+ config: _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & _xyo_network_payload_model.SchemaFields & _xyo_network_payload_model.PayloadFields & Omit<_xyo_network_module_model.ArchivingModuleConfig & _xyo_network_module_model.ModuleConfigFields & {
45
+ schema: "network.xyo.crypto.contract.function.read.config";
46
+ } & {
47
+ abi: _xyo_network_crypto_contract_function_read_payload_plugin.Abi;
48
+ address?: string;
49
+ args?: unknown[];
50
+ functionName?: string;
51
+ schema: _xyo_network_crypto_contract_function_read_payload_plugin.CryptoContractFunctionReadWitnessConfigSchema;
52
+ }, "schema"> & {
53
+ schema: "network.xyo.crypto.contract.function.read.config";
54
+ }, "schema"> & {
55
+ schema: string;
56
+ };
57
+ ephemeralQueryAccountEnabled?: boolean;
58
+ moduleIdentifierTransformers?: _xyo_network_module_model.ModuleIdentifierTransformer[];
59
+ } & {
60
+ providers: ethers.Provider[];
61
+ }>>;
62
+
63
+ export { CryptoContractDiviner, CryptoContractFunctionReadWitness, type CryptoContractFunctionReadWitnessParams, CryptoContractFunctionReadWitnessPlugin, type FindCallResult, CryptoContractFunctionReadWitnessPlugin as default };
@@ -1,25 +1,24 @@
1
- var __defProp = Object.defineProperty;
2
- var __getProtoOf = Object.getPrototypeOf;
3
- var __reflectGet = Reflect.get;
4
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
5
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
- var __superGet = (cls, obj, key) => __reflectGet(__getProtoOf(cls), key, obj);
8
-
9
1
  // src/Diviner/Diviner.ts
10
2
  import { assertEx } from "@xylabs/assert";
11
- import { asCryptoContractFunctionCallSuccess, ContractInfoSchema, CryptoContractDivinerConfigSchema, CryptoContractDivinerLabels, CryptoContractFunctionCallResultSchema } from "@xyo-network/crypto-contract-function-read-payload-plugin";
3
+ import {
4
+ asCryptoContractFunctionCallSuccess,
5
+ ContractInfoSchema,
6
+ CryptoContractDivinerConfigSchema,
7
+ CryptoContractDivinerLabels,
8
+ CryptoContractFunctionCallResultSchema
9
+ } from "@xyo-network/crypto-contract-function-read-payload-plugin";
12
10
  import { AbstractDiviner } from "@xyo-network/diviner-abstract";
13
11
  import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
14
- var _CryptoContractDiviner = class _CryptoContractDiviner extends AbstractDiviner {
12
+ var CryptoContractDiviner = class _CryptoContractDiviner extends AbstractDiviner {
13
+ static configSchemas = [...super.configSchemas, CryptoContractDivinerConfigSchema];
14
+ static defaultConfigSchema = CryptoContractDivinerConfigSchema;
15
+ static labels = { ...super.labels, ...CryptoContractDivinerLabels };
15
16
  static findCallResult(address, functionName, payloads) {
16
- var _a;
17
17
  const foundPayload = payloads.find((payload) => payload.functionName === functionName && payload.address === address);
18
- return (_a = asCryptoContractFunctionCallSuccess(foundPayload)) == null ? void 0 : _a.result;
18
+ return asCryptoContractFunctionCallSuccess(foundPayload)?.result;
19
19
  }
20
20
  static matchingExistingField(objs, field) {
21
- var _a;
22
- const expectedValue = (_a = objs.at(0)) == null ? void 0 : _a[field];
21
+ const expectedValue = objs.at(0)?.[field];
23
22
  const didNotMatch = objs.reduce((prev, obj) => {
24
23
  return prev || obj[field] !== expectedValue;
25
24
  }, false);
@@ -43,35 +42,25 @@ var _CryptoContractDiviner = class _CryptoContractDiviner extends AbstractDivine
43
42
  return prev;
44
43
  }, {})
45
44
  );
46
- const result = await Promise.all(addresses.map(async (address) => {
47
- const foundCallResults = callResults.filter((callResult) => callResult.address === address);
48
- const info = {
49
- results: await this.reduceResults(foundCallResults),
50
- ...this.contractInfoRequiredFields(foundCallResults)
51
- };
52
- return info;
53
- }));
45
+ const result = await Promise.all(
46
+ addresses.map(async (address) => {
47
+ const foundCallResults = callResults.filter((callResult) => callResult.address === address);
48
+ const info = {
49
+ results: await this.reduceResults(foundCallResults),
50
+ ...this.contractInfoRequiredFields(foundCallResults)
51
+ };
52
+ return info;
53
+ })
54
+ );
54
55
  return result;
55
56
  }
56
57
  reduceResults(callResults) {
57
58
  return callResults.reduce((prev, callResult) => {
58
- var _a;
59
- prev[callResult.functionName] = (_a = asCryptoContractFunctionCallSuccess(callResult)) == null ? void 0 : _a.result;
59
+ prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result;
60
60
  return prev;
61
61
  }, {});
62
62
  }
63
63
  };
64
- __name(_CryptoContractDiviner, "CryptoContractDiviner");
65
- __publicField(_CryptoContractDiviner, "configSchemas", [
66
- ...__superGet(_CryptoContractDiviner, _CryptoContractDiviner, "configSchemas"),
67
- CryptoContractDivinerConfigSchema
68
- ]);
69
- __publicField(_CryptoContractDiviner, "defaultConfigSchema", CryptoContractDivinerConfigSchema);
70
- __publicField(_CryptoContractDiviner, "labels", {
71
- ...__superGet(_CryptoContractDiviner, _CryptoContractDiviner, "labels"),
72
- ...CryptoContractDivinerLabels
73
- });
74
- var CryptoContractDiviner = _CryptoContractDiviner;
75
64
 
76
65
  // src/Plugin.ts
77
66
  import { NftSchema } from "@xyo-network/crypto-nft-payload-plugin";
@@ -81,51 +70,57 @@ import { createPayloadSetWitnessPlugin } from "@xyo-network/payloadset-plugin";
81
70
  // src/Witness.ts
82
71
  import { assertEx as assertEx2 } from "@xylabs/assert";
83
72
  import { AbstractWitness } from "@xyo-network/abstract-witness";
84
- import { CryptoContractFunctionCallResultSchema as CryptoContractFunctionCallResultSchema2, CryptoContractFunctionCallSchema, CryptoContractFunctionReadWitnessConfigSchema } from "@xyo-network/crypto-contract-function-read-payload-plugin";
73
+ import {
74
+ CryptoContractFunctionCallResultSchema as CryptoContractFunctionCallResultSchema2,
75
+ CryptoContractFunctionCallSchema,
76
+ CryptoContractFunctionReadWitnessConfigSchema
77
+ } from "@xyo-network/crypto-contract-function-read-payload-plugin";
85
78
  import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
86
79
  import { Contract } from "ethers";
87
- var _CryptoContractFunctionReadWitness = class _CryptoContractFunctionReadWitness extends AbstractWitness {
80
+ var CryptoContractFunctionReadWitness = class extends AbstractWitness {
81
+ static configSchemas = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema];
82
+ static defaultConfigSchema = CryptoContractFunctionReadWitnessConfigSchema;
88
83
  get abi() {
89
84
  return assertEx2(this.config.abi, () => "Missing abi");
90
85
  }
91
86
  async observeHandler(inPayloads = []) {
92
87
  await this.started("throw");
93
88
  try {
94
- const observations = await Promise.all(inPayloads.filter(isPayloadOfSchemaType2(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {
95
- const { providers } = this.params;
96
- const provider = providers[Date.now() % providers.length];
97
- const validatedAddress = assertEx2(address ?? this.config.address, () => "Missing address");
98
- const validatedFunctionName = assertEx2(functionName ?? this.config.functionName, () => "Missing address");
99
- const mergedArgs = [
100
- ...args ?? this.config.args ?? []
101
- ];
102
- const contract = new Contract(validatedAddress, this.abi, provider);
103
- try {
104
- const result = await contract[validatedFunctionName](...mergedArgs);
105
- const transformedResult = typeof result === "bigint" ? result.toString(16) : result;
106
- const observation = {
107
- address: validatedAddress,
108
- args: mergedArgs,
109
- chainId: Number((await provider.getNetwork()).chainId),
110
- functionName: validatedFunctionName,
111
- result: transformedResult,
112
- schema: CryptoContractFunctionCallResultSchema2
113
- };
114
- return observation;
115
- } catch (ex) {
116
- const error = ex;
117
- console.log(`Error [${this.config.name}]: ${error.code}`);
118
- const observation = {
119
- address: validatedAddress,
120
- args: mergedArgs,
121
- chainId: Number((await provider.getNetwork()).chainId),
122
- error: error.code,
123
- functionName: validatedFunctionName,
124
- schema: CryptoContractFunctionCallResultSchema2
125
- };
126
- return observation;
127
- }
128
- }));
89
+ const observations = await Promise.all(
90
+ inPayloads.filter(isPayloadOfSchemaType2(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {
91
+ const { providers } = this.params;
92
+ const provider = providers[Date.now() % providers.length];
93
+ const validatedAddress = assertEx2(address ?? this.config.address, () => "Missing address");
94
+ const validatedFunctionName = assertEx2(functionName ?? this.config.functionName, () => "Missing address");
95
+ const mergedArgs = [...args ?? this.config.args ?? []];
96
+ const contract = new Contract(validatedAddress, this.abi, provider);
97
+ try {
98
+ const result = await contract[validatedFunctionName](...mergedArgs);
99
+ const transformedResult = typeof result === "bigint" ? result.toString(16) : result;
100
+ const observation = {
101
+ address: validatedAddress,
102
+ args: mergedArgs,
103
+ chainId: Number((await provider.getNetwork()).chainId),
104
+ functionName: validatedFunctionName,
105
+ result: transformedResult,
106
+ schema: CryptoContractFunctionCallResultSchema2
107
+ };
108
+ return observation;
109
+ } catch (ex) {
110
+ const error = ex;
111
+ console.log(`Error [${this.config.name}]: ${error.code}`);
112
+ const observation = {
113
+ address: validatedAddress,
114
+ args: mergedArgs,
115
+ chainId: Number((await provider.getNetwork()).chainId),
116
+ error: error.code,
117
+ functionName: validatedFunctionName,
118
+ schema: CryptoContractFunctionCallResultSchema2
119
+ };
120
+ return observation;
121
+ }
122
+ })
123
+ );
129
124
  return observations;
130
125
  } catch (ex) {
131
126
  const error = ex;
@@ -134,26 +129,17 @@ var _CryptoContractFunctionReadWitness = class _CryptoContractFunctionReadWitnes
134
129
  }
135
130
  }
136
131
  };
137
- __name(_CryptoContractFunctionReadWitness, "CryptoContractFunctionReadWitness");
138
- __publicField(_CryptoContractFunctionReadWitness, "configSchemas", [
139
- ...__superGet(_CryptoContractFunctionReadWitness, _CryptoContractFunctionReadWitness, "configSchemas"),
140
- CryptoContractFunctionReadWitnessConfigSchema
141
- ]);
142
- __publicField(_CryptoContractFunctionReadWitness, "defaultConfigSchema", CryptoContractFunctionReadWitnessConfigSchema);
143
- var CryptoContractFunctionReadWitness = _CryptoContractFunctionReadWitness;
144
132
 
145
133
  // src/Plugin.ts
146
- var CryptoContractFunctionReadWitnessPlugin = /* @__PURE__ */ __name(() => createPayloadSetWitnessPlugin({
147
- required: {
148
- [NftSchema]: 1
149
- },
150
- schema: PayloadSetSchema
151
- }, {
152
- witness: /* @__PURE__ */ __name(async (params) => {
153
- const result = await CryptoContractFunctionReadWitness.create(params);
154
- return result;
155
- }, "witness")
156
- }), "CryptoContractFunctionReadWitnessPlugin");
134
+ var CryptoContractFunctionReadWitnessPlugin = () => createPayloadSetWitnessPlugin(
135
+ { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },
136
+ {
137
+ witness: async (params) => {
138
+ const result = await CryptoContractFunctionReadWitness.create(params);
139
+ return result;
140
+ }
141
+ }
142
+ );
157
143
  export {
158
144
  CryptoContractDiviner,
159
145
  CryptoContractFunctionReadWitness,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } from '@xyo-network/payload-model'\n\n/** @deprecated use EvmCallDiviner instead */\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\n/** @deprecated use EvmCallDiviner instead */\nexport class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractDivinerConfigSchema\n static override labels: CryptoContractDivinerLabels = { ...super.labels, ...CryptoContractDivinerLabels }\n\n protected static findCallResult<TResult = string>(\n address: string,\n functionName: string,\n payloads: CryptoContractFunctionCallResult[],\n ): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asCryptoContractFunctionCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo {\n return {\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: ContractInfoSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: CryptoContractFunctionCallResult[] = []): Promise<ContractInfo[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<CryptoContractFunctionCallResult>(CryptoContractFunctionCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const info: ContractInfo = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return info\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<Record<string, unknown>>((prev, callResult) => {\n prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result\n return prev\n }, {})\n }\n}\n","import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\n// eslint-disable-next-line import/no-deprecated\nimport { CryptoContractFunctionReadWitness } from './Witness.ts'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoContractFunctionReadWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } from 'ethers'\n\n/** @deprecated use EvmCallWitness instead */\nexport type CryptoContractFunctionReadWitnessParams = WitnessParams<\n AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>,\n {\n providers: Provider[]\n }\n>\n\n/** @deprecated use EvmCallWitness instead */\nexport class CryptoContractFunctionReadWitness<\n TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams,\n> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {\n const { providers } = this.params\n const provider = providers[Date.now() % providers.length] // pick a random provider\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])]\n\n const contract = new Contract(validatedAddress, this.abi, provider)\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n const transformedResult = typeof result === 'bigint' ? result.toString(16) : result\n const observation: CryptoContractFunctionCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n } catch (ex) {\n const error = ex as Error & { code: string }\n console.log(`Error [${this.config.name}]: ${error.code}`)\n const observation: CryptoContractFunctionCallFailure = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n error: error.code,\n functionName: validatedFunctionName,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n }\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":"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","names":["assertEx","asCryptoContractFunctionCallSuccess","ContractInfoSchema","CryptoContractDivinerConfigSchema","CryptoContractDivinerLabels","CryptoContractFunctionCallResultSchema","AbstractDiviner","isPayloadOfSchemaType","CryptoContractDiviner","AbstractDiviner","findCallResult","address","functionName","payloads","foundPayload","find","payload","asCryptoContractFunctionCallSuccess","result","matchingExistingField","objs","field","expectedValue","at","didNotMatch","reduce","prev","obj","undefined","contractInfoRequiredFields","callResults","assertEx","chainId","schema","ContractInfoSchema","divineHandler","inPayloads","filter","isPayloadOfSchemaType","CryptoContractFunctionCallResultSchema","addresses","Object","keys","Promise","all","map","foundCallResults","callResult","info","results","reduceResults","configSchemas","CryptoContractDivinerConfigSchema","defaultConfigSchema","labels","CryptoContractDivinerLabels","NftSchema","PayloadSetSchema","createPayloadSetWitnessPlugin","assertEx","AbstractWitness","CryptoContractFunctionCallResultSchema","CryptoContractFunctionCallSchema","CryptoContractFunctionReadWitnessConfigSchema","isPayloadOfSchemaType","Contract","CryptoContractFunctionReadWitness","AbstractWitness","abi","assertEx","config","observeHandler","inPayloads","started","observations","Promise","all","filter","isPayloadOfSchemaType","CryptoContractFunctionCallSchema","map","functionName","args","address","providers","params","provider","Date","now","length","validatedAddress","validatedFunctionName","mergedArgs","contract","Contract","result","transformedResult","toString","observation","chainId","Number","getNetwork","schema","CryptoContractFunctionCallResultSchema","ex","error","console","log","name","code","message","configSchemas","CryptoContractFunctionReadWitnessConfigSchema","defaultConfigSchema","CryptoContractFunctionReadWitnessPlugin","createPayloadSetWitnessPlugin","required","NftSchema","schema","PayloadSetSchema","witness","params","result","CryptoContractFunctionReadWitness","create"]}
1
+ {"version":3,"sources":["../../src/Diviner/Diviner.ts","../../src/Plugin.ts","../../src/Witness.ts"],"sourcesContent":["import { assertEx } from '@xylabs/assert'\nimport { Promisable } from '@xylabs/promise'\nimport {\n asCryptoContractFunctionCallSuccess,\n ContractInfo,\n ContractInfoSchema,\n CryptoContractDivinerConfigSchema,\n CryptoContractDivinerLabels,\n CryptoContractDivinerParams,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AbstractDiviner } from '@xyo-network/diviner-abstract'\nimport { isPayloadOfSchemaType, Payload, Schema } from '@xyo-network/payload-model'\n\n/** @deprecated use EvmCallDiviner instead */\nexport type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined]\n\n/** @deprecated use EvmCallDiviner instead */\nexport class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractDivinerConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractDivinerConfigSchema\n static override labels: CryptoContractDivinerLabels = { ...super.labels, ...CryptoContractDivinerLabels }\n\n protected static findCallResult<TResult = string>(\n address: string,\n functionName: string,\n payloads: CryptoContractFunctionCallResult[],\n ): TResult | undefined {\n const foundPayload = payloads.find(payload => payload.functionName === functionName && payload.address === address)\n return asCryptoContractFunctionCallSuccess(foundPayload)?.result as TResult | undefined\n }\n\n protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined {\n const expectedValue = objs.at(0)?.[field] as R\n // eslint-disable-next-line unicorn/no-array-reduce\n const didNotMatch = objs.reduce((prev, obj) => {\n return prev || obj[field] !== expectedValue\n }, false)\n return didNotMatch ? undefined : expectedValue\n }\n\n protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo {\n return {\n address: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'address'), () => 'Mismatched address'),\n chainId: assertEx(CryptoContractDiviner.matchingExistingField(callResults, 'chainId'), () => 'Mismatched chainId'),\n schema: ContractInfoSchema,\n }\n }\n\n protected override async divineHandler(inPayloads: CryptoContractFunctionCallResult[] = []): Promise<ContractInfo[]> {\n const callResults = inPayloads.filter(isPayloadOfSchemaType<CryptoContractFunctionCallResult>(CryptoContractFunctionCallResultSchema))\n const addresses = Object.keys(\n // eslint-disable-next-line unicorn/no-array-reduce\n callResults.reduce<Record<string, boolean>>((prev, result) => {\n if (result.address) {\n prev[result.address] = true\n }\n return prev\n }, {}),\n )\n const result = await Promise.all(\n addresses.map(async (address) => {\n const foundCallResults = callResults.filter(callResult => callResult.address === address)\n const info: ContractInfo = {\n results: await this.reduceResults(foundCallResults),\n ...this.contractInfoRequiredFields(foundCallResults),\n }\n return info\n }),\n )\n\n return result\n }\n\n protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']> {\n // eslint-disable-next-line unicorn/no-array-reduce\n return callResults.reduce<Record<string, unknown>>((prev, callResult) => {\n prev[callResult.functionName] = asCryptoContractFunctionCallSuccess(callResult)?.result\n return prev\n }, {})\n }\n}\n","import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'\nimport { PayloadSetSchema } from '@xyo-network/payload-model'\nimport { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'\n\n// eslint-disable-next-line import-x/no-deprecated\nimport { CryptoContractFunctionReadWitness } from './Witness.ts'\n\n/** @deprecated use EvmCallWitness instead */\nexport const CryptoContractFunctionReadWitnessPlugin = () =>\n\n createPayloadSetWitnessPlugin<CryptoContractFunctionReadWitness>(\n { required: { [NftSchema]: 1 }, schema: PayloadSetSchema },\n {\n witness: async (params) => {\n const result = await CryptoContractFunctionReadWitness.create(params)\n return result\n },\n },\n )\n","import { assertEx } from '@xylabs/assert'\nimport { AbstractWitness } from '@xyo-network/abstract-witness'\nimport {\n CryptoContractFunctionCall,\n CryptoContractFunctionCallFailure,\n CryptoContractFunctionCallResult,\n CryptoContractFunctionCallResultSchema,\n CryptoContractFunctionCallSchema,\n CryptoContractFunctionCallSuccess,\n CryptoContractFunctionReadWitnessConfig,\n CryptoContractFunctionReadWitnessConfigSchema,\n} from '@xyo-network/crypto-contract-function-read-payload-plugin'\nimport { AnyConfigSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType, Schema } from '@xyo-network/payload-model'\nimport { WitnessParams } from '@xyo-network/witness-model'\nimport { Contract, Provider } from 'ethers'\n\n/** @deprecated use EvmCallWitness instead */\nexport type CryptoContractFunctionReadWitnessParams = WitnessParams<\n AnyConfigSchema<CryptoContractFunctionReadWitnessConfig>,\n {\n providers: Provider[]\n }\n>\n\n/** @deprecated use EvmCallWitness instead */\nexport class CryptoContractFunctionReadWitness<\n TParams extends CryptoContractFunctionReadWitnessParams = CryptoContractFunctionReadWitnessParams,\n> extends AbstractWitness<TParams, CryptoContractFunctionCall, CryptoContractFunctionCallResult> {\n static override readonly configSchemas: Schema[] = [...super.configSchemas, CryptoContractFunctionReadWitnessConfigSchema]\n static override readonly defaultConfigSchema: Schema = CryptoContractFunctionReadWitnessConfigSchema\n\n get abi() {\n return assertEx(this.config.abi, () => 'Missing abi')\n }\n\n protected override async observeHandler(inPayloads: CryptoContractFunctionCall[] = []): Promise<CryptoContractFunctionCallResult[]> {\n await this.started('throw')\n try {\n const observations = await Promise.all(\n inPayloads.filter(isPayloadOfSchemaType(CryptoContractFunctionCallSchema)).map(async ({ functionName, args, address }) => {\n const { providers } = this.params\n const provider = providers[Date.now() % providers.length] // pick a random provider\n const validatedAddress = assertEx(address ?? this.config.address, () => 'Missing address')\n const validatedFunctionName = assertEx(functionName ?? this.config.functionName, () => 'Missing address')\n const mergedArgs = [...(args ?? this.config.args ?? [])]\n\n const contract = new Contract(validatedAddress, this.abi, provider)\n try {\n const result = await contract[validatedFunctionName](...mergedArgs)\n const transformedResult = typeof result === 'bigint' ? result.toString(16) : result\n const observation: CryptoContractFunctionCallSuccess = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n functionName: validatedFunctionName,\n result: transformedResult,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n } catch (ex) {\n const error = ex as Error & { code: string }\n console.log(`Error [${this.config.name}]: ${error.code}`)\n const observation: CryptoContractFunctionCallFailure = {\n address: validatedAddress,\n args: mergedArgs,\n chainId: Number((await provider.getNetwork()).chainId),\n error: error.code,\n functionName: validatedFunctionName,\n schema: CryptoContractFunctionCallResultSchema,\n }\n return observation\n }\n }),\n )\n return observations\n } catch (ex) {\n const error = ex as Error\n console.log(`Error [${this.config.name}]: ${error.message}`)\n throw error\n }\n }\n}\n"],"mappings":"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","names":["result","assertEx","CryptoContractFunctionCallResultSchema","isPayloadOfSchemaType"]}
package/package.json CHANGED
@@ -10,75 +10,56 @@
10
10
  "url": "https://github.com/XYOracleNetwork/plugins/issues"
11
11
  },
12
12
  "dependencies": {
13
- "@xylabs/assert": "^3.6.8",
14
- "@xylabs/promise": "^3.6.8",
15
- "@xyo-network/abstract-witness": "^2.111.2",
16
- "@xyo-network/crypto-contract-function-read-payload-plugin": "^2.99.5",
17
- "@xyo-network/crypto-nft-payload-plugin": "^2.99.5",
18
- "@xyo-network/diviner-abstract": "^2.111.2",
19
- "@xyo-network/module-model": "^2.111.2",
20
- "@xyo-network/payload-model": "^2.111.2",
21
- "@xyo-network/payloadset-plugin": "^2.111.2",
22
- "@xyo-network/witness-model": "^2.111.2",
13
+ "@xylabs/assert": "^4.0.0",
14
+ "@xylabs/promise": "^4.0.0",
15
+ "@xyo-network/abstract-witness": "^3.0.1",
16
+ "@xyo-network/crypto-contract-function-read-payload-plugin": "^3.0.0",
17
+ "@xyo-network/crypto-nft-payload-plugin": "^3.0.0",
18
+ "@xyo-network/diviner-abstract": "^3.0.1",
19
+ "@xyo-network/module-model": "^3.0.1",
20
+ "@xyo-network/payload-model": "^3.0.1",
21
+ "@xyo-network/payloadset-plugin": "^3.0.1",
22
+ "@xyo-network/witness-model": "^3.0.1",
23
23
  "ethers": "^6.13.2"
24
24
  },
25
25
  "devDependencies": {
26
- "@xylabs/delay": "^3.6.8",
27
- "@xylabs/hex": "^3.6.8",
28
- "@xylabs/jest-helpers": "^3.6.8",
29
- "@xylabs/ts-scripts-yarn3": "^3.15.13",
30
- "@xylabs/tsconfig": "^3.15.13",
31
- "@xyo-network/account": "^2.111.2",
32
- "@xyo-network/archivist-memory": "^2.111.2",
33
- "@xyo-network/diviner-boundwitness-memory": "^2.111.2",
34
- "@xyo-network/diviner-jsonpatch": "^2.111.2",
35
- "@xyo-network/diviner-jsonpath-aggregate-memory": "^2.111.2",
36
- "@xyo-network/diviner-model": "^2.111.2",
37
- "@xyo-network/diviner-payload-memory": "^2.111.2",
38
- "@xyo-network/diviner-payload-model": "^2.111.2",
39
- "@xyo-network/diviner-range": "^2.111.2",
40
- "@xyo-network/diviner-temporal-indexing": "^2.111.2",
41
- "@xyo-network/evm-nft-id-payload-plugin": "^2.99.5",
42
- "@xyo-network/manifest": "^2.111.2",
43
- "@xyo-network/module-factory-locator": "^2.111.2",
44
- "@xyo-network/node-memory": "^2.111.2",
45
- "@xyo-network/open-zeppelin-typechain": "^3.0.5",
46
- "@xyo-network/sentinel-model": "^2.111.2",
47
- "@xyo-network/witness-blockchain-abstract": "^2.111.2",
48
- "@xyo-network/witness-timestamp": "^2.111.2",
26
+ "@xylabs/delay": "^4.0.0",
27
+ "@xylabs/hex": "^4.0.0",
28
+ "@xylabs/jest-helpers": "^4.0.0",
29
+ "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
30
+ "@xylabs/tsconfig": "^4.0.0-rc.15",
31
+ "@xyo-network/account": "^3.0.1",
32
+ "@xyo-network/archivist-memory": "^3.0.1",
33
+ "@xyo-network/diviner-boundwitness-memory": "^3.0.1",
34
+ "@xyo-network/diviner-jsonpatch": "^3.0.1",
35
+ "@xyo-network/diviner-jsonpath-aggregate-memory": "^3.0.1",
36
+ "@xyo-network/diviner-model": "^3.0.1",
37
+ "@xyo-network/diviner-payload-memory": "^3.0.1",
38
+ "@xyo-network/diviner-payload-model": "^3.0.1",
39
+ "@xyo-network/diviner-range": "^3.0.1",
40
+ "@xyo-network/diviner-temporal-indexing": "^3.0.1",
41
+ "@xyo-network/evm-nft-id-payload-plugin": "^3.0.0",
42
+ "@xyo-network/manifest": "^3.0.1",
43
+ "@xyo-network/module-factory-locator": "^3.0.1",
44
+ "@xyo-network/node-memory": "^3.0.1",
45
+ "@xyo-network/open-zeppelin-typechain": "^3.1.0",
46
+ "@xyo-network/sentinel-model": "^3.0.1",
47
+ "@xyo-network/witness-blockchain-abstract": "^3.0.1",
48
+ "@xyo-network/witness-timestamp": "^3.0.1",
49
49
  "async-mutex": "^0.5.0",
50
50
  "jest": "^29.7.0",
51
51
  "typescript": "^5.5.4"
52
52
  },
53
53
  "description": "Typescript/Javascript Plugins for XYO Platform",
54
- "types": "dist/node/index.d.ts",
54
+ "types": "dist/neutral/index.d.ts",
55
55
  "exports": {
56
56
  ".": {
57
- "browser": {
58
- "require": {
59
- "types": "./dist/browser/index.d.cts",
60
- "default": "./dist/browser/index.cjs"
61
- },
62
- "import": {
63
- "types": "./dist/browser/index.d.mts",
64
- "default": "./dist/browser/index.mjs"
65
- }
66
- },
67
- "node": {
68
- "require": {
69
- "types": "./dist/node/index.d.cts",
70
- "default": "./dist/node/index.cjs"
71
- },
72
- "import": {
73
- "types": "./dist/node/index.d.mts",
74
- "default": "./dist/node/index.mjs"
75
- }
76
- }
57
+ "types": "./dist/neutral/index.d.ts",
58
+ "default": "./dist/neutral/index.mjs"
77
59
  },
78
60
  "./package.json": "./package.json"
79
61
  },
80
- "main": "dist/node/index.cjs",
81
- "module": "dist/node/index.mjs",
62
+ "module": "dist/neutral/index.mjs",
82
63
  "homepage": "https://xyo.network",
83
64
  "license": "LGPL-3.0-only",
84
65
  "publishConfig": {
@@ -89,6 +70,6 @@
89
70
  "url": "https://github.com/XYOracleNetwork/plugins.git"
90
71
  },
91
72
  "sideEffects": false,
92
- "version": "2.99.5",
73
+ "version": "3.0.0",
93
74
  "type": "module"
94
75
  }
package/src/Plugin.ts CHANGED
@@ -2,7 +2,7 @@ import { NftSchema } from '@xyo-network/crypto-nft-payload-plugin'
2
2
  import { PayloadSetSchema } from '@xyo-network/payload-model'
3
3
  import { createPayloadSetWitnessPlugin } from '@xyo-network/payloadset-plugin'
4
4
 
5
- // eslint-disable-next-line import/no-deprecated
5
+ // eslint-disable-next-line import-x/no-deprecated
6
6
  import { CryptoContractFunctionReadWitness } from './Witness.ts'
7
7
 
8
8
  /** @deprecated use EvmCallWitness instead */
@@ -1,16 +0,0 @@
1
- import { Promisable } from '@xylabs/promise';
2
- import { ContractInfo, CryptoContractDivinerLabels, CryptoContractDivinerParams, CryptoContractFunctionCallResult } from '@xyo-network/crypto-contract-function-read-payload-plugin';
3
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
4
- import { Payload, Schema } from '@xyo-network/payload-model';
5
- export type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined];
6
- export declare class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {
7
- static readonly configSchemas: Schema[];
8
- static readonly defaultConfigSchema: Schema;
9
- static labels: CryptoContractDivinerLabels;
10
- protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: CryptoContractFunctionCallResult[]): TResult | undefined;
11
- protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined;
12
- protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo;
13
- protected divineHandler(inPayloads?: CryptoContractFunctionCallResult[]): Promise<ContractInfo[]>;
14
- protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']>;
15
- }
16
- //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAEL,YAAY,EAGZ,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,EAEjC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAyB,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,MAAM,cAAc,CAAC,OAAO,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAGvI,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA8D;IAC9G,gBAAyB,mBAAmB,EAAE,MAAM,CAAoC;IACxF,OAAgB,MAAM,EAAE,2BAA2B,CAAsD;IAEzG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,GAAG,MAAM,EAC9C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,gCAAgC,EAAE,GAC3C,OAAO,GAAG,SAAS;IAKtB,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;IASzH,SAAS,CAAC,0BAA0B,CAAC,WAAW,EAAE,gCAAgC,EAAE,GAAG,YAAY;cAQ1E,aAAa,CAAC,UAAU,GAAE,gCAAgC,EAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyBpH,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,gCAAgC,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;CAO9G"}
@@ -1,16 +0,0 @@
1
- import { Promisable } from '@xylabs/promise';
2
- import { ContractInfo, CryptoContractDivinerLabels, CryptoContractDivinerParams, CryptoContractFunctionCallResult } from '@xyo-network/crypto-contract-function-read-payload-plugin';
3
- import { AbstractDiviner } from '@xyo-network/diviner-abstract';
4
- import { Payload, Schema } from '@xyo-network/payload-model';
5
- export type FindCallResult<TResult = string, TPayload = Payload> = [TResult, TPayload] | [undefined, TPayload] | [undefined, undefined];
6
- export declare class CryptoContractDiviner<TParams extends CryptoContractDivinerParams = CryptoContractDivinerParams> extends AbstractDiviner<TParams> {
7
- static readonly configSchemas: Schema[];
8
- static readonly defaultConfigSchema: Schema;
9
- static labels: CryptoContractDivinerLabels;
10
- protected static findCallResult<TResult = string>(address: string, functionName: string, payloads: CryptoContractFunctionCallResult[]): TResult | undefined;
11
- protected static matchingExistingField<R = string, T extends Payload = Payload>(objs: T[], field: keyof T): R | undefined;
12
- protected contractInfoRequiredFields(callResults: CryptoContractFunctionCallResult[]): ContractInfo;
13
- protected divineHandler(inPayloads?: CryptoContractFunctionCallResult[]): Promise<ContractInfo[]>;
14
- protected reduceResults(callResults: CryptoContractFunctionCallResult[]): Promisable<ContractInfo['results']>;
15
- }
16
- //# sourceMappingURL=Diviner.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Diviner.d.ts","sourceRoot":"","sources":["../../../src/Diviner/Diviner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAEL,YAAY,EAGZ,2BAA2B,EAC3B,2BAA2B,EAC3B,gCAAgC,EAEjC,MAAM,2DAA2D,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAA;AAC/D,OAAO,EAAyB,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AAGnF,MAAM,MAAM,cAAc,CAAC,OAAO,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;AAGvI,qBAAa,qBAAqB,CAAC,OAAO,SAAS,2BAA2B,GAAG,2BAA2B,CAAE,SAAQ,eAAe,CAAC,OAAO,CAAC;IAC5I,gBAAyB,aAAa,EAAE,MAAM,EAAE,CAA8D;IAC9G,gBAAyB,mBAAmB,EAAE,MAAM,CAAoC;IACxF,OAAgB,MAAM,EAAE,2BAA2B,CAAsD;IAEzG,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,GAAG,MAAM,EAC9C,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,gCAAgC,EAAE,GAC3C,OAAO,GAAG,SAAS;IAKtB,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS;IASzH,SAAS,CAAC,0BAA0B,CAAC,WAAW,EAAE,gCAAgC,EAAE,GAAG,YAAY;cAQ1E,aAAa,CAAC,UAAU,GAAE,gCAAgC,EAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAyBpH,SAAS,CAAC,aAAa,CAAC,WAAW,EAAE,gCAAgC,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;CAO9G"}