@blockfrost/blockfrost-cardano-cli
Version:
Drop-in(ish) replacement for cardano-cli powered by Blockfrost
268 lines (267 loc) • 13.2 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.ProtocolParameters = void 0;
const base_command_1 = require("../../helpers/base-command");
const format_1 = require("../../utils/format");
// cardano-cli response
// {
// "txFeePerByte": 44,
// "minUTxOValue": null,
// "decentralization": 0,
// "utxoCostPerWord": 34482,
// "stakePoolDeposit": 500000000,
// "poolRetireMaxEpoch": 18,
// "extraPraosEntropy": null,
// "collateralPercentage": 150,
// "stakePoolTargetNum": 500,
// "maxBlockBodySize": 65536,
// "minPoolCost": 340000000,
// "maxTxSize": 16384,
// "treasuryCut": 0.2,
// "maxBlockExecutionUnits": {
// "memory": 50000000,
// "steps": 40000000000
// },
// "maxCollateralInputs": 3,
// "maxValueSize": 5000,
// "maxBlockHeaderSize": 1100,
// "maxTxExecutionUnits": {
// "memory": 10000000,
// "steps": 10000000000
// },
// "costModels": {
// "PlutusScriptV1": {
// "cekConstCost-exBudgetMemory": 100,
// "unBData-cpu-arguments": 150000,
// "divideInteger-memory-arguments-minimum": 1,
// "nullList-cpu-arguments": 150000,
// "cekDelayCost-exBudgetMemory": 100,
// "appendByteString-cpu-arguments-slope": 621,
// "sha2_256-memory-arguments": 4,
// "multiplyInteger-cpu-arguments-intercept": 61516,
// "iData-cpu-arguments": 150000,
// "equalsString-cpu-arguments-intercept": 150000,
// "trace-cpu-arguments": 150000,
// "lessThanEqualsByteString-cpu-arguments-intercept": 103599,
// "encodeUtf8-cpu-arguments-slope": 1000,
// "equalsString-cpu-arguments-constant": 1000,
// "blake2b-cpu-arguments-slope": 29175,
// "consByteString-memory-arguments-intercept": 0,
// "headList-cpu-arguments": 150000,
// "listData-cpu-arguments": 150000,
// "divideInteger-cpu-arguments-model-arguments-slope": 118,
// "divideInteger-memory-arguments-slope": 1,
// "bData-cpu-arguments": 150000,
// "chooseData-memory-arguments": 32,
// "cekBuiltinCost-exBudgetCPU": 29773,
// "mkNilData-memory-arguments": 32,
// "equalsInteger-cpu-arguments-intercept": 136542,
// "lengthOfByteString-cpu-arguments": 150000,
// "subtractInteger-cpu-arguments-slope": 0,
// "unIData-cpu-arguments": 150000,
// "sliceByteString-cpu-arguments-slope": 5000,
// "unMapData-cpu-arguments": 150000,
// "modInteger-cpu-arguments-model-arguments-slope": 118,
// "lessThanInteger-cpu-arguments-intercept": 179690,
// "appendString-memory-arguments-intercept": 0,
// "mkCons-cpu-arguments": 150000,
// "sha3_256-cpu-arguments-slope": 82363,
// "ifThenElse-cpu-arguments": 1,
// "mkNilPairData-cpu-arguments": 150000,
// "constrData-memory-arguments": 32,
// "lessThanEqualsInteger-cpu-arguments-intercept": 145276,
// "addInteger-memory-arguments-slope": 1,
// "chooseList-memory-arguments": 32,
// "equalsData-memory-arguments": 1,
// "decodeUtf8-cpu-arguments-intercept": 150000,
// "bData-memory-arguments": 32,
// "lessThanByteString-cpu-arguments-slope": 248,
// "listData-memory-arguments": 32,
// "consByteString-cpu-arguments-intercept": 150000,
// "headList-memory-arguments": 32,
// "subtractInteger-memory-arguments-slope": 1,
// "appendByteString-memory-arguments-intercept": 0,
// "unIData-memory-arguments": 32,
// "remainderInteger-memory-arguments-minimum": 1,
// "lengthOfByteString-memory-arguments": 4,
// "encodeUtf8-memory-arguments-intercept": 0,
// "cekStartupCost-exBudgetCPU": 100,
// "remainderInteger-memory-arguments-slope": 1,
// "multiplyInteger-memory-arguments-intercept": 0,
// "cekForceCost-exBudgetCPU": 29773,
// "unListData-memory-arguments": 32,
// "sha2_256-cpu-arguments-slope": 29175,
// "indexByteString-memory-arguments": 1,
// "equalsInteger-memory-arguments": 1,
// "remainderInteger-cpu-arguments-model-arguments-slope": 118,
// "cekVarCost-exBudgetCPU": 29773,
// "lessThanEqualsInteger-cpu-arguments-slope": 1366,
// "addInteger-memory-arguments-intercept": 1,
// "sndPair-cpu-arguments": 150000,
// "lessThanInteger-memory-arguments": 1,
// "cekLamCost-exBudgetCPU": 29773,
// "chooseUnit-cpu-arguments": 150000,
// "decodeUtf8-cpu-arguments-slope": 1000,
// "fstPair-cpu-arguments": 150000,
// "quotientInteger-memory-arguments-minimum": 1,
// "lessThanEqualsInteger-memory-arguments": 1,
// "chooseUnit-memory-arguments": 32,
// "fstPair-memory-arguments": 32,
// "quotientInteger-cpu-arguments-constant": 148000,
// "mapData-cpu-arguments": 150000,
// "unConstrData-cpu-arguments": 150000,
// "mkPairData-cpu-arguments": 150000,
// "sndPair-memory-arguments": 32,
// "decodeUtf8-memory-arguments-slope": 8,
// "equalsData-cpu-arguments-intercept": 150000,
// "addInteger-cpu-arguments-intercept": 197209,
// "modInteger-memory-arguments-intercept": 0,
// "cekStartupCost-exBudgetMemory": 100,
// "divideInteger-cpu-arguments-model-arguments-intercept": 425507,
// "divideInteger-memory-arguments-intercept": 0,
// "cekVarCost-exBudgetMemory": 100,
// "consByteString-memory-arguments-slope": 1,
// "cekForceCost-exBudgetMemory": 100,
// "unListData-cpu-arguments": 150000,
// "subtractInteger-cpu-arguments-intercept": 197209,
// "indexByteString-cpu-arguments": 150000,
// "equalsInteger-cpu-arguments-slope": 1326,
// "lessThanByteString-memory-arguments": 1,
// "blake2b-cpu-arguments-intercept": 2477736,
// "encodeUtf8-cpu-arguments-intercept": 150000,
// "multiplyInteger-cpu-arguments-slope": 11218,
// "tailList-cpu-arguments": 150000,
// "appendByteString-cpu-arguments-intercept": 396231,
// "equalsString-cpu-arguments-slope": 1000,
// "lessThanEqualsByteString-cpu-arguments-slope": 248,
// "remainderInteger-cpu-arguments-constant": 148000,
// "chooseList-cpu-arguments": 150000,
// "equalsByteString-memory-arguments": 1,
// "constrData-cpu-arguments": 150000,
// "cekApplyCost-exBudgetCPU": 29773,
// "equalsData-cpu-arguments-slope": 10000,
// "decodeUtf8-memory-arguments-intercept": 0,
// "modInteger-memory-arguments-slope": 1,
// "addInteger-cpu-arguments-slope": 0,
// "appendString-cpu-arguments-intercept": 150000,
// "quotientInteger-cpu-arguments-model-arguments-slope": 118,
// "unMapData-memory-arguments": 32,
// "cekApplyCost-exBudgetMemory": 100,
// "quotientInteger-memory-arguments-slope": 1,
// "mkNilPairData-memory-arguments": 32,
// "ifThenElse-memory-arguments": 1,
// "equalsByteString-cpu-arguments-slope": 247,
// "sliceByteString-memory-arguments-slope": 1,
// "sha3_256-memory-arguments": 4,
// "mkCons-memory-arguments": 32,
// "verifySignature-cpu-arguments-intercept": 3345831,
// "cekBuiltinCost-exBudgetMemory": 100,
// "remainderInteger-memory-arguments-intercept": 0,
// "lessThanEqualsByteString-memory-arguments": 1,
// "mkNilData-cpu-arguments": 150000,
// "equalsString-memory-arguments": 1,
// "chooseData-cpu-arguments": 150000,
// "remainderInteger-cpu-arguments-model-arguments-intercept": 425507,
// "tailList-memory-arguments": 32,
// "sha2_256-cpu-arguments-intercept": 2477736,
// "multiplyInteger-memory-arguments-slope": 1,
// "iData-memory-arguments": 32,
// "divideInteger-cpu-arguments-constant": 148000,
// "cekDelayCost-exBudgetCPU": 29773,
// "encodeUtf8-memory-arguments-slope": 8,
// "subtractInteger-memory-arguments-intercept": 1,
// "nullList-memory-arguments": 32,
// "lessThanByteString-cpu-arguments-intercept": 103599,
// "appendByteString-memory-arguments-slope": 1,
// "blake2b-memory-arguments": 4,
// "unBData-memory-arguments": 32,
// "cekConstCost-exBudgetCPU": 29773,
// "consByteString-cpu-arguments-slope": 1000,
// "trace-memory-arguments": 32,
// "quotientInteger-memory-arguments-intercept": 0,
// "mapData-memory-arguments": 32,
// "verifySignature-cpu-arguments-slope": 1,
// "quotientInteger-cpu-arguments-model-arguments-intercept": 425507,
// "modInteger-cpu-arguments-constant": 148000,
// "appendString-cpu-arguments-slope": 1000,
// "unConstrData-memory-arguments": 32,
// "mkPairData-memory-arguments": 32,
// "equalsByteString-cpu-arguments-constant": 150000,
// "equalsByteString-cpu-arguments-intercept": 112536,
// "sliceByteString-memory-arguments-intercept": 0,
// "lessThanInteger-cpu-arguments-slope": 497,
// "verifySignature-memory-arguments": 1,
// "cekLamCost-exBudgetMemory": 100,
// "sliceByteString-cpu-arguments-intercept": 150000,
// "modInteger-cpu-arguments-model-arguments-intercept": 425507,
// "modInteger-memory-arguments-minimum": 1,
// "appendString-memory-arguments-slope": 1,
// "sha3_256-cpu-arguments-intercept": 0
// }
// },
// "protocolVersion": {
// "minor": 0,
// "major": 6
// },
// "txFeeFixed": 155381,
// "stakeAddressDeposit": 2000000,
// "monetaryExpansion": 3.0e-3,
// "poolPledgeInfluence": 0.3,
// "executionUnitPrices": {
// "priceSteps": 7.21e-5,
// "priceMemory": 5.77e-2
// }
// }
class ProtocolParameters extends base_command_1.BaseCommand {
constructor() {
super(...arguments);
this.doWork = async () => {
var _a;
const client = await this.getClient();
const latestEpoch = await client.epochsLatest();
const epochParams = await client.epochsParameters(latestEpoch.epoch);
const response = {
txFeePerByte: epochParams.min_fee_a,
minUTxOValue: (0, format_1.stringToBigInt)(epochParams.min_utxo),
decentralization: epochParams.decentralisation_param,
utxoCostPerWord: (0, format_1.stringToBigInt)(epochParams.coins_per_utxo_word),
stakePoolDeposit: (0, format_1.stringToBigInt)(epochParams.pool_deposit),
poolRetireMaxEpoch: epochParams.e_max,
extraPraosEntropy: epochParams.extra_entropy,
collateralPercentage: epochParams.collateral_percent,
stakePoolTargetNum: 500,
maxBlockBodySize: epochParams.max_block_size,
minPoolCost: (0, format_1.stringToBigInt)(epochParams.min_pool_cost),
maxTxSize: epochParams.max_tx_size,
treasuryCut: epochParams.tau,
maxBlockExecutionUnits: {
memory: (0, format_1.stringToBigInt)(epochParams.max_block_ex_mem),
steps: (0, format_1.stringToBigInt)(epochParams.max_block_ex_steps),
},
maxCollateralInputs: epochParams.max_collateral_inputs,
maxValueSize: (0, format_1.stringToBigInt)(epochParams.max_val_size),
maxBlockHeaderSize: epochParams.max_block_header_size,
maxTxExecutionUnits: {
memory: (0, format_1.stringToBigInt)(epochParams.max_tx_ex_mem),
steps: (0, format_1.stringToBigInt)(epochParams.max_tx_ex_steps),
},
// @ts-expect-error cost_models are missing in Blockfrost OpenAPI (mainnet did not hard fork yet)
costModels: (_a = epochParams.cost_models) !== null && _a !== void 0 ? _a : {},
protocolVersion: {
minor: epochParams.protocol_minor_ver,
major: epochParams.protocol_major_ver,
},
txFeeFixed: epochParams.min_fee_b,
stakeAddressDeposit: (0, format_1.stringToBigInt)(epochParams.key_deposit),
monetaryExpansion: epochParams.rho,
poolPledgeInfluence: epochParams.a0,
executionUnitPrices: {
priceSteps: epochParams.price_step,
priceMemory: epochParams.price_mem,
},
};
return response;
};
}
}
exports.ProtocolParameters = ProtocolParameters;