From 3d355259e5e4070c43786806e061e926e85d9f75 Mon Sep 17 00:00:00 2001 From: sorki Date: Thu, 22 Aug 2024 10:12:14 +0200 Subject: [PATCH] fix: plutus V3 cost model mapping --- CHANGELOG.md | 4 + src/utils/cost-models-map.ts | 268 ++++++++++++++++++++++++- test/unit/fixtures/epochs.fixtures.ts | 269 ++++++++++++++++++++++++++ 3 files changed, 540 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9d649b09..f5153136 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Plutus V3 cost model mapping + ## [2.1.0] - 2024-07-31 ### Added diff --git a/src/utils/cost-models-map.ts b/src/utils/cost-models-map.ts index 366df004..49fd890c 100644 --- a/src/utils/cost-models-map.ts +++ b/src/utils/cost-models-map.ts @@ -353,6 +353,260 @@ const plutusV2Names: Array = [ 'verifySchnorrSecp256k1Signature-memory-arguments', ]; +const plutusV3Names: Array = [ + 'addInteger-cpu-arguments-intercept', + 'addInteger-cpu-arguments-slope', + 'addInteger-memory-arguments-intercept', + 'addInteger-memory-arguments-slope', + 'appendByteString-cpu-arguments-intercept', + 'appendByteString-cpu-arguments-slope', + 'appendByteString-memory-arguments-intercept', + 'appendByteString-memory-arguments-slope', + 'appendString-cpu-arguments-intercept', + 'appendString-cpu-arguments-slope', + 'appendString-memory-arguments-intercept', + 'appendString-memory-arguments-slope', + 'bData-cpu-arguments', + 'bData-memory-arguments', + 'blake2b_256-cpu-arguments-intercept', + 'blake2b_256-cpu-arguments-slope', + 'blake2b_256-memory-arguments', + 'cekApplyCost-exBudgetCPU', + 'cekApplyCost-exBudgetMemory', + 'cekBuiltinCost-exBudgetCPU', + 'cekBuiltinCost-exBudgetMemory', + 'cekConstCost-exBudgetCPU', + 'cekConstCost-exBudgetMemory', + 'cekDelayCost-exBudgetCPU', + 'cekDelayCost-exBudgetMemory', + 'cekForceCost-exBudgetCPU', + 'cekForceCost-exBudgetMemory', + 'cekLamCost-exBudgetCPU', + 'cekLamCost-exBudgetMemory', + 'cekStartupCost-exBudgetCPU', + 'cekStartupCost-exBudgetMemory', + 'cekVarCost-exBudgetCPU', + 'cekVarCost-exBudgetMemory', + 'chooseData-cpu-arguments', + 'chooseData-memory-arguments', + 'chooseList-cpu-arguments', + 'chooseList-memory-arguments', + 'chooseUnit-cpu-arguments', + 'chooseUnit-memory-arguments', + 'consByteString-cpu-arguments-intercept', + 'consByteString-cpu-arguments-slope', + 'consByteString-memory-arguments-intercept', + 'consByteString-memory-arguments-slope', + 'constrData-cpu-arguments', + 'constrData-memory-arguments', + 'decodeUtf8-cpu-arguments-intercept', + 'decodeUtf8-cpu-arguments-slope', + 'decodeUtf8-memory-arguments-intercept', + 'decodeUtf8-memory-arguments-slope', + 'divideInteger-cpu-arguments-constant', + 'divideInteger-cpu-arguments-model-arguments-c00', + 'divideInteger-cpu-arguments-model-arguments-c01', + 'divideInteger-cpu-arguments-model-arguments-c02', + 'divideInteger-cpu-arguments-model-arguments-c10', + 'divideInteger-cpu-arguments-model-arguments-c11', + 'divideInteger-cpu-arguments-model-arguments-c20', + 'divideInteger-cpu-arguments-model-arguments-minimum', + 'divideInteger-memory-arguments-intercept', + 'divideInteger-memory-arguments-minimum', + 'divideInteger-memory-arguments-slope', + 'encodeUtf8-cpu-arguments-intercept', + 'encodeUtf8-cpu-arguments-slope', + 'encodeUtf8-memory-arguments-intercept', + 'encodeUtf8-memory-arguments-slope', + 'equalsByteString-cpu-arguments-constant', + 'equalsByteString-cpu-arguments-intercept', + 'equalsByteString-cpu-arguments-slope', + 'equalsByteString-memory-arguments', + 'equalsData-cpu-arguments-intercept', + 'equalsData-cpu-arguments-slope', + 'equalsData-memory-arguments', + 'equalsInteger-cpu-arguments-intercept', + 'equalsInteger-cpu-arguments-slope', + 'equalsInteger-memory-arguments', + 'equalsString-cpu-arguments-constant', + 'equalsString-cpu-arguments-intercept', + 'equalsString-cpu-arguments-slope', + 'equalsString-memory-arguments', + 'fstPair-cpu-arguments', + 'fstPair-memory-arguments', + 'headList-cpu-arguments', + 'headList-memory-arguments', + 'iData-cpu-arguments', + 'iData-memory-arguments', + 'ifThenElse-cpu-arguments', + 'ifThenElse-memory-arguments', + 'indexByteString-cpu-arguments', + 'indexByteString-memory-arguments', + 'lengthOfByteString-cpu-arguments', + 'lengthOfByteString-memory-arguments', + 'lessThanByteString-cpu-arguments-intercept', + 'lessThanByteString-cpu-arguments-slope', + 'lessThanByteString-memory-arguments', + 'lessThanEqualsByteString-cpu-arguments-intercept', + 'lessThanEqualsByteString-cpu-arguments-slope', + 'lessThanEqualsByteString-memory-arguments', + 'lessThanEqualsInteger-cpu-arguments-intercept', + 'lessThanEqualsInteger-cpu-arguments-slope', + 'lessThanEqualsInteger-memory-arguments', + 'lessThanInteger-cpu-arguments-intercept', + 'lessThanInteger-cpu-arguments-slope', + 'lessThanInteger-memory-arguments', + 'listData-cpu-arguments', + 'listData-memory-arguments', + 'mapData-cpu-arguments', + 'mapData-memory-arguments', + 'mkCons-cpu-arguments', + 'mkCons-memory-arguments', + 'mkNilData-cpu-arguments', + 'mkNilData-memory-arguments', + 'mkNilPairData-cpu-arguments', + 'mkNilPairData-memory-arguments', + 'mkPairData-cpu-arguments', + 'mkPairData-memory-arguments', + 'modInteger-cpu-arguments-constant', + 'modInteger-cpu-arguments-model-arguments-c00', + 'modInteger-cpu-arguments-model-arguments-c01', + 'modInteger-cpu-arguments-model-arguments-c02', + 'modInteger-cpu-arguments-model-arguments-c10', + 'modInteger-cpu-arguments-model-arguments-c11', + 'modInteger-cpu-arguments-model-arguments-c20', + 'modInteger-cpu-arguments-model-arguments-minimum', + 'modInteger-memory-arguments-intercept', + 'modInteger-memory-arguments-slope', + 'multiplyInteger-cpu-arguments-intercept', + 'multiplyInteger-cpu-arguments-slope', + 'multiplyInteger-memory-arguments-intercept', + 'multiplyInteger-memory-arguments-slope', + 'nullList-cpu-arguments', + 'nullList-memory-arguments', + 'quotientInteger-cpu-arguments-constant', + 'quotientInteger-cpu-arguments-model-arguments-c00', + 'quotientInteger-cpu-arguments-model-arguments-c01', + 'quotientInteger-cpu-arguments-model-arguments-c02', + 'quotientInteger-cpu-arguments-model-arguments-c10', + 'quotientInteger-cpu-arguments-model-arguments-c11', + 'quotientInteger-cpu-arguments-model-arguments-c20', + 'quotientInteger-cpu-arguments-model-arguments-minimum', + 'quotientInteger-memory-arguments-intercept', + 'quotientInteger-memory-arguments-slope', + 'remainderInteger-cpu-arguments-constant', + 'remainderInteger-cpu-arguments-model-arguments-c00', + 'remainderInteger-cpu-arguments-model-arguments-c01', + 'remainderInteger-cpu-arguments-model-arguments-c02', + 'remainderInteger-cpu-arguments-model-arguments-c10', + 'remainderInteger-cpu-arguments-model-arguments-c11', + 'remainderInteger-cpu-arguments-model-arguments-c20', + 'remainderInteger-cpu-arguments-model-arguments-minimum', + 'remainderInteger-memory-arguments-intercept', + 'remainderInteger-memory-arguments-minimum', + 'remainderInteger-memory-arguments-slope', + 'serialiseData-cpu-arguments-intercept', + 'serialiseData-cpu-arguments-slope', + 'serialiseData-memory-arguments-intercept', + 'serialiseData-memory-arguments-slope', + 'sha2_256-cpu-arguments-intercept', + 'sha2_256-cpu-arguments-slope', + 'sha2_256-memory-arguments', + 'sha3_256-cpu-arguments-intercept', + 'sha3_256-cpu-arguments-slope', + 'sha3_256-memory-arguments', + 'sliceByteString-cpu-arguments-intercept', + 'sliceByteString-cpu-arguments-slope', + 'sliceByteString-memory-arguments-intercept', + 'sliceByteString-memory-arguments-slope', + 'sndPair-cpu-arguments', + 'sndPair-memory-arguments', + 'subtractInteger-cpu-arguments-intercept', + 'subtractInteger-cpu-arguments-slope', + 'subtractInteger-memory-arguments-intercept', + 'subtractInteger-memory-arguments-slope', + 'tailList-cpu-arguments', + 'tailList-memory-arguments', + 'trace-cpu-arguments', + 'trace-memory-arguments', + 'unBData-cpu-arguments', + 'unBData-memory-arguments', + 'unConstrData-cpu-arguments', + 'unConstrData-memory-arguments', + 'unIData-cpu-arguments', + 'unIData-memory-arguments', + 'unListData-cpu-arguments', + 'unListData-memory-arguments', + 'unMapData-cpu-arguments', + 'unMapData-memory-arguments', + 'verifyEcdsaSecp256k1Signature-cpu-arguments', + 'verifyEcdsaSecp256k1Signature-memory-arguments', + 'verifyEd25519Signature-cpu-arguments-intercept', + 'verifyEd25519Signature-cpu-arguments-slope', + 'verifyEd25519Signature-memory-arguments', + 'verifySchnorrSecp256k1Signature-cpu-arguments-intercept', + 'verifySchnorrSecp256k1Signature-cpu-arguments-slope', + 'verifySchnorrSecp256k1Signature-memory-arguments', + 'cekConstrCost-exBudgetCPU', + 'cekConstrCost-exBudgetMemory', + 'cekCaseCost-exBudgetCPU', + 'cekCaseCost-exBudgetMemory', + 'bls12_381_G1_add-cpu-arguments', + 'bls12_381_G1_add-memory-arguments', + 'bls12_381_G1_compress-cpu-arguments', + 'bls12_381_G1_compress-memory-arguments', + 'bls12_381_G1_equal-cpu-arguments', + 'bls12_381_G1_equal-memory-arguments', + 'bls12_381_G1_hashToGroup-cpu-arguments-intercept', + 'bls12_381_G1_hashToGroup-cpu-arguments-slope', + 'bls12_381_G1_hashToGroup-memory-arguments', + 'bls12_381_G1_neg-cpu-arguments', + 'bls12_381_G1_neg-memory-arguments', + 'bls12_381_G1_scalarMul-cpu-arguments-intercept', + 'bls12_381_G1_scalarMul-cpu-arguments-slope', + 'bls12_381_G1_scalarMul-memory-arguments', + 'bls12_381_G1_uncompress-cpu-arguments', + 'bls12_381_G1_uncompress-memory-arguments', + 'bls12_381_G2_add-cpu-arguments', + 'bls12_381_G2_add-memory-arguments', + 'bls12_381_G2_compress-cpu-arguments', + 'bls12_381_G2_compress-memory-arguments', + 'bls12_381_G2_equal-cpu-arguments', + 'bls12_381_G2_equal-memory-arguments', + 'bls12_381_G2_hashToGroup-cpu-arguments-intercept', + 'bls12_381_G2_hashToGroup-cpu-arguments-slope', + 'bls12_381_G2_hashToGroup-memory-arguments', + 'bls12_381_G2_neg-cpu-arguments', + 'bls12_381_G2_neg-memory-arguments', + 'bls12_381_G2_scalarMul-cpu-arguments-intercept', + 'bls12_381_G2_scalarMul-cpu-arguments-slope', + 'bls12_381_G2_scalarMul-memory-arguments', + 'bls12_381_G2_uncompress-cpu-arguments', + 'bls12_381_G2_uncompress-memory-arguments', + 'bls12_381_finalVerify-cpu-arguments', + 'bls12_381_finalVerify-memory-arguments', + 'bls12_381_millerLoop-cpu-arguments', + 'bls12_381_millerLoop-memory-arguments', + 'bls12_381_mulMlResult-cpu-arguments', + 'bls12_381_mulMlResult-memory-arguments', + 'keccak_256-cpu-arguments-intercept', + 'keccak_256-cpu-arguments-slope', + 'keccak_256-memory-arguments', + 'blake2b_224-cpu-arguments-intercept', + 'blake2b_224-cpu-arguments-slope', + 'blake2b_224-memory-arguments', + 'integerToByteString-cpu-arguments-c0', + 'integerToByteString-cpu-arguments-c1', + 'integerToByteString-cpu-arguments-c2', + 'integerToByteString-memory-arguments-intercept', + 'integerToByteString-memory-arguments-slope', + 'byteStringToInteger-cpu-arguments-c0', + 'byteStringToInteger-cpu-arguments-c1', + 'byteStringToInteger-cpu-arguments-c2', + 'byteStringToInteger-memory-arguments-intercept', + 'byteStringToInteger-memory-arguments-slope', +]; + // eslint-disable-next-line @typescript-eslint/no-explicit-any export const costModelsMap = (costModels: any) => { if (costModels === null || typeof costModels !== 'object') return null; @@ -363,7 +617,10 @@ export const costModelsMap = (costModels: any) => { throw new Error('The size of the Plutus V1 cost model mismatched'); if ('PlutusV2' in costModels && Object.keys(costModels.PlutusV2).length !== plutusV2Names.length) - throw new Error('The size of the Plutus V1 cost model mismatched'); + throw new Error('The size of the Plutus V2 cost model mismatched'); + + if ('PlutusV3' in costModels && Object.keys(costModels.PlutusV3).length !== plutusV3Names.length) + throw new Error('The size of the Plutus V3 cost model mismatched'); if ('PlutusV1' in costModels && validation.isNumber(Object.keys(costModels.PlutusV1)[0])) { const PlutusV1: Record = {}; @@ -383,5 +640,14 @@ export const costModelsMap = (costModels: any) => { costModels = { ...costModels, PlutusV2 }; } + if ('PlutusV3' in costModels && validation.isNumber(Object.keys(costModels.PlutusV3)[0])) { + const PlutusV3: Record = {}; + + for (let index = 0; index < plutusV3Names.length; index++) + PlutusV3[plutusV3Names[index]] = costModels.PlutusV3[index]; + + costModels = { ...costModels, PlutusV3 }; + } + return costModels; }; diff --git a/test/unit/fixtures/epochs.fixtures.ts b/test/unit/fixtures/epochs.fixtures.ts index 476dfc3c..52a0ee98 100644 --- a/test/unit/fixtures/epochs.fixtures.ts +++ b/test/unit/fixtures/epochs.fixtures.ts @@ -366,6 +366,22 @@ const query_epoch_number_parameters_regular = { 31220, 32, 32696, 32, 43357, 32, 32247, 32, 38314, 32, 35892428, 10, 57996947, 18975, 10, 38887044, 32947, 10, ], + PlutusV3: [ + 100788, 420, 1, 1, 1000, 173, 0, 1, 1000, 59957, 4, 1, 11183, 32, 201305, 8356, 4, 16000, 100, + 16000, 100, 16000, 100, 16000, 100, 16000, 100, 16000, 100, 100, 100, 16000, 100, 94375, 32, 132994, + 32, 61462, 4, 72010, 178, 0, 1, 22151, 32, 91189, 769, 4, 2, 85848, 123203, 7305, -900, 1716, 549, 57, + 85848, 0, 1, 1, 1000, 42921, 4, 2, 24548, 29498, 38, 1, 898148, 27279, 1, 51775, 558, 1, 39184, 1000, + 60594, 1, 141895, 32, 83150, 32, 15299, 32, 76049, 1, 13169, 4, 22100, 10, 28999, 74, 1, 28999, 74, + 1, 43285, 552, 1, 44749, 541, 1, 33852, 32, 68246, 32, 72362, 32, 7243, 32, 7391, 32, 11546, 32, 85848, + 123203, 7305, -900, 1716, 549, 57, 85848, 0, 1, 90434, 519, 0, 1, 74433, 32, 85848, 123203, 7305, -900, + 1716, 549, 57, 85848, 0, 1, 1, 85848, 123203, 7305, -900, 1716, 549, 57, 85848, 0, 1, 955506, 213312, + 0, 2, 270652, 22588, 4, 1457325, 64566, 4, 20467, 1, 4, 0, 141992, 32, 100788, 420, 1, 1, 81663, 32, 59498, + 32, 20142, 32, 24588, 32, 20744, 32, 25933, 32, 24623, 32, 43053543, 10, 53384111, 14333, 10, 43574283, 26308, + 10, 16000, 100, 16000, 100, 962335, 18, 2780678, 6, 442008, 1, 52538055, 3756, 18, 267929, 18, 76433006, 8868, + 18, 52948122, 18, 1995836, 36, 3227919, 12, 901022, 1, 166917843, 4307, 36, 284546, 36, 158221314, 26549, + 36, 74698472, 36, 333849714, 1, 254006273, 72, 2174038, 72, 2261318, 64571, 4, 207616, 8310, 4, 1293828, + 28716, 63, 0, 1, 1006041, 43623, 251, 0, 1 + ], }, price_mem: 0.001, price_step: 0.01, @@ -769,6 +785,259 @@ const response_epoch_number_parameters_regular = { 'verifySchnorrSecp256k1Signature-cpu-arguments-slope': 32947, 'verifySchnorrSecp256k1Signature-memory-arguments': 10, }, + PlutusV3: { + 'addInteger-cpu-arguments-intercept': 100788, + 'addInteger-cpu-arguments-slope': 420, + 'addInteger-memory-arguments-intercept': 1, + 'addInteger-memory-arguments-slope': 1, + 'appendByteString-cpu-arguments-intercept': 1000, + 'appendByteString-cpu-arguments-slope': 173, + 'appendByteString-memory-arguments-intercept': 0, + 'appendByteString-memory-arguments-slope': 1, + 'appendString-cpu-arguments-intercept': 1000, + 'appendString-cpu-arguments-slope': 59957, + 'appendString-memory-arguments-intercept': 4, + 'appendString-memory-arguments-slope': 1, + 'bData-cpu-arguments': 11183, + 'bData-memory-arguments': 32, + 'blake2b_256-cpu-arguments-intercept': 201305, + 'blake2b_256-cpu-arguments-slope': 8356, + 'blake2b_256-memory-arguments': 4, + 'cekApplyCost-exBudgetCPU': 16000, + 'cekApplyCost-exBudgetMemory': 100, + 'cekBuiltinCost-exBudgetCPU': 16000, + 'cekBuiltinCost-exBudgetMemory': 100, + 'cekConstCost-exBudgetCPU': 16000, + 'cekConstCost-exBudgetMemory': 100, + 'cekDelayCost-exBudgetCPU': 16000, + 'cekDelayCost-exBudgetMemory': 100, + 'cekForceCost-exBudgetCPU': 16000, + 'cekForceCost-exBudgetMemory': 100, + 'cekLamCost-exBudgetCPU': 16000, + 'cekLamCost-exBudgetMemory': 100, + 'cekStartupCost-exBudgetCPU': 100, + 'cekStartupCost-exBudgetMemory': 100, + 'cekVarCost-exBudgetCPU': 16000, + 'cekVarCost-exBudgetMemory': 100, + 'chooseData-cpu-arguments': 94375, + 'chooseData-memory-arguments': 32, + 'chooseList-cpu-arguments': 132994, + 'chooseList-memory-arguments': 32, + 'chooseUnit-cpu-arguments': 61462, + 'chooseUnit-memory-arguments': 4, + 'consByteString-cpu-arguments-intercept': 72010, + 'consByteString-cpu-arguments-slope': 178, + 'consByteString-memory-arguments-intercept': 0, + 'consByteString-memory-arguments-slope': 1, + 'constrData-cpu-arguments': 22151, + 'constrData-memory-arguments': 32, + 'decodeUtf8-cpu-arguments-intercept': 91189, + 'decodeUtf8-cpu-arguments-slope': 769, + 'decodeUtf8-memory-arguments-intercept': 4, + 'decodeUtf8-memory-arguments-slope': 2, + 'divideInteger-cpu-arguments-constant': 85848, + 'divideInteger-cpu-arguments-model-arguments-c00': 123203, + 'divideInteger-cpu-arguments-model-arguments-c01': 7305, + 'divideInteger-cpu-arguments-model-arguments-c02': -900, + 'divideInteger-cpu-arguments-model-arguments-c10': 1716, + 'divideInteger-cpu-arguments-model-arguments-c11': 549, + 'divideInteger-cpu-arguments-model-arguments-c20': 57, + 'divideInteger-cpu-arguments-model-arguments-minimum': 85848, + 'divideInteger-memory-arguments-intercept': 0, + 'divideInteger-memory-arguments-minimum': 1, + 'divideInteger-memory-arguments-slope': 1, + 'encodeUtf8-cpu-arguments-intercept': 1000, + 'encodeUtf8-cpu-arguments-slope': 42921, + 'encodeUtf8-memory-arguments-intercept': 4, + 'encodeUtf8-memory-arguments-slope': 2, + 'equalsByteString-cpu-arguments-constant': 24548, + 'equalsByteString-cpu-arguments-intercept': 29498, + 'equalsByteString-cpu-arguments-slope': 38, + 'equalsByteString-memory-arguments': 1, + 'equalsData-cpu-arguments-intercept': 898148, + 'equalsData-cpu-arguments-slope': 27279, + 'equalsData-memory-arguments': 1, + 'equalsInteger-cpu-arguments-intercept': 51775, + 'equalsInteger-cpu-arguments-slope': 558, + 'equalsInteger-memory-arguments': 1, + 'equalsString-cpu-arguments-constant': 39184, + 'equalsString-cpu-arguments-intercept': 1000, + 'equalsString-cpu-arguments-slope': 60594, + 'equalsString-memory-arguments': 1, + 'fstPair-cpu-arguments': 141895, + 'fstPair-memory-arguments': 32, + 'headList-cpu-arguments': 83150, + 'headList-memory-arguments': 32, + 'iData-cpu-arguments': 15299, + 'iData-memory-arguments': 32, + 'ifThenElse-cpu-arguments': 76049, + 'ifThenElse-memory-arguments': 1, + 'indexByteString-cpu-arguments': 13169, + 'indexByteString-memory-arguments': 4, + 'lengthOfByteString-cpu-arguments': 22100, + 'lengthOfByteString-memory-arguments': 10, + 'lessThanByteString-cpu-arguments-intercept': 28999, + 'lessThanByteString-cpu-arguments-slope': 74, + 'lessThanByteString-memory-arguments': 1, + 'lessThanEqualsByteString-cpu-arguments-intercept': 28999, + 'lessThanEqualsByteString-cpu-arguments-slope': 74, + 'lessThanEqualsByteString-memory-arguments': 1, + 'lessThanEqualsInteger-cpu-arguments-intercept': 43285, + 'lessThanEqualsInteger-cpu-arguments-slope': 552, + 'lessThanEqualsInteger-memory-arguments': 1, + 'lessThanInteger-cpu-arguments-intercept': 44749, + 'lessThanInteger-cpu-arguments-slope': 541, + 'lessThanInteger-memory-arguments': 1, + 'listData-cpu-arguments': 33852, + 'listData-memory-arguments': 32, + 'mapData-cpu-arguments': 68246, + 'mapData-memory-arguments': 32, + 'mkCons-cpu-arguments': 72362, + 'mkCons-memory-arguments': 32, + 'mkNilData-cpu-arguments': 7243, + 'mkNilData-memory-arguments': 32, + 'mkNilPairData-cpu-arguments': 7391, + 'mkNilPairData-memory-arguments': 32, + 'mkPairData-cpu-arguments': 11546, + 'mkPairData-memory-arguments': 32, + 'modInteger-cpu-arguments-constant': 85848, + 'modInteger-cpu-arguments-model-arguments-c00': 123203, + 'modInteger-cpu-arguments-model-arguments-c01': 7305, + 'modInteger-cpu-arguments-model-arguments-c02': -900, + 'modInteger-cpu-arguments-model-arguments-c10': 1716, + 'modInteger-cpu-arguments-model-arguments-c11': 549, + 'modInteger-cpu-arguments-model-arguments-c20': 57, + 'modInteger-cpu-arguments-model-arguments-minimum': 85848, + 'modInteger-memory-arguments-intercept': 0, + 'modInteger-memory-arguments-slope': 1, + 'multiplyInteger-cpu-arguments-intercept': 90434, + 'multiplyInteger-cpu-arguments-slope': 519, + 'multiplyInteger-memory-arguments-intercept': 0, + 'multiplyInteger-memory-arguments-slope': 1, + 'nullList-cpu-arguments': 74433, + 'nullList-memory-arguments': 32, + 'quotientInteger-cpu-arguments-constant': 85848, + 'quotientInteger-cpu-arguments-model-arguments-c00': 123203, + 'quotientInteger-cpu-arguments-model-arguments-c01': 7305, + 'quotientInteger-cpu-arguments-model-arguments-c02': -900, + 'quotientInteger-cpu-arguments-model-arguments-c10': 1716, + 'quotientInteger-cpu-arguments-model-arguments-c11': 549, + 'quotientInteger-cpu-arguments-model-arguments-c20': 57, + 'quotientInteger-cpu-arguments-model-arguments-minimum': 85848, + 'quotientInteger-memory-arguments-intercept': 0, + 'quotientInteger-memory-arguments-slope': 1, + 'remainderInteger-cpu-arguments-constant': 1, + 'remainderInteger-cpu-arguments-model-arguments-c00': 85848, + 'remainderInteger-cpu-arguments-model-arguments-c01': 123203, + 'remainderInteger-cpu-arguments-model-arguments-c02': 7305, + 'remainderInteger-cpu-arguments-model-arguments-c10': -900, + 'remainderInteger-cpu-arguments-model-arguments-c11': 1716, + 'remainderInteger-cpu-arguments-model-arguments-c20': 549, + 'remainderInteger-cpu-arguments-model-arguments-minimum': 57, + 'remainderInteger-memory-arguments-intercept': 85848, + 'remainderInteger-memory-arguments-minimum': 0, + 'remainderInteger-memory-arguments-slope': 1, + 'serialiseData-cpu-arguments-intercept': 955506, + 'serialiseData-cpu-arguments-slope': 213312, + 'serialiseData-memory-arguments-intercept': 0, + 'serialiseData-memory-arguments-slope': 2, + 'sha2_256-cpu-arguments-intercept': 270652, + 'sha2_256-cpu-arguments-slope': 22588, + 'sha2_256-memory-arguments': 4, + 'sha3_256-cpu-arguments-intercept': 1457325, + 'sha3_256-cpu-arguments-slope': 64566, + 'sha3_256-memory-arguments': 4, + 'sliceByteString-cpu-arguments-intercept': 20467, + 'sliceByteString-cpu-arguments-slope': 1, + 'sliceByteString-memory-arguments-intercept': 4, + 'sliceByteString-memory-arguments-slope': 0, + 'sndPair-cpu-arguments': 141992, + 'sndPair-memory-arguments': 32, + 'subtractInteger-cpu-arguments-intercept': 100788, + 'subtractInteger-cpu-arguments-slope': 420, + 'subtractInteger-memory-arguments-intercept': 1, + 'subtractInteger-memory-arguments-slope': 1, + 'tailList-cpu-arguments': 81663, + 'tailList-memory-arguments': 32, + 'trace-cpu-arguments': 59498, + 'trace-memory-arguments': 32, + 'unBData-cpu-arguments': 20142, + 'unBData-memory-arguments': 32, + 'unConstrData-cpu-arguments': 24588, + 'unConstrData-memory-arguments': 32, + 'unIData-cpu-arguments': 20744, + 'unIData-memory-arguments': 32, + 'unListData-cpu-arguments': 25933, + 'unListData-memory-arguments': 32, + 'unMapData-cpu-arguments': 24623, + 'unMapData-memory-arguments': 32, + 'verifyEcdsaSecp256k1Signature-cpu-arguments': 43053543, + 'verifyEcdsaSecp256k1Signature-memory-arguments': 10, + 'verifyEd25519Signature-cpu-arguments-intercept': 53384111, + 'verifyEd25519Signature-cpu-arguments-slope': 14333, + 'verifyEd25519Signature-memory-arguments': 10, + 'verifySchnorrSecp256k1Signature-cpu-arguments-intercept': 43574283, + 'verifySchnorrSecp256k1Signature-cpu-arguments-slope': 26308, + 'verifySchnorrSecp256k1Signature-memory-arguments': 10, + 'cekConstrCost-exBudgetCPU': 16000, + 'cekConstrCost-exBudgetMemory': 100, + 'cekCaseCost-exBudgetCPU': 16000, + 'cekCaseCost-exBudgetMemory': 100, + 'bls12_381_G1_add-cpu-arguments': 962335, + 'bls12_381_G1_add-memory-arguments': 18, + 'bls12_381_G1_compress-cpu-arguments': 2780678, + 'bls12_381_G1_compress-memory-arguments': 6, + 'bls12_381_G1_equal-cpu-arguments': 442008, + 'bls12_381_G1_equal-memory-arguments': 1, + 'bls12_381_G1_hashToGroup-cpu-arguments-intercept': 52538055, + 'bls12_381_G1_hashToGroup-cpu-arguments-slope': 3756, + 'bls12_381_G1_hashToGroup-memory-arguments': 18, + 'bls12_381_G1_neg-cpu-arguments': 267929, + 'bls12_381_G1_neg-memory-arguments': 18, + 'bls12_381_G1_scalarMul-cpu-arguments-intercept': 76433006, + 'bls12_381_G1_scalarMul-cpu-arguments-slope': 8868, + 'bls12_381_G1_scalarMul-memory-arguments': 18, + 'bls12_381_G1_uncompress-cpu-arguments': 52948122, + 'bls12_381_G1_uncompress-memory-arguments': 18, + 'bls12_381_G2_add-cpu-arguments': 1995836, + 'bls12_381_G2_add-memory-arguments': 36, + 'bls12_381_G2_compress-cpu-arguments': 3227919, + 'bls12_381_G2_compress-memory-arguments': 12, + 'bls12_381_G2_equal-cpu-arguments': 901022, + 'bls12_381_G2_equal-memory-arguments': 1, + 'bls12_381_G2_hashToGroup-cpu-arguments-intercept': 166917843, + 'bls12_381_G2_hashToGroup-cpu-arguments-slope': 4307, + 'bls12_381_G2_hashToGroup-memory-arguments': 36, + 'bls12_381_G2_neg-cpu-arguments': 284546, + 'bls12_381_G2_neg-memory-arguments': 36, + 'bls12_381_G2_scalarMul-cpu-arguments-intercept': 158221314, + 'bls12_381_G2_scalarMul-cpu-arguments-slope': 26549, + 'bls12_381_G2_scalarMul-memory-arguments': 36, + 'bls12_381_G2_uncompress-cpu-arguments': 74698472, + 'bls12_381_G2_uncompress-memory-arguments': 36, + 'bls12_381_finalVerify-cpu-arguments': 333849714, + 'bls12_381_finalVerify-memory-arguments': 1, + 'bls12_381_millerLoop-cpu-arguments': 254006273, + 'bls12_381_millerLoop-memory-arguments': 72, + 'bls12_381_mulMlResult-cpu-arguments': 2174038, + 'bls12_381_mulMlResult-memory-arguments': 72, + 'keccak_256-cpu-arguments-intercept': 2261318, + 'keccak_256-cpu-arguments-slope': 64571, + 'keccak_256-memory-arguments': 4, + 'blake2b_224-cpu-arguments-intercept': 207616, + 'blake2b_224-cpu-arguments-slope': 8310, + 'blake2b_224-memory-arguments': 4, + 'integerToByteString-cpu-arguments-c0': 1293828, + 'integerToByteString-cpu-arguments-c1': 28716, + 'integerToByteString-cpu-arguments-c2': 63, + 'integerToByteString-memory-arguments-intercept': 0, + 'integerToByteString-memory-arguments-slope': 1, + 'byteStringToInteger-cpu-arguments-c0': 1006041, + 'byteStringToInteger-cpu-arguments-c1': 43623, + 'byteStringToInteger-cpu-arguments-c2': 251, + 'byteStringToInteger-memory-arguments-intercept': 0, + 'byteStringToInteger-memory-arguments-slope': 1, + }, }, price_mem: 0.001, price_step: 0.01,