diff --git a/.vscode/settings.json b/.vscode/settings.json index ca15cff..b94a58a 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -8,6 +8,7 @@ "cbor", "cbors", "compat", + "decentralisation", "drep", "dreps", "emurgo", @@ -19,6 +20,8 @@ "memoizee", "nixify", "preprod", + "pvtpp", + "tada", "tailwindcss", "timelock", "txid", diff --git a/README.md b/README.md index a3808a5..1ea49a3 100644 --- a/README.md +++ b/README.md @@ -98,11 +98,12 @@ using the same encoding. Each command message requires: -- `id`: an identifier which is mirrored by the server in the output message; This identifier, while unused by the server, is useful for the client to reconcile output messages to relative input message. -- `command`: Command to execute (`ESTIMATE_FEE` | `GET_ACCOUNT_INFO` | `GET_ACCOUNT_UTXO` | `GET_BALANCE_HISTORY` | `GET_BLOCK` | `GET_SERVER_INFO` | `GET_TRANSACTION` | `PUSH_TRANSACTION` | `SUBSCRIBE_ADDRESS` | `SUBSCRIBE_BLOCK` | `UNSUBSCRIBE_ADDRESS` | `UNSUBSCRIBE_BLOCK` - ) -- `params`: optionally a set of parameters, depending on - the command. +- `id`: an identifier which is mirrored by the server in the output message; This identifier, while unused by the server, is useful for the client to +reconcile output messages to relative input message. +- `command`: Command to execute (`ESTIMATE_FEE` | `GET_ACCOUNT_INFO` | `GET_ACCOUNT_UTXO` | `GET_BALANCE_HISTORY` | `GET_BLOCK` | +`GET_PROTOCOL_PARAMETERS` | `GET_SERVER_INFO` | `GET_TRANSACTION` | `PUSH_TRANSACTION` | +`SUBSCRIBE_ADDRESS` | `SUBSCRIBE_BLOCK` | `UNSUBSCRIBE_ADDRESS` | `UNSUBSCRIBE_BLOCK`). +- `params`: optionally a set of parameters, depending on the command. **The structure of an input message is:** @@ -159,6 +160,7 @@ For each of these commands the client receives an immediate response - [`GET_ADA_HANDLE`](#get_ada_handle) - resolves an Ada Handle - [`GET_BALANCE_HISTORY`](#get_balance_history) - get balance history of an account - [`GET_BLOCK`](#get_block) - get details of a block +- [`GET_PROTOCOL_PARAMETERS`](#get_protocol_parameters) - get latest epoch protocol parameters - [`GET_TRANSACTION`](#get_transaction) - get details of a transaction - [`GET_SERVER_INFO`](#get_server_info) - get information about the server - [`PUSH_TRANSACTION`](#push_transaction) - submits a transaction to the network @@ -176,6 +178,8 @@ When an unsubscribe command is sent, the client receives an immediate response c ### ESTIMATE_FEE +**Note: DEPRECATED** - use `min_fee_a` from [`GET_PROTOCOL_PARAMETERS`](#get_protocol_parameters) instead. + Estimates the minimum fee required for transaction submission based on the linear fee parameters for the current epoch. Input message: @@ -549,6 +553,87 @@ Payload contains [block data](https://docs.blockfrost.io/#tag/cardano--blocks/GE } ``` +### GET_PROTOCOL_PARAMETERS + +Gets the protocol parameters relative to the latest epochs. + +Input message: + +```ts +{ + id: number | string; + "command": "GET_PROTOCOL_PARAMETERS" +} +``` + +Response: +Payload contains [protocol parameters](https://docs.blockfrost.io/#tag/cardano--epochs/GET/epochs/latest/parameters). + +```TypeScript +{ + id: number | string; + type: "message"; + data: { // https://docs.blockfrost.io/#tag/cardano--epochs/GET/epochs/latest/parameters + epoch: number; + min_fee_a: number; + min_fee_b: number; + max_block_size: number; + max_tx_size: number; + max_block_header_size: number; + key_deposit: string; + pool_deposit: string; + e_max: number; + n_opt: number; + a0: number; + rho: number; + tau: number; + decentralisation_param: number; + extra_entropy: string | null; + protocol_major_ver: number; + protocol_minor_ver: number; + min_utxo: string; + min_pool_cost: string; + nonce: string; + cost_models: { [key: string]: unknown } | null; + cost_models_raw?: { [key: string]: unknown } | null; + price_mem: number | null; + price_step: number | null; + max_tx_ex_mem: string | null; + max_tx_ex_steps: string | null; + max_block_ex_mem: string | null; + max_block_ex_steps: string | null; + max_val_size: string | null; + collateral_percent: number | null; + max_collateral_inputs: number | null; + coins_per_utxo_size: string | null; + coins_per_utxo_word: string | null; + pvt_motion_no_confidence: number | null; + pvt_committee_normal: number | null; + pvt_committee_no_confidence: number | null; + pvt_hard_fork_initiation: number | null; + dvt_motion_no_confidence: number | null; + dvt_committee_normal: number | null; + dvt_committee_no_confidence: number | null; + dvt_update_to_constitution: number | null; + dvt_hard_fork_initiation: number | null; + dvt_p_p_network_group: number | null; + dvt_p_p_economic_group: number | null; + dvt_p_p_technical_group: number | null; + dvt_p_p_gov_group: number | null; + dvt_treasury_withdrawal: number | null; + committee_min_size: string | null; + committee_max_term_length: string | null; + gov_action_lifetime: string | null; + gov_action_deposit: string | null; + drep_deposit: string | null; + drep_activity: string | null; + pvtpp_security_group: number | null; + pvt_p_p_security_group: number | null; + min_fee_ref_script_cost_per_byte: number | null; + } +} +``` + ### GET_TRANSACTION Returns information about a specified transaction. diff --git a/src/methods/get-protocols-parameters.ts b/src/methods/get-protocols-parameters.ts new file mode 100644 index 0000000..4dffecc --- /dev/null +++ b/src/methods/get-protocols-parameters.ts @@ -0,0 +1,11 @@ +import { prepareMessage } from '../utils/message.js'; +import { blockfrostAPI } from '../utils/blockfrost-api.js'; +import { MessageId } from '../types/message.js'; +import { limiter } from '../utils/limiter.js'; + +export default async (id: MessageId, clientId: string) => + prepareMessage({ + id, + clientId, + data: await limiter(() => blockfrostAPI.epochsLatestParameters()), + }); diff --git a/src/server.ts b/src/server.ts index 3906129..40aecbd 100644 --- a/src/server.ts +++ b/src/server.ts @@ -25,6 +25,7 @@ import getAccountInfo from './methods/get-account-info.js'; import getAccountUtxo from './methods/get-account-utxo.js'; import getAdaHandle from './methods/get-ada-handle.js'; import getBlock from './methods/get-block.js'; +import getProtocolParameters from './methods/get-protocols-parameters.js'; import getTransaction from './methods/get-transaction.js'; import submitTransaction from './methods/push-transaction.js'; import estimateFee from './methods/estimate-fee.js'; @@ -200,19 +201,6 @@ wss.on('connection', async (ws: Server.Ws) => { ); switch (command) { - case 'GET_SERVER_INFO': { - response = await getServerInfo(id, clientId); - - break; - } - - case 'GET_TRANSACTION': { - validators.GET_TRANSACTION(params); - response = await getTransaction(id, clientId, params.txId); - - break; - } - case 'GET_BLOCK': { validators.GET_BLOCK(params); response = await getBlock(id, clientId, params.hashOrNumber); @@ -268,6 +256,32 @@ wss.on('connection', async (ws: Server.Ws) => { break; } + case 'GET_PROTOCOL_PARAMETERS': { + response = await getProtocolParameters(id, clientId); + + break; + } + + case 'GET_SERVER_INFO': { + response = await getServerInfo(id, clientId); + + break; + } + + case 'GET_TRANSACTION': { + validators.GET_TRANSACTION(params); + response = await getTransaction(id, clientId, params.txId); + + break; + } + + case 'PUSH_TRANSACTION': { + validators.PUSH_TRANSACTION(params); + response = await submitTransaction(id, clientId, params.txData); + + break; + } + case 'SUBSCRIBE_BLOCK': { const activeBlockSubIndex = activeSubscriptions[clientId].findIndex( index => index.type === 'block', @@ -350,13 +364,6 @@ wss.on('connection', async (ws: Server.Ws) => { break; } - case 'PUSH_TRANSACTION': { - validators.PUSH_TRANSACTION(params); - response = await submitTransaction(id, clientId, params.txData); - - break; - } - default: { response = prepareErrorMessage(id, clientId, `Unknown command: ${command}`); } diff --git a/src/types/message.ts b/src/types/message.ts index 0a025c5..c6e5e28 100644 --- a/src/types/message.ts +++ b/src/types/message.ts @@ -43,6 +43,10 @@ export type Messages = BaseMessage & txId: string; }; } + | { + command: 'GET_PROTOCOL_PARAMETERS'; + params: null; + } | { command: 'GET_SERVER_INFO'; params: null; diff --git a/src/types/response.ts b/src/types/response.ts index 58f7d68..da2c8cd 100644 --- a/src/types/response.ts +++ b/src/types/response.ts @@ -94,6 +94,7 @@ export type Responses = { | { address: string } | null | Schemas['block_content'] + | Schemas['epoch_param_content'] | BalanceHistoryData[] | TxIdsToTransactionsResponse[] | TransformedTransaction diff --git a/test/e2e/fixtures/preprod/get-protocol-parameters.e2e.ts b/test/e2e/fixtures/preprod/get-protocol-parameters.e2e.ts new file mode 100644 index 0000000..81b693f --- /dev/null +++ b/test/e2e/fixtures/preprod/get-protocol-parameters.e2e.ts @@ -0,0 +1,718 @@ +import { expect } from 'vitest'; + +export default [ + { + testName: 'GET_PROTOCOL_PARAMETERS success - preprod', + result: { + id: 0, + type: 'message', + data: { + epoch: expect.any(Number), + min_fee_a: 44, + min_fee_b: 155_381, + max_block_size: 90_112, + max_tx_size: 16_384, + max_block_header_size: 1100, + key_deposit: '2000000', + pool_deposit: '500000000', + e_max: 18, + n_opt: 500, + a0: 0.3, + rho: 0.003, + tau: 0.2, + decentralisation_param: 0, + extra_entropy: null, + protocol_major_ver: expect.any(Number), + protocol_minor_ver: 0, + min_utxo: '4310', + min_pool_cost: '170000000', + nonce: expect.any(String), + cost_models_raw: { + PlutusV1: expect.arrayContaining([expect.any(Number)]), + PlutusV2: expect.arrayContaining([expect.any(Number)]), + PlutusV3: expect.arrayContaining([expect.any(Number)]), + }, + cost_models: { + PlutusV1: { + '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-intercept': 228465, + 'divideInteger-cpu-arguments-model-arguments-slope': 122, + '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-intercept': 228465, + 'modInteger-cpu-arguments-model-arguments-slope': 122, + 'modInteger-memory-arguments-intercept': 0, + 'modInteger-memory-arguments-minimum': 1, + '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-intercept': 228465, + 'quotientInteger-cpu-arguments-model-arguments-slope': 122, + 'quotientInteger-memory-arguments-intercept': 0, + 'quotientInteger-memory-arguments-minimum': 1, + 'quotientInteger-memory-arguments-slope': 1, + 'remainderInteger-cpu-arguments-constant': 85848, + 'remainderInteger-cpu-arguments-model-arguments-intercept': 228465, + 'remainderInteger-cpu-arguments-model-arguments-slope': 122, + 'remainderInteger-memory-arguments-intercept': 0, + 'remainderInteger-memory-arguments-minimum': 1, + 'remainderInteger-memory-arguments-slope': 1, + '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, + 'verifyEd25519Signature-cpu-arguments-intercept': 53384111, + 'verifyEd25519Signature-cpu-arguments-slope': 14333, + 'verifyEd25519Signature-memory-arguments': 10, + }, + PlutusV2: { + '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-intercept': 228465, + 'divideInteger-cpu-arguments-model-arguments-slope': 122, + '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-intercept': 228465, + 'modInteger-cpu-arguments-model-arguments-slope': 122, + 'modInteger-memory-arguments-intercept': 0, + 'modInteger-memory-arguments-minimum': 1, + '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-intercept': 228465, + 'quotientInteger-cpu-arguments-model-arguments-slope': 122, + 'quotientInteger-memory-arguments-intercept': 0, + 'quotientInteger-memory-arguments-minimum': 1, + 'quotientInteger-memory-arguments-slope': 1, + 'remainderInteger-cpu-arguments-constant': 85848, + 'remainderInteger-cpu-arguments-model-arguments-intercept': 228465, + 'remainderInteger-cpu-arguments-model-arguments-slope': 122, + 'remainderInteger-memory-arguments-intercept': 0, + 'remainderInteger-memory-arguments-minimum': 1, + '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, + }, + 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, + 'andByteString-cpu-arguments-intercept': 100181, + 'andByteString-cpu-arguments-slope1': 726, + 'andByteString-cpu-arguments-slope2': 719, + 'andByteString-memory-arguments-intercept': 0, + 'andByteString-memory-arguments-slope': 1, + 'orByteString-cpu-arguments-intercept': 100181, + 'orByteString-cpu-arguments-slope1': 726, + 'orByteString-cpu-arguments-slope2': 719, + 'orByteString-memory-arguments-intercept': 0, + 'orByteString-memory-arguments-slope': 1, + 'xorByteString-cpu-arguments-intercept': 100181, + 'xorByteString-cpu-arguments-slope1': 726, + 'xorByteString-cpu-arguments-slope2': 719, + 'xorByteString-memory-arguments-intercept': 0, + 'xorByteString-memory-arguments-slope': 1, + 'complementByteString-cpu-arguments-intercept': 107878, + 'complementByteString-cpu-arguments-slope': 680, + 'complementByteString-memory-arguments-intercept': 0, + 'complementByteString-memory-arguments-slope': 1, + 'readBit-cpu-arguments': 95336, + 'readBit-memory-arguments': 1, + 'writeBits-cpu-arguments-intercept': 281145, + 'writeBits-cpu-arguments-slope': 18848, + 'writeBits-memory-arguments-intercept': 0, + 'writeBits-memory-arguments-slope': 1, + 'replicateByte-cpu-arguments-intercept': 180194, + 'replicateByte-cpu-arguments-slope': 159, + 'replicateByte-memory-arguments-intercept': 1, + 'replicateByte-memory-arguments-slope': 1, + 'shiftByteString-cpu-arguments-intercept': 158519, + 'shiftByteString-cpu-arguments-slope': 8942, + 'shiftByteString-memory-arguments-intercept': 0, + 'shiftByteString-memory-arguments-slope': 1, + 'rotateByteString-cpu-arguments-intercept': 159378, + 'rotateByteString-cpu-arguments-slope': 8813, + 'rotateByteString-memory-arguments-intercept': 0, + 'rotateByteString-memory-arguments-slope': 1, + 'countSetBits-cpu-arguments-intercept': 107490, + 'countSetBits-cpu-arguments-slope': 3298, + 'countSetBits-memory-arguments': 1, + 'findFirstSetBit-cpu-arguments-intercept': 106057, + 'findFirstSetBit-cpu-arguments-slope': 655, + 'findFirstSetBit-memory-arguments': 1, + 'ripemd_160-cpu-arguments-intercept': 1964219, + 'ripemd_160-cpu-arguments-slope': 24520, + 'ripemd_160-memory-arguments': 3, + }, + }, + price_mem: 0.0577, + price_step: 0.000_072_1, + max_tx_ex_mem: '14000000', + max_tx_ex_steps: '10000000000', + max_block_ex_mem: '62000000', + max_block_ex_steps: '20000000000', + max_val_size: '5000', + collateral_percent: 150, + max_collateral_inputs: 3, + coins_per_utxo_size: '4310', + coins_per_utxo_word: '4310', + pvt_motion_no_confidence: 0.51, + pvt_committee_normal: 0.51, + pvt_committee_no_confidence: 0.51, + pvt_hard_fork_initiation: 0.51, + dvt_motion_no_confidence: 0.67, + dvt_committee_normal: 0.67, + dvt_committee_no_confidence: 0.6, + dvt_update_to_constitution: 0.75, + dvt_hard_fork_initiation: 0.6, + dvt_p_p_network_group: 0.67, + dvt_p_p_economic_group: 0.67, + dvt_p_p_technical_group: 0.67, + dvt_p_p_gov_group: 0.75, + dvt_treasury_withdrawal: 0.67, + committee_min_size: '7', + committee_max_term_length: '146', + gov_action_lifetime: '6', + gov_action_deposit: '100000000000', + drep_deposit: '500000000', + drep_activity: '20', + pvtpp_security_group: 0.51, + pvt_p_p_security_group: 0.51, + min_fee_ref_script_cost_per_byte: 15, + }, + }, + }, +] as const; diff --git a/test/e2e/tests/get-protocol-parameters.e2e.test.ts b/test/e2e/tests/get-protocol-parameters.e2e.test.ts new file mode 100644 index 0000000..436ef60 --- /dev/null +++ b/test/e2e/tests/get-protocol-parameters.e2e.test.ts @@ -0,0 +1,16 @@ +import { describe, expect, test } from 'vitest'; +import { getFixtures } from '../utils/fixtures-loader.js'; +import { getWebSocketClient } from '../utils/setup-websocket-client.js'; + +const fixtures = await getFixtures('get-protocol-parameters'); + +describe('get-protocol-parameters', () => { + for (const fixture of fixtures) { + test(fixture.testName, async () => { + const ws = getWebSocketClient(); + const msg = await ws.sendAndWait('GET_PROTOCOL_PARAMETERS'); + + expect(msg).toStrictEqual(fixture.result); + }); + } +}); diff --git a/test/e2e/tests/get-server-info.e2e.test.ts b/test/e2e/tests/get-server-info.e2e.test.ts index f4bea6e..1ded778 100644 --- a/test/e2e/tests/get-server-info.e2e.test.ts +++ b/test/e2e/tests/get-server-info.e2e.test.ts @@ -5,7 +5,6 @@ import { getWebSocketClient } from '../utils/setup-websocket-client.js'; const fixtures = await getFixtures('get-server-info'); describe('get-server-info', () => { - for (const fixture of fixtures) { test(fixture.testName, async () => { const ws = getWebSocketClient();