From da7e88fc412ac4f613e1bf6e80e027f1b4ed283d Mon Sep 17 00:00:00 2001 From: Justin Starry Date: Thu, 1 Sep 2022 14:18:43 -0400 Subject: [PATCH] fix: add compute units to jsonrpc parser (#27554) --- web3.js/src/connection.ts | 6 ++++++ web3.js/test/connection.test.ts | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/web3.js/src/connection.ts b/web3.js/src/connection.ts index 06d687785b..28555fbf34 100644 --- a/web3.js/src/connection.ts +++ b/web3.js/src/connection.ts @@ -888,6 +888,8 @@ export type ParsedTransactionMeta = { err: TransactionError | null; /** The collection of addresses loaded using address lookup tables */ loadedAddresses?: LoadedAddresses; + /** The compute units consumed after processing the transaction */ + computeUnitsConsumed?: number; }; export type CompiledInnerInstruction = { @@ -917,6 +919,8 @@ export type ConfirmedTransactionMeta = { err: TransactionError | null; /** The collection of addresses loaded using address lookup tables */ loadedAddresses?: LoadedAddresses; + /** The compute units consumed after processing the transaction */ + computeUnitsConsumed?: number; }; /** @@ -1993,6 +1997,7 @@ const ConfirmedTransactionMetaResult = pick({ preTokenBalances: optional(nullable(array(TokenBalanceResult))), postTokenBalances: optional(nullable(array(TokenBalanceResult))), loadedAddresses: optional(LoadedAddressesResult), + computeUnitsConsumed: optional(number()), }); /** @@ -2017,6 +2022,7 @@ const ParsedConfirmedTransactionMetaResult = pick({ preTokenBalances: optional(nullable(array(TokenBalanceResult))), postTokenBalances: optional(nullable(array(TokenBalanceResult))), loadedAddresses: optional(LoadedAddressesResult), + computeUnitsConsumed: optional(number()), }); const TransactionVersionStruct = union([literal(0), literal('legacy')]); diff --git a/web3.js/test/connection.test.ts b/web3.js/test/connection.test.ts index 9ad1ebf365..f32195ec99 100644 --- a/web3.js/test/connection.test.ts +++ b/web3.js/test/connection.test.ts @@ -4460,6 +4460,8 @@ describe('Connection', function () { readonly: [], writable: [lookupTableAddresses[0]], }); + expect(fetchedTransaction.meta?.computeUnitsConsumed).to.not.be + .undefined; expect( fetchedTransaction.transaction.message.addressTableLookups, ).to.eql(addressTableLookups); @@ -4489,6 +4491,8 @@ describe('Connection', function () { readonly: [], writable: [lookupTableAddresses[0]], }); + expect(parsedTransaction?.meta?.computeUnitsConsumed).to.not.be + .undefined; expect( parsedTransaction?.transaction.message.addressTableLookups, ).to.eql(addressTableLookups);