@hashgraphonline/standards-sdk 0.1.184 → 0.1.186
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/dist/browser/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/browser/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/index.d.ts +21 -0
- package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/browser/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/browser/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/browser/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/browser/hcs-25/identifiers.d.ts +24 -0
- package/dist/browser/hcs-25/identifiers.d.ts.map +1 -0
- package/dist/browser/hcs-25/index.d.ts +6 -0
- package/dist/browser/hcs-25/index.d.ts.map +1 -0
- package/dist/browser/hcs-25/scoring.d.ts +32 -0
- package/dist/browser/hcs-25/scoring.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/index.d.ts +20 -0
- package/dist/browser/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/browser/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/operational.d.ts +757 -0
- package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/types.d.ts +363 -0
- package/dist/browser/hcs-25/types.d.ts.map +1 -0
- package/dist/browser/index.d.ts +1 -0
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/browser-root/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/index.d.ts +21 -0
- package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/browser-root/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/browser-root/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/identifiers.d.ts +24 -0
- package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/index.d.ts +6 -0
- package/dist/browser-root/hcs-25/index.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/scoring.d.ts +32 -0
- package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/index.d.ts +20 -0
- package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/browser-root/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/operational.d.ts +757 -0
- package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/types.d.ts +363 -0
- package/dist/browser-root/hcs-25/types.d.ts.map +1 -0
- package/dist/browser-root/index.d.ts +1 -0
- package/dist/browser-root/index.d.ts.map +1 -1
- package/dist/cjs/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/cjs/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/index.d.ts +21 -0
- package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/cjs/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/cjs/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/cjs/hcs-25/identifiers.d.ts +24 -0
- package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -0
- package/dist/cjs/hcs-25/index.d.ts +6 -0
- package/dist/cjs/hcs-25/index.d.ts.map +1 -0
- package/dist/cjs/hcs-25/scoring.d.ts +32 -0
- package/dist/cjs/hcs-25/scoring.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/index.d.ts +20 -0
- package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/cjs/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/operational.d.ts +757 -0
- package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/types.d.ts +363 -0
- package/dist/cjs/hcs-25/types.d.ts.map +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/es/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/index.d.ts +21 -0
- package/dist/es/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/es/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/es/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/es/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/es/hcs-25/identifiers.d.ts +24 -0
- package/dist/es/hcs-25/identifiers.d.ts.map +1 -0
- package/dist/es/hcs-25/index.d.ts +6 -0
- package/dist/es/hcs-25/index.d.ts.map +1 -0
- package/dist/es/hcs-25/scoring.d.ts +32 -0
- package/dist/es/hcs-25/scoring.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/index.d.ts +20 -0
- package/dist/es/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/es/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/operational.d.ts +757 -0
- package/dist/es/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/types.d.ts +363 -0
- package/dist/es/hcs-25/types.d.ts.map +1 -0
- package/dist/es/index.d.ts +1 -0
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +131 -40
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +2 -2
- package/dist/es/standards-sdk.es103.js +2 -2
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es106.js +1 -1
- package/dist/es/standards-sdk.es108.js +2 -2
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es111.js +2 -2
- package/dist/es/standards-sdk.es115.js +3 -3
- package/dist/es/standards-sdk.es116.js +4 -4
- package/dist/es/standards-sdk.es117.js +19 -251
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +60 -475
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +218 -86
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +225 -159
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +50 -33
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +250 -10
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +448 -152
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +101 -25
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +155 -17
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +29 -155
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +9 -198
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +146 -754
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +27 -11
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +19 -564
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +140 -606
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +200 -12
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +790 -2
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +10 -84
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +567 -40
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +626 -2
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +12 -234
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +2 -1140
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +73 -292
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +36 -418
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +2 -355
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +198 -1085
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +1107 -175
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +218 -1479
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +419 -1154
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +351 -13
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +1077 -214
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +208 -4
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +1564 -78
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +1153 -83
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +15 -58
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +259 -2547
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +4 -159
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +81 -7
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +79 -78
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +56 -61
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +2547 -30
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +159 -34
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +7 -48
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +5 -5
- package/dist/es/standards-sdk.es160.js +70 -122
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +58 -35
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +190 -12478
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +22 -52
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +54 -107
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +90 -76
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +46 -197
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +203 -16
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +54 -670
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +44 -167
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +55 -321
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +45 -342
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +115 -446
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +51 -328
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +42 -74
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +72 -73
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +68 -139
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +44 -517
- package/dist/es/standards-sdk.es177.js.map +1 -1
- package/dist/es/standards-sdk.es178.js +33 -256
- package/dist/es/standards-sdk.es178.js.map +1 -1
- package/dist/es/standards-sdk.es179.js +30 -196
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +12 -12
- package/dist/es/standards-sdk.es180.js +34 -119
- package/dist/es/standards-sdk.es180.js.map +1 -1
- package/dist/es/standards-sdk.es181.js +48 -152
- package/dist/es/standards-sdk.es181.js.map +1 -1
- package/dist/es/standards-sdk.es182.js +126 -172
- package/dist/es/standards-sdk.es182.js.map +1 -1
- package/dist/es/standards-sdk.es183.js +34 -676
- package/dist/es/standards-sdk.es183.js.map +1 -1
- package/dist/es/standards-sdk.es184.js +12453 -156
- package/dist/es/standards-sdk.es184.js.map +1 -1
- package/dist/es/standards-sdk.es185.js +14 -232
- package/dist/es/standards-sdk.es185.js.map +1 -1
- package/dist/es/standards-sdk.es186.js +642 -209
- package/dist/es/standards-sdk.es186.js.map +1 -1
- package/dist/es/standards-sdk.es187.js +114 -0
- package/dist/es/standards-sdk.es187.js.map +1 -0
- package/dist/es/standards-sdk.es188.js +76 -0
- package/dist/es/standards-sdk.es188.js.map +1 -0
- package/dist/es/standards-sdk.es189.js +59 -0
- package/dist/es/standards-sdk.es189.js.map +1 -0
- package/dist/es/standards-sdk.es19.js +9 -9
- package/dist/es/standards-sdk.es190.js +84 -0
- package/dist/es/standards-sdk.es190.js.map +1 -0
- package/dist/es/standards-sdk.es191.js +203 -0
- package/dist/es/standards-sdk.es191.js.map +1 -0
- package/dist/es/standards-sdk.es192.js +175 -0
- package/dist/es/standards-sdk.es192.js.map +1 -0
- package/dist/es/standards-sdk.es193.js +325 -0
- package/dist/es/standards-sdk.es193.js.map +1 -0
- package/dist/es/standards-sdk.es194.js +349 -0
- package/dist/es/standards-sdk.es194.js.map +1 -0
- package/dist/es/standards-sdk.es195.js +456 -0
- package/dist/es/standards-sdk.es195.js.map +1 -0
- package/dist/es/standards-sdk.es196.js +334 -0
- package/dist/es/standards-sdk.es196.js.map +1 -0
- package/dist/es/standards-sdk.es197.js +79 -0
- package/dist/es/standards-sdk.es197.js.map +1 -0
- package/dist/es/standards-sdk.es198.js +142 -0
- package/dist/es/standards-sdk.es198.js.map +1 -0
- package/dist/es/standards-sdk.es199.js +520 -0
- package/dist/es/standards-sdk.es199.js.map +1 -0
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es200.js +262 -0
- package/dist/es/standards-sdk.es200.js.map +1 -0
- package/dist/es/standards-sdk.es201.js +199 -0
- package/dist/es/standards-sdk.es201.js.map +1 -0
- package/dist/es/standards-sdk.es202.js +122 -0
- package/dist/es/standards-sdk.es202.js.map +1 -0
- package/dist/es/standards-sdk.es203.js +155 -0
- package/dist/es/standards-sdk.es203.js.map +1 -0
- package/dist/es/standards-sdk.es204.js +187 -0
- package/dist/es/standards-sdk.es204.js.map +1 -0
- package/dist/es/standards-sdk.es205.js +687 -0
- package/dist/es/standards-sdk.es205.js.map +1 -0
- package/dist/es/standards-sdk.es206.js +188 -0
- package/dist/es/standards-sdk.es206.js.map +1 -0
- package/dist/es/standards-sdk.es207.js +238 -0
- package/dist/es/standards-sdk.es207.js.map +1 -0
- package/dist/es/standards-sdk.es208.js +242 -0
- package/dist/es/standards-sdk.es208.js.map +1 -0
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +12 -12
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +6 -6
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es67.js +7 -7
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +3 -3
- package/dist/es/standards-sdk.es75.js +5 -5
- package/dist/es/standards-sdk.es76.js +3 -3
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +2 -2
- package/dist/es/standards-sdk.es83.js +2 -2
- package/dist/es/standards-sdk.es84.js +4 -4
- package/dist/es/standards-sdk.es85.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es89.js +2 -2
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +4 -4
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es96.js +2 -2
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/standards-sdk.es99.js +3 -3
- package/package.json +1 -1
|
@@ -1,456 +1,125 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
} else if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {
|
|
22
|
-
const signedTx = proto.SignedTransaction.decode(
|
|
23
|
-
tx.signedTransactionBytes
|
|
24
|
-
);
|
|
25
|
-
if (signedTx.bodyBytes) {
|
|
26
|
-
txBody = proto.TransactionBody.decode(signedTx.bodyBytes);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
if (txBody) {
|
|
30
|
-
const protoResult = this.parseFromProtobufTxBody(txBody);
|
|
31
|
-
if (protoResult.type && protoResult.type !== "UNKNOWN") {
|
|
32
|
-
return protoResult;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
} catch (protoError) {
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return this.parseFromTransactionInternals(transaction);
|
|
40
|
-
} catch (error) {
|
|
41
|
-
return {
|
|
42
|
-
type: "UNKNOWN",
|
|
43
|
-
humanReadableType: "Unknown Contract Transaction"
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Parse contract transaction from protobuf TransactionBody
|
|
49
|
-
* Handles all contract operations from decoded protobuf data
|
|
50
|
-
*/
|
|
51
|
-
static parseFromProtobufTxBody(txBody) {
|
|
52
|
-
if (txBody.contractCall) {
|
|
53
|
-
const contractCall = this.parseContractCall(txBody.contractCall);
|
|
54
|
-
if (contractCall) {
|
|
55
|
-
return {
|
|
56
|
-
type: "CONTRACTCALL",
|
|
57
|
-
humanReadableType: "Contract Call",
|
|
58
|
-
contractCall
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
if (txBody.contractCreateInstance) {
|
|
63
|
-
const contractCreate = this.parseContractCreate(
|
|
64
|
-
txBody.contractCreateInstance
|
|
65
|
-
);
|
|
66
|
-
if (contractCreate) {
|
|
67
|
-
return {
|
|
68
|
-
type: "CONTRACTCREATE",
|
|
69
|
-
humanReadableType: "Contract Create",
|
|
70
|
-
contractCreate
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
if (txBody.contractUpdateInstance) {
|
|
75
|
-
const contractUpdate = this.parseContractUpdate(
|
|
76
|
-
txBody.contractUpdateInstance
|
|
77
|
-
);
|
|
78
|
-
if (contractUpdate) {
|
|
79
|
-
return {
|
|
80
|
-
type: "CONTRACTUPDATE",
|
|
81
|
-
humanReadableType: "Contract Update",
|
|
82
|
-
contractUpdate
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
if (txBody.contractDeleteInstance) {
|
|
87
|
-
const contractDelete = this.parseContractDelete(
|
|
88
|
-
txBody.contractDeleteInstance
|
|
89
|
-
);
|
|
90
|
-
if (contractDelete) {
|
|
91
|
-
return {
|
|
92
|
-
type: "CONTRACTDELETE",
|
|
93
|
-
humanReadableType: "Contract Delete",
|
|
94
|
-
contractDelete
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
if (txBody.ethereumTransaction) {
|
|
99
|
-
const ethereumCall = this.parseEthereumTransaction(
|
|
100
|
-
txBody.ethereumTransaction
|
|
101
|
-
);
|
|
102
|
-
if (ethereumCall) {
|
|
103
|
-
return {
|
|
104
|
-
type: "ETHEREUMTRANSACTION",
|
|
105
|
-
humanReadableType: "Ethereum Transaction",
|
|
106
|
-
ethereumTransaction: ethereumCall
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
return {};
|
|
111
|
-
}
|
|
112
|
-
/**
|
|
113
|
-
* Extract contract data from Transaction internal fields
|
|
114
|
-
* This handles cases where data is stored in Transaction object internals
|
|
115
|
-
*/
|
|
116
|
-
static parseFromTransactionInternals(transaction) {
|
|
117
|
-
try {
|
|
118
|
-
const tx = transaction;
|
|
119
|
-
if (tx._contractId && tx._gas) {
|
|
120
|
-
const contractCall = {
|
|
121
|
-
contractId: tx._contractId.toString(),
|
|
122
|
-
gas: typeof tx._gas === "number" ? tx._gas : Long.fromValue(tx._gas).toNumber(),
|
|
123
|
-
amount: tx._amount ? parseFloat(tx._amount.toString()) : 0
|
|
124
|
-
};
|
|
125
|
-
if (tx._functionParameters) {
|
|
126
|
-
const funcParams = Buffer.from(tx._functionParameters).toString(
|
|
127
|
-
"hex"
|
|
128
|
-
);
|
|
129
|
-
contractCall.functionParameters = funcParams;
|
|
130
|
-
contractCall.functionName = this.extractFunctionName(funcParams);
|
|
131
|
-
}
|
|
132
|
-
return {
|
|
133
|
-
type: "CONTRACTCALL",
|
|
134
|
-
humanReadableType: "Contract Call",
|
|
135
|
-
contractCall
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
if (hasTransactionType(transaction, "contractCreateInstance")) {
|
|
139
|
-
const contractCreate = {
|
|
140
|
-
gas: tx._gas.toString(),
|
|
141
|
-
initialBalance: tx._initialBalance?.toString() || "0"
|
|
142
|
-
};
|
|
143
|
-
if (tx._fileId) {
|
|
144
|
-
contractCreate.initcodeSource = "fileID";
|
|
145
|
-
contractCreate.initcode = tx._fileId.toString();
|
|
146
|
-
} else if (tx._bytecode) {
|
|
147
|
-
contractCreate.initcodeSource = "bytes";
|
|
148
|
-
contractCreate.initcode = Buffer.from(tx._bytecode).toString("hex");
|
|
149
|
-
}
|
|
150
|
-
if (tx._constructorParameters) {
|
|
151
|
-
contractCreate.constructorParameters = Buffer.from(
|
|
152
|
-
tx._constructorParameters
|
|
153
|
-
).toString("hex");
|
|
154
|
-
}
|
|
155
|
-
if (tx._memo) contractCreate.memo = tx._memo;
|
|
156
|
-
if (tx._adminKey) contractCreate.adminKey = parseKey(tx._adminKey);
|
|
157
|
-
if (tx._maxAutomaticTokenAssociations !== void 0) {
|
|
158
|
-
contractCreate.maxAutomaticTokenAssociations = tx._maxAutomaticTokenAssociations;
|
|
159
|
-
}
|
|
160
|
-
if (tx._stakedAccountId) {
|
|
161
|
-
contractCreate.stakedAccountId = tx._stakedAccountId.toString();
|
|
162
|
-
} else if (tx._stakedNodeId !== null && tx._stakedNodeId !== void 0) {
|
|
163
|
-
contractCreate.stakedNodeId = Long.fromValue(
|
|
164
|
-
tx._stakedNodeId
|
|
165
|
-
).toString();
|
|
166
|
-
}
|
|
167
|
-
if (tx._declineReward !== void 0)
|
|
168
|
-
contractCreate.declineReward = tx._declineReward;
|
|
169
|
-
if (tx._autoRenewPeriod)
|
|
170
|
-
contractCreate.autoRenewPeriod = tx._autoRenewPeriod.toString();
|
|
171
|
-
return {
|
|
172
|
-
type: "CONTRACTCREATE",
|
|
173
|
-
humanReadableType: "Contract Create",
|
|
174
|
-
contractCreate
|
|
175
|
-
};
|
|
176
|
-
}
|
|
177
|
-
if (hasTransactionType(transaction, "contractUpdateInstance")) {
|
|
178
|
-
const contractUpdate = {
|
|
179
|
-
contractIdToUpdate: tx._contractId.toString()
|
|
180
|
-
};
|
|
181
|
-
if (tx._memo) contractUpdate.memo = tx._memo;
|
|
182
|
-
if (tx._adminKey) contractUpdate.adminKey = parseKey(tx._adminKey);
|
|
183
|
-
if (tx._maxAutomaticTokenAssociations !== void 0) {
|
|
184
|
-
contractUpdate.maxAutomaticTokenAssociations = tx._maxAutomaticTokenAssociations;
|
|
185
|
-
}
|
|
186
|
-
if (tx._stakedAccountId) {
|
|
187
|
-
contractUpdate.stakedAccountId = tx._stakedAccountId.toString();
|
|
188
|
-
} else if (tx._stakedNodeId !== null && tx._stakedNodeId !== void 0) {
|
|
189
|
-
contractUpdate.stakedNodeId = Long.fromValue(
|
|
190
|
-
tx._stakedNodeId
|
|
191
|
-
).toString();
|
|
192
|
-
}
|
|
193
|
-
if (tx._declineReward !== void 0)
|
|
194
|
-
contractUpdate.declineReward = tx._declineReward;
|
|
195
|
-
if (tx._autoRenewPeriod)
|
|
196
|
-
contractUpdate.autoRenewPeriod = tx._autoRenewPeriod.toString();
|
|
197
|
-
return {
|
|
198
|
-
type: "CONTRACTUPDATE",
|
|
199
|
-
humanReadableType: "Contract Update",
|
|
200
|
-
contractUpdate
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
if (hasTransactionType(transaction, "contractDeleteInstance")) {
|
|
204
|
-
const contractDelete = {
|
|
205
|
-
contractIdToDelete: tx._contractId.toString()
|
|
206
|
-
};
|
|
207
|
-
if (tx._transferAccountId) {
|
|
208
|
-
contractDelete.transferAccountId = tx._transferAccountId.toString();
|
|
209
|
-
} else if (tx._transferContractId) {
|
|
210
|
-
contractDelete.transferContractId = tx._transferContractId.toString();
|
|
211
|
-
}
|
|
212
|
-
return {
|
|
213
|
-
type: "CONTRACTDELETE",
|
|
214
|
-
humanReadableType: "Contract Delete",
|
|
215
|
-
contractDelete
|
|
216
|
-
};
|
|
217
|
-
}
|
|
218
|
-
return {};
|
|
219
|
-
} catch (error) {
|
|
220
|
-
return {};
|
|
221
|
-
}
|
|
1
|
+
import { clampScore } from "./standards-sdk.es119.js";
|
|
2
|
+
import { readMetadataRecord, readNumber, isJsonObject } from "./standards-sdk.es178.js";
|
|
3
|
+
import "./standards-sdk.es162.js";
|
|
4
|
+
import "./standards-sdk.es175.js";
|
|
5
|
+
import "./standards-sdk.es176.js";
|
|
6
|
+
import "./standards-sdk.es177.js";
|
|
7
|
+
import { clampUnit } from "./standards-sdk.es163.js";
|
|
8
|
+
const MISSING = { value: 0, status: "missing" };
|
|
9
|
+
const DEFAULT_STAKE_MULTIPLIERS = {
|
|
10
|
+
low: 0.5,
|
|
11
|
+
medium: 1,
|
|
12
|
+
high: 2,
|
|
13
|
+
critical: 3
|
|
14
|
+
};
|
|
15
|
+
const DISCRIMINATIVE_POWER_BLOCK_RATE = 0.05;
|
|
16
|
+
const STAKE_MULTIPLIER_QUALITY_CAP = 1.5;
|
|
17
|
+
function computeStakeMultiplier(summary, multipliers) {
|
|
18
|
+
const distribution = summary.stakeDistribution;
|
|
19
|
+
if (!isJsonObject(distribution)) {
|
|
20
|
+
return 1;
|
|
222
21
|
}
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
const
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
"18160ddd": "totalSupply",
|
|
237
|
-
"06fdde03": "name",
|
|
238
|
-
"95d89b41": "symbol",
|
|
239
|
-
"313ce567": "decimals",
|
|
240
|
-
"42842e0e": "safeTransferFrom",
|
|
241
|
-
b88d4fde: "safeTransferFrom",
|
|
242
|
-
e985e9c5: "isApprovedForAll",
|
|
243
|
-
a22cb465: "setApprovalForAll",
|
|
244
|
-
"6352211e": "ownerOf",
|
|
245
|
-
c87b56dd: "tokenURI",
|
|
246
|
-
"01ffc9a7": "supportsInterface",
|
|
247
|
-
"40c10f19": "mint",
|
|
248
|
-
"42966c68": "burn",
|
|
249
|
-
f2fde38b: "transferOwnership",
|
|
250
|
-
"715018a6": "renounceOwnership",
|
|
251
|
-
"8da5cb5b": "owner"
|
|
252
|
-
};
|
|
253
|
-
return commonSelectors[selector] || selector;
|
|
22
|
+
let weighted = 0;
|
|
23
|
+
let unweighted = 0;
|
|
24
|
+
for (const level of Object.keys(multipliers)) {
|
|
25
|
+
const levelRecord = distribution[level];
|
|
26
|
+
if (!isJsonObject(levelRecord)) {
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
const checks = readNumber(levelRecord, "checks");
|
|
30
|
+
if (checks === null) {
|
|
31
|
+
continue;
|
|
32
|
+
}
|
|
33
|
+
weighted += checks * multipliers[level];
|
|
34
|
+
unweighted += checks;
|
|
254
35
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
*/
|
|
258
|
-
static parseEthereumTransaction(body) {
|
|
259
|
-
if (!body) return void 0;
|
|
260
|
-
const data = {
|
|
261
|
-
contractId: "EVM",
|
|
262
|
-
gas: body.maxGasAllowance ? Long.fromValue(body.maxGasAllowance).toNumber() : 0,
|
|
263
|
-
amount: 0
|
|
264
|
-
};
|
|
265
|
-
if (body.ethereumData && body.ethereumData.length > 0) {
|
|
266
|
-
const ethData = Buffer.from(body.ethereumData).toString("hex");
|
|
267
|
-
data.functionParameters = ethData;
|
|
268
|
-
if (ethData.length >= 8) {
|
|
269
|
-
data.functionName = this.extractFunctionName(ethData);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return data;
|
|
36
|
+
if (unweighted <= 0) {
|
|
37
|
+
return 1;
|
|
273
38
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
Long.fromValue(body.initialBalance)
|
|
302
|
-
).toString(HbarUnit.Hbar);
|
|
303
|
-
}
|
|
304
|
-
if (body.gas) {
|
|
305
|
-
data.gas = Long.fromValue(body.gas).toString();
|
|
306
|
-
}
|
|
307
|
-
if (body.adminKey) {
|
|
308
|
-
data.adminKey = parseKey(body.adminKey);
|
|
309
|
-
}
|
|
310
|
-
if (body.constructorParameters) {
|
|
311
|
-
data.constructorParameters = Buffer.from(
|
|
312
|
-
body.constructorParameters
|
|
313
|
-
).toString("hex");
|
|
314
|
-
}
|
|
315
|
-
if (body.memo) {
|
|
316
|
-
data.memo = body.memo;
|
|
317
|
-
}
|
|
318
|
-
if (body.autoRenewPeriod?.seconds) {
|
|
319
|
-
data.autoRenewPeriod = Long.fromValue(
|
|
320
|
-
body.autoRenewPeriod.seconds
|
|
321
|
-
).toString();
|
|
322
|
-
}
|
|
323
|
-
if (body.stakedAccountId) {
|
|
324
|
-
data.stakedAccountId = new AccountId(
|
|
325
|
-
body.stakedAccountId.shardNum ?? 0,
|
|
326
|
-
body.stakedAccountId.realmNum ?? 0,
|
|
327
|
-
body.stakedAccountId.accountNum ?? 0
|
|
328
|
-
).toString();
|
|
329
|
-
} else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0) {
|
|
330
|
-
data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
|
|
331
|
-
}
|
|
332
|
-
if (body.declineReward !== void 0) {
|
|
333
|
-
data.declineReward = body.declineReward;
|
|
334
|
-
}
|
|
335
|
-
if (body.maxAutomaticTokenAssociations !== void 0) {
|
|
336
|
-
data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;
|
|
337
|
-
}
|
|
338
|
-
if (body.fileID) {
|
|
339
|
-
data.initcodeSource = "fileID";
|
|
340
|
-
data.initcode = new FileId(
|
|
341
|
-
body.fileID.shardNum ?? 0,
|
|
342
|
-
body.fileID.realmNum ?? 0,
|
|
343
|
-
body.fileID.fileNum ?? 0
|
|
344
|
-
).toString();
|
|
345
|
-
} else if (body.initcode && body.initcode.length > 0) {
|
|
346
|
-
data.initcodeSource = "bytes";
|
|
347
|
-
data.initcode = Buffer.from(body.initcode).toString("hex");
|
|
348
|
-
}
|
|
349
|
-
return data;
|
|
39
|
+
const ratio = weighted / unweighted;
|
|
40
|
+
return Math.min(3, Math.max(0.5, ratio));
|
|
41
|
+
}
|
|
42
|
+
function computeQuality(summary, multipliers) {
|
|
43
|
+
const allowRate = clampUnit(readNumber(summary, "allowRate") ?? 0);
|
|
44
|
+
const blockRate = clampUnit(readNumber(summary, "blockRate") ?? 0);
|
|
45
|
+
const avgConfidence = clampUnit(readNumber(summary, "avgConfidence") ?? 0);
|
|
46
|
+
const baseQuality = allowRate * avgConfidence;
|
|
47
|
+
const discriminativePower = clampUnit(
|
|
48
|
+
blockRate / DISCRIMINATIVE_POWER_BLOCK_RATE
|
|
49
|
+
);
|
|
50
|
+
const stakeMultiplier = computeStakeMultiplier(summary, multipliers);
|
|
51
|
+
const cappedStakeMultiplier = Math.min(
|
|
52
|
+
stakeMultiplier,
|
|
53
|
+
STAKE_MULTIPLIER_QUALITY_CAP
|
|
54
|
+
);
|
|
55
|
+
return {
|
|
56
|
+
value: clampScore(
|
|
57
|
+
baseQuality * discriminativePower * cappedStakeMultiplier * 100
|
|
58
|
+
),
|
|
59
|
+
status: "ok"
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function computeCoverage(summary, volumeCap, volumeScale) {
|
|
63
|
+
const totalChecks = readNumber(summary, "totalChecks");
|
|
64
|
+
if (totalChecks === null) {
|
|
65
|
+
return MISSING;
|
|
350
66
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
if (
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
67
|
+
const volumeRaw = Math.min(
|
|
68
|
+
volumeCap,
|
|
69
|
+
Math.log10(totalChecks + 1) * volumeScale
|
|
70
|
+
);
|
|
71
|
+
return {
|
|
72
|
+
value: clampScore(100 * clampUnit(volumeRaw / volumeCap)),
|
|
73
|
+
status: "ok"
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function createOutputVerificationAdapter(options = {}) {
|
|
77
|
+
const volumeCap = options.volumeCap ?? 50;
|
|
78
|
+
const volumeScale = options.volumeScale ?? 20;
|
|
79
|
+
const minChecks = options.minChecks ?? 10;
|
|
80
|
+
const qualityWeight = options.qualityWeight ?? 0.7;
|
|
81
|
+
const coverageWeight = options.coverageWeight ?? 0.3;
|
|
82
|
+
const stakeMultipliers = options.stakeMultipliers ?? DEFAULT_STAKE_MULTIPLIERS;
|
|
83
|
+
const hasVerificationHistory = (subject) => {
|
|
84
|
+
const summary = readMetadataRecord(subject, "outputVerificationSummary");
|
|
85
|
+
if (!summary) {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
const totalChecks = readNumber(summary, "totalChecks");
|
|
89
|
+
return totalChecks !== null && totalChecks >= minChecks;
|
|
90
|
+
};
|
|
91
|
+
return {
|
|
92
|
+
id: "output-verification",
|
|
93
|
+
weight: 1,
|
|
94
|
+
contributionMode: "scoped",
|
|
95
|
+
appliesTo: hasVerificationHistory,
|
|
96
|
+
components: [
|
|
97
|
+
{
|
|
98
|
+
name: "quality",
|
|
99
|
+
weight: qualityWeight,
|
|
100
|
+
normalize: ({ subject }) => {
|
|
101
|
+
const summary = readMetadataRecord(
|
|
102
|
+
subject,
|
|
103
|
+
"outputVerificationSummary"
|
|
104
|
+
);
|
|
105
|
+
return summary ? computeQuality(summary, stakeMultipliers) : MISSING;
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
name: "coverage",
|
|
110
|
+
weight: coverageWeight,
|
|
111
|
+
normalize: ({ subject }) => {
|
|
112
|
+
const summary = readMetadataRecord(
|
|
113
|
+
subject,
|
|
114
|
+
"outputVerificationSummary"
|
|
115
|
+
);
|
|
116
|
+
return summary ? computeCoverage(summary, volumeCap, volumeScale) : MISSING;
|
|
382
117
|
}
|
|
383
|
-
} else if (typeof memoUnion === "string") {
|
|
384
|
-
data.memo = memoUnion;
|
|
385
|
-
} else {
|
|
386
|
-
data.memo = void 0;
|
|
387
118
|
}
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
}
|
|
391
|
-
if (body.stakedAccountId) {
|
|
392
|
-
data.stakedAccountId = new AccountId(
|
|
393
|
-
body.stakedAccountId.shardNum ?? 0,
|
|
394
|
-
body.stakedAccountId.realmNum ?? 0,
|
|
395
|
-
body.stakedAccountId.accountNum ?? 0
|
|
396
|
-
).toString();
|
|
397
|
-
data.stakedNodeId = void 0;
|
|
398
|
-
} else if (body.stakedNodeId !== null && body.stakedNodeId !== void 0 && Long.fromValue(body.stakedNodeId).notEquals(-1)) {
|
|
399
|
-
data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();
|
|
400
|
-
data.stakedAccountId = void 0;
|
|
401
|
-
} else {
|
|
402
|
-
data.stakedNodeId = void 0;
|
|
403
|
-
data.stakedAccountId = void 0;
|
|
404
|
-
}
|
|
405
|
-
if (body.declineReward?.value !== void 0) {
|
|
406
|
-
data.declineReward = body.declineReward.value;
|
|
407
|
-
}
|
|
408
|
-
if (body.maxAutomaticTokenAssociations?.value !== void 0) {
|
|
409
|
-
data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations.value;
|
|
410
|
-
}
|
|
411
|
-
if (body.autoRenewAccountId) {
|
|
412
|
-
data.autoRenewAccountId = new AccountId(
|
|
413
|
-
body.autoRenewAccountId.shardNum ?? 0,
|
|
414
|
-
body.autoRenewAccountId.realmNum ?? 0,
|
|
415
|
-
body.autoRenewAccountId.accountNum ?? 0
|
|
416
|
-
).toString();
|
|
417
|
-
}
|
|
418
|
-
return data;
|
|
419
|
-
}
|
|
420
|
-
static parseContractDelete(body) {
|
|
421
|
-
if (!body) return void 0;
|
|
422
|
-
const data = {};
|
|
423
|
-
if (body.contractID) {
|
|
424
|
-
data.contractIdToDelete = new ContractId(
|
|
425
|
-
body.contractID.shardNum ?? 0,
|
|
426
|
-
body.contractID.realmNum ?? 0,
|
|
427
|
-
body.contractID.contractNum ?? 0
|
|
428
|
-
).toString();
|
|
429
|
-
}
|
|
430
|
-
if (body.transferAccountID) {
|
|
431
|
-
data.transferAccountId = new AccountId(
|
|
432
|
-
body.transferAccountID.shardNum ?? 0,
|
|
433
|
-
body.transferAccountID.realmNum ?? 0,
|
|
434
|
-
body.transferAccountID.accountNum ?? 0
|
|
435
|
-
).toString();
|
|
436
|
-
} else if (body.transferContractID) {
|
|
437
|
-
data.transferContractId = new ContractId(
|
|
438
|
-
body.transferContractID.shardNum ?? 0,
|
|
439
|
-
body.transferContractID.realmNum ?? 0,
|
|
440
|
-
body.transferContractID.contractNum ?? 0
|
|
441
|
-
).toString();
|
|
442
|
-
}
|
|
443
|
-
return data;
|
|
444
|
-
}
|
|
445
|
-
/**
|
|
446
|
-
* Parse SCS (Smart Contract Service) transaction from Transaction object
|
|
447
|
-
* This is the unified entry point that delegates to the comprehensive parsing logic
|
|
448
|
-
*/
|
|
449
|
-
static parseFromTransactionObject(transaction) {
|
|
450
|
-
return this.parseSCSTransaction(transaction);
|
|
451
|
-
}
|
|
119
|
+
]
|
|
120
|
+
};
|
|
452
121
|
}
|
|
453
122
|
export {
|
|
454
|
-
|
|
123
|
+
createOutputVerificationAdapter
|
|
455
124
|
};
|
|
456
125
|
//# sourceMappingURL=standards-sdk.es172.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es172.js","sources":["../../src/utils/parsers/scs-parser.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Hbar, HbarUnit, Long, Transaction } from '@hashgraph/sdk';\nimport {\n ContractCallData,\n ContractCreateData,\n ContractUpdateData,\n ContractDeleteData,\n} from '../transaction-parser-types';\nimport { Buffer } from 'buffer';\nimport {\n parseKey,\n extractTransactionBody,\n hasTransactionType,\n} from './parser-utils';\nimport { AccountId, FileId } from '@hashgraph/sdk';\n\n/**\n * Smart Contract Service (SCS) Parser\n *\n * Handles parsing for all contract-related transaction types including:\n * - Contract calls (including EthereumTransaction)\n * - Contract creation, updates, and deletion\n * - Proper dual-branch parsing (regular vs signed transactions)\n * - Comprehensive protobuf extraction\n */\nexport class SCSParser {\n /**\n * Parse Smart Contract Service transaction using unified dual-branch approach\n * This handles both regular transactions and signed transaction variants\n */\n static parseSCSTransaction(\n transaction: Transaction,\n originalBytes?: Uint8Array,\n ): {\n type?: string;\n humanReadableType?: string;\n contractCall?: ContractCallData;\n contractCreate?: ContractCreateData;\n contractUpdate?: ContractUpdateData;\n contractDelete?: ContractDeleteData;\n [key: string]: unknown;\n } {\n try {\n if (originalBytes || transaction.toBytes) {\n try {\n const bytesToParse = originalBytes || transaction.toBytes();\n const decoded = proto.TransactionList.decode(bytesToParse);\n\n if (decoded.transactionList && decoded.transactionList.length > 0) {\n const tx = decoded.transactionList[0];\n let txBody: proto.ITransactionBody | null = null;\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n txBody = proto.TransactionBody.decode(tx.bodyBytes);\n } else if (\n tx.signedTransactionBytes &&\n tx.signedTransactionBytes.length > 0\n ) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n txBody = proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n if (txBody) {\n const protoResult = this.parseFromProtobufTxBody(txBody);\n if (protoResult.type && protoResult.type !== 'UNKNOWN') {\n return protoResult;\n }\n }\n }\n } catch (protoError) {}\n }\n\n return this.parseFromTransactionInternals(transaction);\n } catch (error) {\n return {\n type: 'UNKNOWN',\n humanReadableType: 'Unknown Contract Transaction',\n };\n }\n }\n\n /**\n * Parse contract transaction from protobuf TransactionBody\n * Handles all contract operations from decoded protobuf data\n */\n private static parseFromProtobufTxBody(txBody: proto.ITransactionBody): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n if (txBody.contractCall) {\n const contractCall = this.parseContractCall(txBody.contractCall);\n if (contractCall) {\n return {\n type: 'CONTRACTCALL',\n humanReadableType: 'Contract Call',\n contractCall,\n };\n }\n }\n\n if (txBody.contractCreateInstance) {\n const contractCreate = this.parseContractCreate(\n txBody.contractCreateInstance,\n );\n if (contractCreate) {\n return {\n type: 'CONTRACTCREATE',\n humanReadableType: 'Contract Create',\n contractCreate,\n };\n }\n }\n\n if (txBody.contractUpdateInstance) {\n const contractUpdate = this.parseContractUpdate(\n txBody.contractUpdateInstance,\n );\n if (contractUpdate) {\n return {\n type: 'CONTRACTUPDATE',\n humanReadableType: 'Contract Update',\n contractUpdate,\n };\n }\n }\n\n if (txBody.contractDeleteInstance) {\n const contractDelete = this.parseContractDelete(\n txBody.contractDeleteInstance,\n );\n if (contractDelete) {\n return {\n type: 'CONTRACTDELETE',\n humanReadableType: 'Contract Delete',\n contractDelete,\n };\n }\n }\n\n if (txBody.ethereumTransaction) {\n const ethereumCall = this.parseEthereumTransaction(\n txBody.ethereumTransaction,\n );\n if (ethereumCall) {\n return {\n type: 'ETHEREUMTRANSACTION',\n humanReadableType: 'Ethereum Transaction',\n ethereumTransaction: ethereumCall,\n };\n }\n }\n\n return {};\n }\n\n /**\n * Extract contract data from Transaction internal fields\n * This handles cases where data is stored in Transaction object internals\n */\n private static parseFromTransactionInternals(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n try {\n const tx = transaction as unknown as {\n _contractId?: { toString(): string };\n _gas?: number | Long;\n _amount?: { toString(): string };\n _functionParameters?: Uint8Array;\n _initialBalance?: { toString(): string };\n _adminKey?: unknown;\n _memo?: string;\n _fileId?: { toString(): string };\n _bytecode?: Uint8Array;\n _constructorParameters?: Uint8Array;\n _maxAutomaticTokenAssociations?: number;\n _stakedAccountId?: { toString(): string };\n _stakedNodeId?: number | Long;\n _declineReward?: boolean;\n _autoRenewPeriod?: { toString(): string };\n _transferAccountId?: { toString(): string };\n _transferContractId?: { toString(): string };\n constructor?: { name?: string };\n };\n\n if (tx._contractId && tx._gas) {\n const contractCall: ContractCallData = {\n contractId: tx._contractId.toString(),\n gas:\n typeof tx._gas === 'number'\n ? tx._gas\n : Long.fromValue(tx._gas).toNumber(),\n amount: tx._amount ? parseFloat(tx._amount.toString()) : 0,\n };\n\n if (tx._functionParameters) {\n const funcParams = Buffer.from(tx._functionParameters).toString(\n 'hex',\n );\n contractCall.functionParameters = funcParams;\n contractCall.functionName = this.extractFunctionName(funcParams);\n }\n\n return {\n type: 'CONTRACTCALL',\n humanReadableType: 'Contract Call',\n contractCall,\n };\n }\n\n if (hasTransactionType(transaction, 'contractCreateInstance')) {\n const contractCreate: ContractCreateData = {\n gas: tx._gas.toString(),\n initialBalance: tx._initialBalance?.toString() || '0',\n };\n\n if (tx._fileId) {\n contractCreate.initcodeSource = 'fileID';\n contractCreate.initcode = tx._fileId.toString();\n } else if (tx._bytecode) {\n contractCreate.initcodeSource = 'bytes';\n contractCreate.initcode = Buffer.from(tx._bytecode).toString('hex');\n }\n\n if (tx._constructorParameters) {\n contractCreate.constructorParameters = Buffer.from(\n tx._constructorParameters,\n ).toString('hex');\n }\n\n if (tx._memo) contractCreate.memo = tx._memo;\n if (tx._adminKey) contractCreate.adminKey = parseKey(tx._adminKey);\n if (tx._maxAutomaticTokenAssociations !== undefined) {\n contractCreate.maxAutomaticTokenAssociations =\n tx._maxAutomaticTokenAssociations;\n }\n if (tx._stakedAccountId) {\n contractCreate.stakedAccountId = tx._stakedAccountId.toString();\n } else if (\n tx._stakedNodeId !== null &&\n tx._stakedNodeId !== undefined\n ) {\n contractCreate.stakedNodeId = Long.fromValue(\n tx._stakedNodeId,\n ).toString();\n }\n if (tx._declineReward !== undefined)\n contractCreate.declineReward = tx._declineReward;\n if (tx._autoRenewPeriod)\n contractCreate.autoRenewPeriod = tx._autoRenewPeriod.toString();\n\n return {\n type: 'CONTRACTCREATE',\n humanReadableType: 'Contract Create',\n contractCreate,\n };\n }\n\n if (hasTransactionType(transaction, 'contractUpdateInstance')) {\n const contractUpdate: ContractUpdateData = {\n contractIdToUpdate: tx._contractId.toString(),\n };\n\n if (tx._memo) contractUpdate.memo = tx._memo;\n if (tx._adminKey) contractUpdate.adminKey = parseKey(tx._adminKey);\n if (tx._maxAutomaticTokenAssociations !== undefined) {\n contractUpdate.maxAutomaticTokenAssociations =\n tx._maxAutomaticTokenAssociations;\n }\n if (tx._stakedAccountId) {\n contractUpdate.stakedAccountId = tx._stakedAccountId.toString();\n } else if (\n tx._stakedNodeId !== null &&\n tx._stakedNodeId !== undefined\n ) {\n contractUpdate.stakedNodeId = Long.fromValue(\n tx._stakedNodeId,\n ).toString();\n }\n if (tx._declineReward !== undefined)\n contractUpdate.declineReward = tx._declineReward;\n if (tx._autoRenewPeriod)\n contractUpdate.autoRenewPeriod = tx._autoRenewPeriod.toString();\n\n return {\n type: 'CONTRACTUPDATE',\n humanReadableType: 'Contract Update',\n contractUpdate,\n };\n }\n\n if (hasTransactionType(transaction, 'contractDeleteInstance')) {\n const contractDelete: ContractDeleteData = {\n contractIdToDelete: tx._contractId.toString(),\n };\n\n if (tx._transferAccountId) {\n contractDelete.transferAccountId = tx._transferAccountId.toString();\n } else if (tx._transferContractId) {\n contractDelete.transferContractId = tx._transferContractId.toString();\n }\n\n return {\n type: 'CONTRACTDELETE',\n humanReadableType: 'Contract Delete',\n contractDelete,\n };\n }\n\n return {};\n } catch (error) {\n return {};\n }\n }\n\n /**\n * Enhanced function name extraction from contract call parameters\n * Attempts to decode function selector and map to known function names\n */\n private static extractFunctionName(functionParameters: string): string {\n if (functionParameters.length < 8) return 'unknown';\n\n const selector = functionParameters.substring(0, 8);\n\n const commonSelectors: Record<string, string> = {\n a9059cbb: 'transfer',\n '095ea7b3': 'approve',\n '23b872dd': 'transferFrom',\n '70a08231': 'balanceOf',\n dd62ed3e: 'allowance',\n '18160ddd': 'totalSupply',\n '06fdde03': 'name',\n '95d89b41': 'symbol',\n '313ce567': 'decimals',\n '42842e0e': 'safeTransferFrom',\n b88d4fde: 'safeTransferFrom',\n e985e9c5: 'isApprovedForAll',\n a22cb465: 'setApprovalForAll',\n '6352211e': 'ownerOf',\n c87b56dd: 'tokenURI',\n '01ffc9a7': 'supportsInterface',\n '40c10f19': 'mint',\n '42966c68': 'burn',\n f2fde38b: 'transferOwnership',\n '715018a6': 'renounceOwnership',\n '8da5cb5b': 'owner',\n };\n\n return commonSelectors[selector] || selector;\n }\n\n /**\n * Parse Ethereum Transaction (was completely missing from original parser)\n */\n static parseEthereumTransaction(\n body: proto.IEthereumTransactionBody,\n ): ContractCallData | undefined {\n if (!body) return undefined;\n\n const data: ContractCallData = {\n contractId: 'EVM',\n gas: body.maxGasAllowance\n ? Long.fromValue(body.maxGasAllowance).toNumber()\n : 0,\n amount: 0,\n };\n\n if (body.ethereumData && body.ethereumData.length > 0) {\n const ethData = Buffer.from(body.ethereumData).toString('hex');\n data.functionParameters = ethData;\n\n if (ethData.length >= 8) {\n data.functionName = this.extractFunctionName(ethData);\n }\n }\n\n return data;\n }\n\n static parseContractCall(\n body: proto.IContractCallTransactionBody,\n ): ContractCallData | undefined {\n if (!body) return undefined;\n const hbarAmount = Hbar.fromTinybars(Long.fromValue(body.amount ?? 0));\n const data: ContractCallData = {\n contractId: new ContractId(\n body.contractID!.shardNum ?? 0,\n body.contractID!.realmNum ?? 0,\n body.contractID!.contractNum ?? 0,\n ).toString(),\n gas: Long.fromValue(body.gas ?? 0).toNumber(),\n amount: parseFloat(hbarAmount.toString(HbarUnit.Hbar)),\n };\n if (body.functionParameters) {\n data.functionParameters = Buffer.from(body.functionParameters).toString(\n 'hex',\n );\n if (data.functionParameters.length >= 8) {\n data.functionName = this.extractFunctionName(data.functionParameters);\n }\n }\n return data;\n }\n\n static parseContractCreate(\n body: proto.IContractCreateTransactionBody,\n ): ContractCreateData | undefined {\n if (!body) return undefined;\n const data: ContractCreateData = {};\n if (body.initialBalance) {\n data.initialBalance = Hbar.fromTinybars(\n Long.fromValue(body.initialBalance),\n ).toString(HbarUnit.Hbar);\n }\n if (body.gas) {\n data.gas = Long.fromValue(body.gas).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.constructorParameters) {\n data.constructorParameters = Buffer.from(\n body.constructorParameters,\n ).toString('hex');\n }\n if (body.memo) {\n data.memo = body.memo;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0,\n ).toString();\n } else if (body.stakedNodeId !== null && body.stakedNodeId !== undefined) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n }\n if (body.declineReward !== undefined) {\n data.declineReward = body.declineReward;\n }\n if (body.maxAutomaticTokenAssociations !== undefined) {\n data.maxAutomaticTokenAssociations = body.maxAutomaticTokenAssociations;\n }\n if (body.fileID) {\n data.initcodeSource = 'fileID';\n data.initcode = new FileId(\n body.fileID.shardNum ?? 0,\n body.fileID.realmNum ?? 0,\n body.fileID.fileNum ?? 0,\n ).toString();\n } else if (body.initcode && body.initcode.length > 0) {\n data.initcodeSource = 'bytes';\n data.initcode = Buffer.from(body.initcode).toString('hex');\n }\n return data;\n }\n\n static parseContractUpdate(\n body: proto.IContractUpdateTransactionBody,\n ): ContractUpdateData | undefined {\n if (!body) return undefined;\n const data: ContractUpdateData = {};\n if (body.contractID) {\n data.contractIdToUpdate = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n if (body.adminKey) {\n data.adminKey = parseKey(body.adminKey);\n }\n if (body.expirationTime?.seconds) {\n data.expirationTime = `${Long.fromValue(\n body.expirationTime.seconds,\n ).toString()}.${body.expirationTime.nanos}`;\n }\n if (body.autoRenewPeriod?.seconds) {\n data.autoRenewPeriod = Long.fromValue(\n body.autoRenewPeriod.seconds,\n ).toString();\n }\n\n if (body.memo) {\n const memoUnion = body.memo as unknown;\n if (\n memoUnion &&\n typeof memoUnion === 'object' &&\n Object.prototype.hasOwnProperty.call(memoUnion, 'value')\n ) {\n const value = (memoUnion as { value: unknown }).value;\n if (value === null || value === undefined) {\n data.memo = undefined;\n } else {\n data.memo = String(value);\n }\n } else if (typeof memoUnion === 'string') {\n data.memo = memoUnion;\n } else {\n data.memo = undefined;\n }\n } else {\n data.memo = undefined;\n }\n\n if (body.stakedAccountId) {\n data.stakedAccountId = new AccountId(\n body.stakedAccountId.shardNum ?? 0,\n body.stakedAccountId.realmNum ?? 0,\n body.stakedAccountId.accountNum ?? 0,\n ).toString();\n data.stakedNodeId = undefined;\n } else if (\n body.stakedNodeId !== null &&\n body.stakedNodeId !== undefined &&\n Long.fromValue(body.stakedNodeId).notEquals(-1)\n ) {\n data.stakedNodeId = Long.fromValue(body.stakedNodeId).toString();\n data.stakedAccountId = undefined;\n } else {\n data.stakedNodeId = undefined;\n data.stakedAccountId = undefined;\n }\n if (body.declineReward?.value !== undefined) {\n data.declineReward = body.declineReward.value;\n }\n if (body.maxAutomaticTokenAssociations?.value !== undefined) {\n data.maxAutomaticTokenAssociations =\n body.maxAutomaticTokenAssociations.value;\n }\n if (body.autoRenewAccountId) {\n data.autoRenewAccountId = new AccountId(\n body.autoRenewAccountId.shardNum ?? 0,\n body.autoRenewAccountId.realmNum ?? 0,\n body.autoRenewAccountId.accountNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n static parseContractDelete(\n body: proto.IContractDeleteTransactionBody,\n ): ContractDeleteData | undefined {\n if (!body) return undefined;\n const data: ContractDeleteData = {};\n if (body.contractID) {\n data.contractIdToDelete = new ContractId(\n body.contractID.shardNum ?? 0,\n body.contractID.realmNum ?? 0,\n body.contractID.contractNum ?? 0,\n ).toString();\n }\n if (body.transferAccountID) {\n data.transferAccountId = new AccountId(\n body.transferAccountID.shardNum ?? 0,\n body.transferAccountID.realmNum ?? 0,\n body.transferAccountID.accountNum ?? 0,\n ).toString();\n } else if (body.transferContractID) {\n data.transferContractId = new ContractId(\n body.transferContractID.shardNum ?? 0,\n body.transferContractID.realmNum ?? 0,\n body.transferContractID.contractNum ?? 0,\n ).toString();\n }\n return data;\n }\n\n /**\n * Parse SCS (Smart Contract Service) transaction from Transaction object\n * This is the unified entry point that delegates to the comprehensive parsing logic\n */\n static parseFromTransactionObject(transaction: Transaction): {\n type?: string;\n humanReadableType?: string;\n [key: string]: unknown;\n } {\n return this.parseSCSTransaction(transaction);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es172.js","sources":["../../src/hcs-25/adapters/output-verification.ts"],"sourcesContent":["import { clampScore } from '../scoring';\nimport type {\n Hcs25AdapterDefinition,\n Hcs25NormalizedValue,\n Hcs25Subject,\n} from '../types';\nimport {\n isJsonObject,\n readMetadataRecord,\n readNumber,\n type Hcs25JsonObject,\n} from '../signals';\nimport { clampUnit } from './normalization';\n\n/**\n * Options for the output verification adapter.\n */\nexport interface Hcs25OutputVerificationAdapterOptions {\n /** Volume cap for the log-scaled coverage component. Default 50. */\n volumeCap?: number;\n /** Multiplier on log10 of the check count. Default 20. */\n volumeScale?: number;\n /** Minimum total checks before the adapter applies. Default 10. */\n minChecks?: number;\n /** Within-adapter weight of the quality component. Default 0.7. */\n qualityWeight?: number;\n /** Within-adapter weight of the coverage component. Default 0.3. */\n coverageWeight?: number;\n /** Per-stake-level multipliers applied to check counts. */\n stakeMultipliers?: Readonly<Record<string, number>>;\n}\n\nconst MISSING: Hcs25NormalizedValue = { value: 0, status: 'missing' };\n\nconst DEFAULT_STAKE_MULTIPLIERS: Readonly<Record<string, number>> = {\n low: 0.5,\n medium: 1,\n high: 2,\n critical: 3,\n};\n\n/**\n * Block rate at which the verifier earns full discriminative-power credit.\n */\nconst DISCRIMINATIVE_POWER_BLOCK_RATE = 0.05;\n\n/**\n * Upper bound on the stake multiplier's influence on quality.\n */\nconst STAKE_MULTIPLIER_QUALITY_CAP = 1.5;\n\nfunction computeStakeMultiplier(\n summary: Hcs25JsonObject,\n multipliers: Readonly<Record<string, number>>,\n): number {\n const distribution = summary.stakeDistribution;\n if (!isJsonObject(distribution)) {\n return 1;\n }\n\n let weighted = 0;\n let unweighted = 0;\n for (const level of Object.keys(multipliers)) {\n const levelRecord = distribution[level];\n if (!isJsonObject(levelRecord)) {\n continue;\n }\n const checks = readNumber(levelRecord, 'checks');\n if (checks === null) {\n continue;\n }\n weighted += checks * multipliers[level];\n unweighted += checks;\n }\n\n if (unweighted <= 0) {\n return 1;\n }\n\n const ratio = weighted / unweighted;\n return Math.min(3, Math.max(0.5, ratio));\n}\n\nfunction computeQuality(\n summary: Hcs25JsonObject,\n multipliers: Readonly<Record<string, number>>,\n): Hcs25NormalizedValue {\n const allowRate = clampUnit(readNumber(summary, 'allowRate') ?? 0);\n const blockRate = clampUnit(readNumber(summary, 'blockRate') ?? 0);\n const avgConfidence = clampUnit(readNumber(summary, 'avgConfidence') ?? 0);\n\n const baseQuality = allowRate * avgConfidence;\n const discriminativePower = clampUnit(\n blockRate / DISCRIMINATIVE_POWER_BLOCK_RATE,\n );\n const stakeMultiplier = computeStakeMultiplier(summary, multipliers);\n const cappedStakeMultiplier = Math.min(\n stakeMultiplier,\n STAKE_MULTIPLIER_QUALITY_CAP,\n );\n\n return {\n value: clampScore(\n baseQuality * discriminativePower * cappedStakeMultiplier * 100,\n ),\n status: 'ok',\n };\n}\n\nfunction computeCoverage(\n summary: Hcs25JsonObject,\n volumeCap: number,\n volumeScale: number,\n): Hcs25NormalizedValue {\n const totalChecks = readNumber(summary, 'totalChecks');\n if (totalChecks === null) {\n return MISSING;\n }\n\n const volumeRaw = Math.min(\n volumeCap,\n Math.log10(totalChecks + 1) * volumeScale,\n );\n return {\n value: clampScore(100 * clampUnit(volumeRaw / volumeCap)),\n status: 'ok',\n };\n}\n\n/**\n * Creates the `output-verification` adapter: converts per-decision reasoning\n * verification summaries into a stake-weighted quality component and a\n * log-scaled coverage component. It penalizes rubber-stamp verifiers through\n * discriminative power, resists trivial-claim farming through stake\n * weighting, and excludes agents below the minimum check threshold.\n */\nexport function createOutputVerificationAdapter(\n options: Hcs25OutputVerificationAdapterOptions = {},\n): Hcs25AdapterDefinition {\n const volumeCap = options.volumeCap ?? 50;\n const volumeScale = options.volumeScale ?? 20;\n const minChecks = options.minChecks ?? 10;\n const qualityWeight = options.qualityWeight ?? 0.7;\n const coverageWeight = options.coverageWeight ?? 0.3;\n const stakeMultipliers =\n options.stakeMultipliers ?? DEFAULT_STAKE_MULTIPLIERS;\n\n const hasVerificationHistory = (subject: Hcs25Subject): boolean => {\n const summary = readMetadataRecord(subject, 'outputVerificationSummary');\n if (!summary) {\n return false;\n }\n const totalChecks = readNumber(summary, 'totalChecks');\n return totalChecks !== null && totalChecks >= minChecks;\n };\n\n return {\n id: 'output-verification',\n weight: 1,\n contributionMode: 'scoped',\n appliesTo: hasVerificationHistory,\n components: [\n {\n name: 'quality',\n weight: qualityWeight,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const summary = readMetadataRecord(\n subject,\n 'outputVerificationSummary',\n );\n return summary ? computeQuality(summary, stakeMultipliers) : MISSING;\n },\n },\n {\n name: 'coverage',\n weight: coverageWeight,\n normalize: ({ subject }): Hcs25NormalizedValue => {\n const summary = readMetadataRecord(\n subject,\n 'outputVerificationSummary',\n );\n return summary\n ? computeCoverage(summary, volumeCap, volumeScale)\n : MISSING;\n },\n },\n ],\n };\n}\n"],"names":[],"mappings":"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"}
|