diff --git a/change/@apibara-indexer-6b02cd7d-9389-44a1-9d26-667585103372.json b/change/@apibara-indexer-6b02cd7d-9389-44a1-9d26-667585103372.json new file mode 100644 index 0000000..3ee374f --- /dev/null +++ b/change/@apibara-indexer-6b02cd7d-9389-44a1-9d26-667585103372.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "indexer: refactor testing module", + "packageName": "@apibara/indexer", + "email": "francesco@ceccon.me", + "dependentChangeType": "patch" +} diff --git a/change/apibara-4f51164c-fe53-45f7-be69-3c9e0ea43b4c.json b/change/apibara-4f51164c-fe53-45f7-be69-3c9e0ea43b4c.json new file mode 100644 index 0000000..8aac80d --- /dev/null +++ b/change/apibara-4f51164c-fe53-45f7-be69-3c9e0ea43b4c.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Refactor testing module", + "packageName": "apibara", + "email": "francesco@ceccon.me", + "dependentChangeType": "patch" +} diff --git a/examples/cli/apibara.config.ts b/examples/cli/apibara.config.ts index 698e578..c6c484f 100644 --- a/examples/cli/apibara.config.ts +++ b/examples/cli/apibara.config.ts @@ -2,13 +2,12 @@ import { defineConfig } from "apibara/config"; export default defineConfig({ runtimeConfig: { - test: 123, - check: "something", + databasePath: ":memory:", }, presets: { dev: { runtimeConfig: { - test: 999, + databasePath: "/tmp/my-db.sqlite", }, }, }, diff --git a/examples/cli/cassettes/simple-test.json b/examples/cli/cassettes/simple-test.json new file mode 100644 index 0000000..48825cf --- /dev/null +++ b/examples/cli/cassettes/simple-test.json @@ -0,0 +1,3432 @@ +{ + "filter": { + "events": [ + { + "address": "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7", + "keys": [ + "0x99cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "includeReceipt": true + } + ] + }, + "messages": [ + { + "_tag": "data", + "data": { + "cursor": { + "orderKey": "800000n", + "uniqueKey": "0x017614e0ede412d9cd2c3025810fc2655e333a0d11a11c4f04c64eb6bf89cd40" + }, + "endCursor": { + "orderKey": "800001n", + "uniqueKey": "0x03a083e4fe7871f15e6f8a442b6e7e3d51254c45f3596218a8f9348ed0199e12" + }, + "finality": "finalized", + "data": [ + { + "header": { + "blockNumber": "800001n", + "blockHash": "0x03a083e4fe7871f15e6f8a442b6e7e3d51254c45f3596218a8f9348ed0199e12", + "parentBlockHash": "0x017614e0ede412d9cd2c3025810fc2655e333a0d11a11c4f04c64eb6bf89cd40", + "sequencerAddress": "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "newRoot": "0x045c5c42c34cdcd2bff80b42a8cacb8d34e1e8a8dce59106aaf908b63d117876", + "timestamp": "2024-10-14T09:25:00.000Z", + "starknetVersion": "0.13.2.1", + "l1GasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f1d01ca0307", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d30cb222" + }, + "l1DataGasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f1d01ca0307", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d30cb222" + }, + "l1DataAvailabilityMode": "blob" + }, + "transactions": [], + "receipts": [ + { + "filterIds": [0], + "meta": { + "transactionIndex": 0, + "transactionHash": "0x00383f1323ee5edf4499494d002679f4586bcd372a3b38092d522cbb33a45ea5", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000000496f4a1834", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "9221n", + "rangeCheckBuiltinApplications": "285n", + "pedersenBuiltinApplications": "25n", + "poseidonBuiltinApplications": "4n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "192n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 1, + "transactionHash": "0x06edcfedc5f8906f9d9cccc44fe5766dbfb6f24e1dbaa2b5a550bfb8cbc933b4", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000062dabc5ab60", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "219841n", + "rangeCheckBuiltinApplications": "9151n", + "pedersenBuiltinApplications": "44n", + "poseidonBuiltinApplications": "49n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "256n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 2, + "transactionHash": "0x006dcfffad0aebb8e496bf1af95b97ab181e9b86bd61a07c2926407ea70c0d0e", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000164a04f0c0e48", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "14570n", + "rangeCheckBuiltinApplications": "414n", + "pedersenBuiltinApplications": "27n", + "poseidonBuiltinApplications": "6n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "320n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 3, + "transactionHash": "0x01bacef14f85a02ce13eecf7e88502ae1d72d4ac42c4291619828a70c0ccee2b", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000004f15637c78", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "10101n", + "rangeCheckBuiltinApplications": "272n", + "pedersenBuiltinApplications": "25n", + "poseidonBuiltinApplications": "4n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "192n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 5, + "transactionHash": "0x01ee1057a1853eafcbb70c2069744d1669c98325de4cef75016b54e05e41df9b", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000000f2e643d9ec", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "32779n", + "rangeCheckBuiltinApplications": "994n", + "pedersenBuiltinApplications": "42n", + "poseidonBuiltinApplications": "11n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "640n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 8, + "transactionHash": "0x059305454f8d59d60098c4e383e4f9022313e80547a0bcbdbf7b8e4c390b2438", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000004c4256cad6", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "9925n", + "rangeCheckBuiltinApplications": "336n", + "pedersenBuiltinApplications": "27n", + "poseidonBuiltinApplications": "6n", + "ecdsaBuiltinApplications": "1n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "320n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 11, + "transactionHash": "0x075e5e37fb2233ece8d3bddc41fe1d793c709af897b9a4851e826a8ae2a46d5a", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000051e8702f1a", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "10554n", + "rangeCheckBuiltinApplications": "340n", + "pedersenBuiltinApplications": "25n", + "poseidonBuiltinApplications": "6n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "320n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 12, + "transactionHash": "0x078eb1a70a1cc3705fb147dfd4c80d98a60c264c71a944e613ab13c6a1ce3e61", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000025b30475ac92", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "1328588n", + "rangeCheckBuiltinApplications": "56900n", + "pedersenBuiltinApplications": "320n", + "poseidonBuiltinApplications": "446n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1216n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + } + ], + "events": [ + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x077a7a3192f4389f44cd3b6e706156fa7dd95b10f162b26351ce7df47dd2ef72", + "0x0420c0478517da04329dc4d8e095f97d30230074482aaa326153b2a4d8260b2f", + "0x000000000000000000000000000000000000000000000000001277e4640bb0c4", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 0, + "transactionIndex": 0, + "transactionHash": "0x00383f1323ee5edf4499494d002679f4586bcd372a3b38092d522cbb33a45ea5", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x077a7a3192f4389f44cd3b6e706156fa7dd95b10f162b26351ce7df47dd2ef72", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000000496f4a1834", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 2, + "transactionIndex": 0, + "transactionHash": "0x00383f1323ee5edf4499494d002679f4586bcd372a3b38092d522cbb33a45ea5", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0679016714b58bf20627a4b82dc0b2dff33768d270e984774ea4e1182451d995", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000062dabc5ab60", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 7, + "transactionIndex": 1, + "transactionHash": "0x06edcfedc5f8906f9d9cccc44fe5766dbfb6f24e1dbaa2b5a550bfb8cbc933b4", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x05f4fed45c6f42622025d806378cc03f803ffedcc6dd77b2933ea472e6c42592", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000164a04f0c0e48", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 11, + "transactionIndex": 2, + "transactionHash": "0x006dcfffad0aebb8e496bf1af95b97ab181e9b86bd61a07c2926407ea70c0d0e", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0213c67ed78bc280887234fe5ed5e77272465317978ae86c25a71531d9332a2d", + "0x048f713891e5839c1b66fa6050ad227ddcd7d523accf9dac6612fab9d4e82dda", + "0x0000000000000000000000000000000000000000000000000006c00a3912c000", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 12, + "transactionIndex": 3, + "transactionHash": "0x01bacef14f85a02ce13eecf7e88502ae1d72d4ac42c4291619828a70c0ccee2b", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0213c67ed78bc280887234fe5ed5e77272465317978ae86c25a71531d9332a2d", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000004f15637c78", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 14, + "transactionIndex": 3, + "transactionHash": "0x01bacef14f85a02ce13eecf7e88502ae1d72d4ac42c4291619828a70c0ccee2b", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06cffe11b90f64c67d2993573f5eac222219a7615548031f7eefccbb10c23a56", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000000f2e643d9ec", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 28, + "transactionIndex": 5, + "transactionHash": "0x01ee1057a1853eafcbb70c2069744d1669c98325de4cef75016b54e05e41df9b", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x029741d4a051dff871ec8e59f39146256c6f5096b9fa6f5efee387f6c37a009b", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000004c4256cad6", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 41, + "transactionIndex": 8, + "transactionHash": "0x059305454f8d59d60098c4e383e4f9022313e80547a0bcbdbf7b8e4c390b2438", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0213c67ed78bc280887234fe5ed5e77272465317978ae86c25a71531d9332a2d", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000051e8702f1a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 61, + "transactionIndex": 11, + "transactionHash": "0x075e5e37fb2233ece8d3bddc41fe1d793c709af897b9a4851e826a8ae2a46d5a", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0432ddb3aab49d861ce055c4bb608794fed16924b5f0f19884de7e0e3d6c155d", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000025b30475ac92", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 111, + "transactionIndex": 12, + "transactionHash": "0x078eb1a70a1cc3705fb147dfd4c80d98a60c264c71a944e613ab13c6a1ce3e61", + "transactionStatus": "succeeded" + } + ], + "messages": [], + "storageDiffs": [], + "contractChanges": [], + "nonceUpdates": [] + } + ] + } + }, + { + "_tag": "data", + "data": { + "cursor": { + "orderKey": "800001n", + "uniqueKey": "0x03a083e4fe7871f15e6f8a442b6e7e3d51254c45f3596218a8f9348ed0199e12" + }, + "endCursor": { + "orderKey": "800002n", + "uniqueKey": "0x0541645607879dd4659dc7ba024bbf092bb943bbc405b7aaef10d5d44462842b" + }, + "finality": "finalized", + "data": [ + { + "header": { + "blockNumber": "800002n", + "blockHash": "0x0541645607879dd4659dc7ba024bbf092bb943bbc405b7aaef10d5d44462842b", + "parentBlockHash": "0x03a083e4fe7871f15e6f8a442b6e7e3d51254c45f3596218a8f9348ed0199e12", + "sequencerAddress": "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "newRoot": "0x0429801b1529e3a4e02b4d3279b719d518eba77c98ef0c726235996164925cec", + "timestamp": "2024-10-14T09:25:31.000Z", + "starknetVersion": "0.13.2.1", + "l1GasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f1d01ca0307", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d30cb222" + }, + "l1DataGasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f1d01ca0307", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d30cb222" + }, + "l1DataAvailabilityMode": "blob" + }, + "transactions": [], + "receipts": [ + { + "filterIds": [0], + "meta": { + "transactionIndex": 0, + "transactionHash": "0x0346a0c754d7719aeac530b37a127ad443f28a0a963a2b77919ffc2f36b803bb", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000003d9b84eda9a", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "131515n", + "rangeCheckBuiltinApplications": "6155n", + "pedersenBuiltinApplications": "53n", + "poseidonBuiltinApplications": "124n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "576n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000d971f02aa06c1e", + "unit": "fri" + }, + "executionResources": { + "computation": { + "steps": "269242n", + "rangeCheckBuiltinApplications": "20507n", + "pedersenBuiltinApplications": "445n", + "poseidonBuiltinApplications": "30n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "453n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1856n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 3, + "transactionHash": "0x006b8530c33ecadf086f172e1e1389431ee0e041b002267f1b6793eecace0271", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000dae457edd30", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "465175n", + "rangeCheckBuiltinApplications": "14439n", + "pedersenBuiltinApplications": "2699n", + "poseidonBuiltinApplications": "35n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "120n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "2176n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 4, + "transactionHash": "0x0599ec3a547b461283f462f44bf5c6b183a771695176c86e2e328fe5374e04eb", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000163e03fae3c", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "44269n", + "rangeCheckBuiltinApplications": "2098n", + "pedersenBuiltinApplications": "26n", + "poseidonBuiltinApplications": "52n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "384n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 5, + "transactionHash": "0x0288e4f00a93f4ea8f61bc0c218df8070c2a4ecd219e18a8fe39d473e62dff08", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000048ba86eb438", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "153448n", + "rangeCheckBuiltinApplications": "9201n", + "pedersenBuiltinApplications": "209n", + "poseidonBuiltinApplications": "23n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "166n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1408n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 7, + "transactionHash": "0x029959d46cfadb2b0c8cc823a9e4c03b7f22f8c596c424c9e11db62ee7fa96ba", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000022c68c517ea", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "74792n", + "rangeCheckBuiltinApplications": "4287n", + "pedersenBuiltinApplications": "97n", + "poseidonBuiltinApplications": "16n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "85n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "960n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 8, + "transactionHash": "0x0083e9ca4b86089b1ef334088b088a084ea2c456c34fafac9fc9a03c964eaf09", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000002fa9763e25c", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "81166n", + "rangeCheckBuiltinApplications": "6269n", + "pedersenBuiltinApplications": "144n", + "poseidonBuiltinApplications": "11n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "85n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "640n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 9, + "transactionHash": "0x003c231eaa2c1fc07a52d6934f498baa86fe92be71bc3f1654a675271982ccd5", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000005406b9b3938", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "174449n", + "rangeCheckBuiltinApplications": "9203n", + "pedersenBuiltinApplications": "48n", + "poseidonBuiltinApplications": "143n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "512n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 11, + "transactionHash": "0x0247f793e0525ed7d9d369b1b701942e55c4d41a3116733f0c77af3c0dfd21ad", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000001e5cc87b1d8", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "64559n", + "rangeCheckBuiltinApplications": "3119n", + "pedersenBuiltinApplications": "84n", + "poseidonBuiltinApplications": "13n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "29n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "768n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 14, + "transactionHash": "0x06683c568f2e977e3d4b6f4da70b3926950c83f5a7c6119b3f2a643643db8fed", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000049f6dc79226", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "122259n", + "rangeCheckBuiltinApplications": "9850n", + "pedersenBuiltinApplications": "200n", + "poseidonBuiltinApplications": "19n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "168n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1152n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 16, + "transactionHash": "0x070e9d122c712018fa923c64a9a46707ad14b88ab298a65310ab42dc6f7bc2cc", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000360452cf064", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "89916n", + "rangeCheckBuiltinApplications": "7106n", + "pedersenBuiltinApplications": "172n", + "poseidonBuiltinApplications": "16n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "85n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "960n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 17, + "transactionHash": "0x041a41f4fdda921c6049188312aaaa28f63e6bb628d6dd604891449d4d76b395", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000031402d6260e", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "84643n", + "rangeCheckBuiltinApplications": "6495n", + "pedersenBuiltinApplications": "144n", + "poseidonBuiltinApplications": "13n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "86n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "768n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 18, + "transactionHash": "0x07f23d8f9d6b106c49e5a639de0b922efd6ccadbc7bc3b00431365a7d1ecc2e5", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000042ba0bf0a74", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "106338n", + "rangeCheckBuiltinApplications": "9192n", + "pedersenBuiltinApplications": "185n", + "poseidonBuiltinApplications": "18n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "171n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1088n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 25, + "transactionHash": "0x029893e873ee519bbc2b6a37dd310acc72a1efbaae1206808b7792351a26c6e1", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000035225ed74ba", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "86903n", + "rangeCheckBuiltinApplications": "7040n", + "pedersenBuiltinApplications": "150n", + "poseidonBuiltinApplications": "12n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "112n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "704n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 33, + "transactionHash": "0x02b40c0676d7ed1efc5b676dd83c43f1942f21b93e2e52435d266e16be81ea41", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000016986591400", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "46848n", + "rangeCheckBuiltinApplications": "2469n", + "pedersenBuiltinApplications": "178n", + "poseidonBuiltinApplications": "13n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "54n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "768n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000004232798f5ce", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "138483n", + "rangeCheckBuiltinApplications": "8595n", + "pedersenBuiltinApplications": "209n", + "poseidonBuiltinApplications": "25n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "174n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1536n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 39, + "transactionHash": "0x05042aeb03be2ec2ae48d78dcc69e9d79221807cc70eedcf083db70adfd88eac", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000234e1eb2e50", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "72617n", + "rangeCheckBuiltinApplications": "4419n", + "pedersenBuiltinApplications": "136n", + "poseidonBuiltinApplications": "16n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "85n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "960n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 40, + "transactionHash": "0x0391669154e22a752e1cfef1f608a4a7479f49f967398f7c4bc2bdbfc97b4b3d", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000001da8054ea50", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "62604n", + "rangeCheckBuiltinApplications": "3522n", + "pedersenBuiltinApplications": "187n", + "poseidonBuiltinApplications": "17n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "108n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1024n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 41, + "transactionHash": "0x003b7a8d284e58058ec8566237c3c78b5c1b666aff1bf196cfad9f56b4a2f344", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000027b7e2892a2", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "73982n", + "rangeCheckBuiltinApplications": "5237n", + "pedersenBuiltinApplications": "126n", + "poseidonBuiltinApplications": "12n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "112n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "704n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 43, + "transactionHash": "0x07c7cecea6fc82c7d70672bdf84a69f4c6c38c43400b60a519f6b59728c71ed0", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000062dabc5ab60", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "219809n", + "rangeCheckBuiltinApplications": "9125n", + "pedersenBuiltinApplications": "44n", + "poseidonBuiltinApplications": "49n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "256n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 47, + "transactionHash": "0x06ecfe783686b0dc2747acfcc77e7dcda2b2baea6e65bc8624537e14ca024343", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000004bbac468a7a", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "161356n", + "rangeCheckBuiltinApplications": "7971n", + "pedersenBuiltinApplications": "173n", + "poseidonBuiltinApplications": "31n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "83n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1920n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + } + ], + "events": [ + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000003d9b84eda9a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 6, + "transactionIndex": 0, + "transactionHash": "0x0346a0c754d7719aeac530b37a127ad443f28a0a963a2b77919ffc2f36b803bb", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x0000000000000000000000000000000000000000000000000c1ceffe91ab4398", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 18, + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x000000000000000000000000000000000000000000000000060f4b5809eb1d70", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 24, + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x0000000000000000000000000000000000000000000000000307f1cb7c7a3033", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 29, + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x0000000000000000000000000000000000000000000000000183de9701081c4c", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 35, + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x0000000000000000000000000000000000000000000000000183d44214cbd6cd", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 41, + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x03ab6b8ee36e1642dc6c93bf594b8cc87772b947e4e055bb506e5b898719f03d", + "0x000000000000000000000000000000000000000000000000183bdffb2de48454", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 45, + "transactionIndex": 2, + "transactionHash": "0x00ede2c2e04fb72d9bf0c846b41cb0fec3b956ed8180b075539ef5682f1f3125", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06707675cd7dd9256667eca8284e46f4546711ee0054bc2dd02f0ce572056cf4", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000dae457edd30", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 89, + "transactionIndex": 3, + "transactionHash": "0x006b8530c33ecadf086f172e1e1389431ee0e041b002267f1b6793eecace0271", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x03413d0e83e07e65ada73d3a837b01c5c9fa26c4e75ef8557d46d96c1d897820", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000163e03fae3c", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 94, + "transactionIndex": 4, + "transactionHash": "0x0599ec3a547b461283f462f44bf5c6b183a771695176c86e2e328fe5374e04eb", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x068400056dccee818caa7e8a2c305f9a60d255145bac22d6c5c9bf9e2e046b71", + "0x0707bfb1bcaa5492e4d95b6d06f67fa6f7c585d31499f3e951701d002ef7f2a5", + "0x00000000000000000000000000000000000000000000000000642a4f68c6b360", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 95, + "transactionIndex": 5, + "transactionHash": "0x0288e4f00a93f4ea8f61bc0c218df8070c2a4ecd219e18a8fe39d473e62dff08", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0707bfb1bcaa5492e4d95b6d06f67fa6f7c585d31499f3e951701d002ef7f2a5", + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x00000000000000000000000000000000000000000000000000642a4f68c6b360", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 100, + "transactionIndex": 5, + "transactionHash": "0x0288e4f00a93f4ea8f61bc0c218df8070c2a4ecd219e18a8fe39d473e62dff08", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x0707bfb1bcaa5492e4d95b6d06f67fa6f7c585d31499f3e951701d002ef7f2a5", + "0x00000000000000000000000000000000000000000000000000642e8aebeabbcd", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 102, + "transactionIndex": 5, + "transactionHash": "0x0288e4f00a93f4ea8f61bc0c218df8070c2a4ecd219e18a8fe39d473e62dff08", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0707bfb1bcaa5492e4d95b6d06f67fa6f7c585d31499f3e951701d002ef7f2a5", + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x00000000000000000000000000000000000000000000000000642e8aebeabbcc", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 110, + "transactionIndex": 5, + "transactionHash": "0x0288e4f00a93f4ea8f61bc0c218df8070c2a4ecd219e18a8fe39d473e62dff08", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x054e2640fe5633aa21d431405f8539a72fcfd85d968de02c3e65478c93f8045f", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000048ba86eb438", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 114, + "transactionIndex": 5, + "transactionHash": "0x0288e4f00a93f4ea8f61bc0c218df8070c2a4ecd219e18a8fe39d473e62dff08", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00712085327a6b77fa844508d43fc9d3883587343fdb7246b126deb2fe0b9401", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000022c68c517ea", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 126, + "transactionIndex": 7, + "transactionHash": "0x029959d46cfadb2b0c8cc823a9e4c03b7f22f8c596c424c9e11db62ee7fa96ba", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x0199741822c2dc722f6f605204f35e56dbc23bceed54818168c4c49e4fb8737e", + "0x000000000000000000000000000000000000000000000000015395dae5c1d665", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 130, + "transactionIndex": 8, + "transactionHash": "0x0083e9ca4b86089b1ef334088b088a084ea2c456c34fafac9fc9a03c964eaf09", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0199741822c2dc722f6f605204f35e56dbc23bceed54818168c4c49e4fb8737e", + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x000000000000000000000000000000000000000000000000015384cc34db693d", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 133, + "transactionIndex": 8, + "transactionHash": "0x0083e9ca4b86089b1ef334088b088a084ea2c456c34fafac9fc9a03c964eaf09", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0199741822c2dc722f6f605204f35e56dbc23bceed54818168c4c49e4fb8737e", + "0x0344c86d9d9a189cf1b616c8d3bd550bdfd3f099f4076f7e680a14d4d8981124", + "0x0000000000000000000000000000000000000000000000000000110eb0e66d28", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 134, + "transactionIndex": 8, + "transactionHash": "0x0083e9ca4b86089b1ef334088b088a084ea2c456c34fafac9fc9a03c964eaf09", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0344c86d9d9a189cf1b616c8d3bd550bdfd3f099f4076f7e680a14d4d8981124", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000002fa9763e25c", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 136, + "transactionIndex": 8, + "transactionHash": "0x0083e9ca4b86089b1ef334088b088a084ea2c456c34fafac9fc9a03c964eaf09", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x04790afdc300d7ac15843a5733b80aa4152f48f5632a84e4978e88114a838410", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000005406b9b3938", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 142, + "transactionIndex": 9, + "transactionHash": "0x003c231eaa2c1fc07a52d6934f498baa86fe92be71bc3f1654a675271982ccd5", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x015cdb0b85511d8a469f06cf5b347f456b13ca50b94f2d624001f5d98414ff26", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000001e5cc87b1d8", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 154, + "transactionIndex": 11, + "transactionHash": "0x0247f793e0525ed7d9d369b1b701942e55c4d41a3116733f0c77af3c0dfd21ad", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0344c86d9d9a189cf1b616c8d3bd550bdfd3f099f4076f7e680a14d4d8981124", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000049f6dc79226", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 170, + "transactionIndex": 14, + "transactionHash": "0x06683c568f2e977e3d4b6f4da70b3926950c83f5a7c6119b3f2a643643db8fed", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x04ce71744189ce0f7e83598209fef170fdecdf8eedb8cb477d0297bbc6b8aad5", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000360452cf064", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 183, + "transactionIndex": 16, + "transactionHash": "0x070e9d122c712018fa923c64a9a46707ad14b88ab298a65310ab42dc6f7bc2cc", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00ea591e41ce204d03dff9f5f75ab4ed726c4feab7074037dc623dc0895bf474", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000031402d6260e", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 193, + "transactionIndex": 17, + "transactionHash": "0x041a41f4fdda921c6049188312aaaa28f63e6bb628d6dd604891449d4d76b395", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x058c49ebc1bfaef035142135ece31acd85e5324ffc8a4b3d4b578ac7cfc91cf4", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000042ba0bf0a74", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 198, + "transactionIndex": 18, + "transactionHash": "0x07f23d8f9d6b106c49e5a639de0b922efd6ccadbc7bc3b00431365a7d1ecc2e5", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0344c86d9d9a189cf1b616c8d3bd550bdfd3f099f4076f7e680a14d4d8981124", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000035225ed74ba", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 214, + "transactionIndex": 25, + "transactionHash": "0x029893e873ee519bbc2b6a37dd310acc72a1efbaae1206808b7792351a26c6e1", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x068874a2cfa8c88de2f9fca0d71ff6712e87385e7f443a4c3a35f72cfd47600f", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000016986591400", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 227, + "transactionIndex": 33, + "transactionHash": "0x02b40c0676d7ed1efc5b676dd83c43f1942f21b93e2e52435d266e16be81ea41", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x000000000000000000000000000000000000000000000000026ba904b061d340", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 236, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x07f443fa28f899bfaa6eb0f67be5f1c5cf35af3dd993f1579aa7d33f6c60698e", + "0x000000000000000000000000000000000000000000000000026ba904b061d340", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 240, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x07f443fa28f899bfaa6eb0f67be5f1c5cf35af3dd993f1579aa7d33f6c60698e", + "0x056bdbb6dee0474cb49c88558d1c7964d4b40527a511c5161aeba948992eb132", + "0x000000000000000000000000000000000000000000000000026ba904b061d340", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 241, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x056bdbb6dee0474cb49c88558d1c7964d4b40527a511c5161aeba948992eb132", + "0x07f443fa28f899bfaa6eb0f67be5f1c5cf35af3dd993f1579aa7d33f6c60698e", + "0x000000000000000000000000000000000000000000000000026ba904b061d340", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 243, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x07f443fa28f899bfaa6eb0f67be5f1c5cf35af3dd993f1579aa7d33f6c60698e", + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x000000000000000000000000000000000000000000000000026ba904b061d340", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 244, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x04505a9f06f2bd639b6601f37a4dc0908bb70e8e0e0c34b1220827d64f4fc066", + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x000000000000000000000000000000000000000000000000026ba904b061d340", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 249, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x029935c24bdc22d64ff556fc9d093b1b79e9681f7a4e9a4524ffe2c89acfa150", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000004232798f5ce", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 254, + "transactionIndex": 38, + "transactionHash": "0x0393e0fbc25313322c088d5d457961f72bf6f6f31cc846f3e8aa96c1e53922c3", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x015a288e90db4951762d0c156f48b7efa2ffe5a75bd12f55d8e6a38fbdddfc0f", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000234e1eb2e50", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 267, + "transactionIndex": 39, + "transactionHash": "0x05042aeb03be2ec2ae48d78dcc69e9d79221807cc70eedcf083db70adfd88eac", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x068874a2cfa8c88de2f9fca0d71ff6712e87385e7f443a4c3a35f72cfd47600f", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000001da8054ea50", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 276, + "transactionIndex": 40, + "transactionHash": "0x0391669154e22a752e1cfef1f608a4a7479f49f967398f7c4bc2bdbfc97b4b3d", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x0199741822c2dc722f6f605204f35e56dbc23bceed54818168c4c49e4fb8737e", + "0x00000000000000000000000000000000000000000000000000c7c45b9c3d4003", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 279, + "transactionIndex": 41, + "transactionHash": "0x003b7a8d284e58058ec8566237c3c78b5c1b666aff1bf196cfad9f56b4a2f344", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0199741822c2dc722f6f605204f35e56dbc23bceed54818168c4c49e4fb8737e", + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x00000000000000000000000000000000000000000000000000c7b7872e26b660", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 282, + "transactionIndex": 41, + "transactionHash": "0x003b7a8d284e58058ec8566237c3c78b5c1b666aff1bf196cfad9f56b4a2f344", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0199741822c2dc722f6f605204f35e56dbc23bceed54818168c4c49e4fb8737e", + "0x0344c86d9d9a189cf1b616c8d3bd550bdfd3f099f4076f7e680a14d4d8981124", + "0x00000000000000000000000000000000000000000000000000000cd46e1689a3", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 283, + "transactionIndex": 41, + "transactionHash": "0x003b7a8d284e58058ec8566237c3c78b5c1b666aff1bf196cfad9f56b4a2f344", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0344c86d9d9a189cf1b616c8d3bd550bdfd3f099f4076f7e680a14d4d8981124", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000027b7e2892a2", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 285, + "transactionIndex": 41, + "transactionHash": "0x003b7a8d284e58058ec8566237c3c78b5c1b666aff1bf196cfad9f56b4a2f344", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0679016714b58bf20627a4b82dc0b2dff33768d270e984774ea4e1182451d995", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000062dabc5ab60", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 291, + "transactionIndex": 43, + "transactionHash": "0x07c7cecea6fc82c7d70672bdf84a69f4c6c38c43400b60a519f6b59728c71ed0", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06cbc110394329a1beb059b1da3a36e3042280f4c8cab1a1d10618e4822649ce", + "0x0707bfb1bcaa5492e4d95b6d06f67fa6f7c585d31499f3e951701d002ef7f2a5", + "0x00000000000000000000000000000000000000000000000000247b5474afbd9f", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 300, + "transactionIndex": 47, + "transactionHash": "0x06ecfe783686b0dc2747acfcc77e7dcda2b2baea6e65bc8624537e14ca024343", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0707bfb1bcaa5492e4d95b6d06f67fa6f7c585d31499f3e951701d002ef7f2a5", + "0x00000005dd3d2f4429af886cd1a3b08289dbcea99a294197e9eb43b0e0325b4b", + "0x00000000000000000000000000000000000000000000000000247b5474afbd9f", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 305, + "transactionIndex": 47, + "transactionHash": "0x06ecfe783686b0dc2747acfcc77e7dcda2b2baea6e65bc8624537e14ca024343", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x054e2640fe5633aa21d431405f8539a72fcfd85d968de02c3e65478c93f8045f", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000004bbac468a7a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 318, + "transactionIndex": 47, + "transactionHash": "0x06ecfe783686b0dc2747acfcc77e7dcda2b2baea6e65bc8624537e14ca024343", + "transactionStatus": "succeeded" + } + ], + "messages": [], + "storageDiffs": [], + "contractChanges": [], + "nonceUpdates": [] + } + ] + } + }, + { + "_tag": "data", + "data": { + "cursor": { + "orderKey": "800002n", + "uniqueKey": "0x0541645607879dd4659dc7ba024bbf092bb943bbc405b7aaef10d5d44462842b" + }, + "endCursor": { + "orderKey": "800003n", + "uniqueKey": "0x07e2d1fa199da58f3400c1f8443e8f3b3919574d6819db997de194d33cba3e68" + }, + "finality": "finalized", + "data": [ + { + "header": { + "blockNumber": "800003n", + "blockHash": "0x07e2d1fa199da58f3400c1f8443e8f3b3919574d6819db997de194d33cba3e68", + "parentBlockHash": "0x0541645607879dd4659dc7ba024bbf092bb943bbc405b7aaef10d5d44462842b", + "sequencerAddress": "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "newRoot": "0x03a76cdc94987756ceb631938ce42ba815369f20ed1bd2e7cd9dafcc08b092fc", + "timestamp": "2024-10-14T09:26:02.000Z", + "starknetVersion": "0.13.2.1", + "l1GasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f126bfc3911", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d28d6855" + }, + "l1DataGasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f126bfc3911", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d28d6855" + }, + "l1DataAvailabilityMode": "blob" + }, + "transactions": [], + "receipts": [ + { + "filterIds": [0], + "meta": { + "transactionIndex": 1, + "transactionHash": "0x0742e67dd52cd45f5bf8d73ced77de6a91dbcc1745532846355daf743a21c57a", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000038a034fd495", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "114479n", + "rangeCheckBuiltinApplications": "6564n", + "pedersenBuiltinApplications": "35n", + "poseidonBuiltinApplications": "44n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "512n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 2, + "transactionHash": "0x04e1b1513a891ee9a05610bb4b9295c7cab2c9179a955efcb620caac2aed3a3d", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000003f816dab9c8", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "136823n", + "rangeCheckBuiltinApplications": "6211n", + "pedersenBuiltinApplications": "48n", + "poseidonBuiltinApplications": "164n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "576n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 6, + "transactionHash": "0x01e18ce1a7690a4e4ac949af6bfd09673505f1e4006eccb4869133c53a2ef4ac", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000095cbc078c6686", + "unit": "fri" + }, + "executionResources": { + "computation": { + "steps": "12762n", + "rangeCheckBuiltinApplications": "436n", + "pedersenBuiltinApplications": "41n", + "poseidonBuiltinApplications": "6n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "320n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 9, + "transactionHash": "0x043dee21771cc3f9097e0108b6b19aa93e763f75b9446db66d6a3022f81aeffd", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000003b45998f290", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "125622n", + "rangeCheckBuiltinApplications": "6027n", + "pedersenBuiltinApplications": "48n", + "poseidonBuiltinApplications": "118n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "768n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 11, + "transactionHash": "0x039f90e99393dfc809f9fb94cb3a1875f90f388a00113fa4533d78b990a60b5b", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000001394b503edb", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "38107n", + "rangeCheckBuiltinApplications": "1471n", + "pedersenBuiltinApplications": "59n", + "poseidonBuiltinApplications": "62n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "512n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 12, + "transactionHash": "0x0152a0139812c5fa0d73767b757ed0b9e4b8dd948945588c3d5b38468e2413ad", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000001394b503edb", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "38107n", + "rangeCheckBuiltinApplications": "1471n", + "pedersenBuiltinApplications": "59n", + "poseidonBuiltinApplications": "62n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "512n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 13, + "transactionHash": "0x035ac01c8597b324a0d05fd8e54f02340fa2e2f19b8b25a99a5e1f685fcc56d2", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000049625c9962", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "9472n", + "rangeCheckBuiltinApplications": "268n", + "pedersenBuiltinApplications": "27n", + "poseidonBuiltinApplications": "4n", + "ecdsaBuiltinApplications": "1n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "192n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + } + ], + "events": [ + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x04790afdc300d7ac15843a5733b80aa4152f48f5632a84e4978e88114a838410", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000038a034fd495", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 6, + "transactionIndex": 1, + "transactionHash": "0x0742e67dd52cd45f5bf8d73ced77de6a91dbcc1745532846355daf743a21c57a", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000003f816dab9c8", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 14, + "transactionIndex": 2, + "transactionHash": "0x04e1b1513a891ee9a05610bb4b9295c7cab2c9179a955efcb620caac2aed3a3d", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x03ab6b8ee36e1642dc6c93bf594b8cc87772b947e4e055bb506e5b898719f03d", + "0x064a24243f2aabae8d2148fa878276e6e6e452e3941b417f3c33b1649ea83e11", + "0x00000000000000000000000000000000000000000000000029a6c272cc61632f", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 37, + "transactionIndex": 6, + "transactionHash": "0x01e18ce1a7690a4e4ac949af6bfd09673505f1e4006eccb4869133c53a2ef4ac", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000003b45998f290", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 66, + "transactionIndex": 9, + "transactionHash": "0x043dee21771cc3f9097e0108b6b19aa93e763f75b9446db66d6a3022f81aeffd", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0679016714b58bf20627a4b82dc0b2dff33768d270e984774ea4e1182451d995", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000001394b503edb", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 77, + "transactionIndex": 11, + "transactionHash": "0x039f90e99393dfc809f9fb94cb3a1875f90f388a00113fa4533d78b990a60b5b", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0679016714b58bf20627a4b82dc0b2dff33768d270e984774ea4e1182451d995", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000001394b503edb", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 84, + "transactionIndex": 12, + "transactionHash": "0x0152a0139812c5fa0d73767b757ed0b9e4b8dd948945588c3d5b38468e2413ad", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00d95ca95d72ee7fadce717368835a34c7ade889fc166036f7a635b69e018060", + "0x0182eeac3cadb02bb7cee68d8f8b439bc555cd6a1af3f8f1d3e4ade21a93e020", + "0x000000000000000000000000000000000000000000000000000000e8d4a51000", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 85, + "transactionIndex": 13, + "transactionHash": "0x035ac01c8597b324a0d05fd8e54f02340fa2e2f19b8b25a99a5e1f685fcc56d2", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x00d95ca95d72ee7fadce717368835a34c7ade889fc166036f7a635b69e018060", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000049625c9962", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 87, + "transactionIndex": 13, + "transactionHash": "0x035ac01c8597b324a0d05fd8e54f02340fa2e2f19b8b25a99a5e1f685fcc56d2", + "transactionStatus": "succeeded" + } + ], + "messages": [], + "storageDiffs": [], + "contractChanges": [], + "nonceUpdates": [] + } + ] + } + }, + { + "_tag": "data", + "data": { + "cursor": { + "orderKey": "800003n", + "uniqueKey": "0x07e2d1fa199da58f3400c1f8443e8f3b3919574d6819db997de194d33cba3e68" + }, + "endCursor": { + "orderKey": "800004n", + "uniqueKey": "0x028efa6b120d9c23573bad111dfb3830b02ee4b5f7261ccb9528c5a4a64cf838" + }, + "finality": "finalized", + "data": [ + { + "header": { + "blockNumber": "800004n", + "blockHash": "0x028efa6b120d9c23573bad111dfb3830b02ee4b5f7261ccb9528c5a4a64cf838", + "parentBlockHash": "0x07e2d1fa199da58f3400c1f8443e8f3b3919574d6819db997de194d33cba3e68", + "sequencerAddress": "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "newRoot": "0x02177909584de5db06f4f804cc0d02c045973243807c77b2355bc14200ecbed6", + "timestamp": "2024-10-14T09:26:32.000Z", + "starknetVersion": "0.13.2.1", + "l1GasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f126bfc3911", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d28d6855" + }, + "l1DataGasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003f126bfc3911", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d28d6855" + }, + "l1DataAvailabilityMode": "blob" + }, + "transactions": [], + "receipts": [ + { + "filterIds": [0], + "meta": { + "transactionIndex": 0, + "transactionHash": "0x00d12ed5eaefae75f3d483d2e0f83210d20eac5ead1ba64bc1fd5270e037e287", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000da092bbc124", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "463502n", + "rangeCheckBuiltinApplications": "14201n", + "pedersenBuiltinApplications": "2699n", + "poseidonBuiltinApplications": "28n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "120n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1728n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 1, + "transactionHash": "0x0727f216f3ef88da027fa4b679cc26123da2e8fde283f1565f09d5902872fe13", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000df26cc096c5", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "475113n", + "rangeCheckBuiltinApplications": "15024n", + "pedersenBuiltinApplications": "2699n", + "poseidonBuiltinApplications": "44n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "120n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "2752n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 2, + "transactionHash": "0x0748611aeee371b55cfe66d17661440472c935d225da1a2b7972550a355230a1", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000003deafe20ecb", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "132310n", + "rangeCheckBuiltinApplications": "6301n", + "pedersenBuiltinApplications": "53n", + "poseidonBuiltinApplications": "124n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "576n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 3, + "transactionHash": "0x07b7bc2fbb75a97a35f385582e86c99e8f763fe1c9a03ceac29ffb3e29707539", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000005c15456bf12", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "188952n", + "rangeCheckBuiltinApplications": "10082n", + "pedersenBuiltinApplications": "57n", + "poseidonBuiltinApplications": "176n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "448n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 4, + "transactionHash": "0x058e96eff8aa6c32a0a5fef70a64caace459e4b796b06b6809557a16ddc0627a", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000001cee296d934", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "58846n", + "rangeCheckBuiltinApplications": "1927n", + "pedersenBuiltinApplications": "251n", + "poseidonBuiltinApplications": "12n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "24n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "704n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 5, + "transactionHash": "0x008875d4a81153779821920edaade308c40961827608ea09668b3dd1cb10e332", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000002ffb63edd90", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "96441n", + "rangeCheckBuiltinApplications": "4654n", + "pedersenBuiltinApplications": "45n", + "poseidonBuiltinApplications": "128n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "832n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 6, + "transactionHash": "0x0725361f6a2bafeb496b0b879ed7711d8ae3afd9dfd973bfac97ff0e3cb0cd4b", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000002238f29136a", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "71325n", + "rangeCheckBuiltinApplications": "3428n", + "pedersenBuiltinApplications": "123n", + "poseidonBuiltinApplications": "13n", + "ecdsaBuiltinApplications": "1n", + "bitwiseBuiltinApplications": "29n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "768n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 8, + "transactionHash": "0x064fb86f3d9bf5a2e4912091b13c443c8bb135065b9715b8b118d6d6334c99e6", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000009400d70f093", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "307723n", + "rangeCheckBuiltinApplications": "16094n", + "pedersenBuiltinApplications": "66n", + "poseidonBuiltinApplications": "212n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "512n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 10, + "transactionHash": "0x05ec6985f721c5d02621ac287d366bc293d869d4077e11e9af311ce0a0489a59", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000003e454fce035", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "132231n", + "rangeCheckBuiltinApplications": "6291n", + "pedersenBuiltinApplications": "57n", + "poseidonBuiltinApplications": "121n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "768n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 12, + "transactionHash": "0x071f5f5e260cd323754c46852bf4b6ab26320d26d52f9569ea9ddd5d0e7856dd", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000000468fcf310d", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "9069n", + "rangeCheckBuiltinApplications": "254n", + "pedersenBuiltinApplications": "27n", + "poseidonBuiltinApplications": "4n", + "ecdsaBuiltinApplications": "1n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "192n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 13, + "transactionHash": "0x0079c16c8126826f3ce6d06eeafb7f42d68eb4222879584840d47f982ec531e1", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000004c34ea0237", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "9925n", + "rangeCheckBuiltinApplications": "336n", + "pedersenBuiltinApplications": "27n", + "poseidonBuiltinApplications": "6n", + "ecdsaBuiltinApplications": "1n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "320n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + } + ], + "events": [ + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06707675cd7dd9256667eca8284e46f4546711ee0054bc2dd02f0ce572056cf4", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000da092bbc124", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 41, + "transactionIndex": 0, + "transactionHash": "0x00d12ed5eaefae75f3d483d2e0f83210d20eac5ead1ba64bc1fd5270e037e287", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06707675cd7dd9256667eca8284e46f4546711ee0054bc2dd02f0ce572056cf4", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000df26cc096c5", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 83, + "transactionIndex": 1, + "transactionHash": "0x0727f216f3ef88da027fa4b679cc26123da2e8fde283f1565f09d5902872fe13", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000003deafe20ecb", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 90, + "transactionIndex": 2, + "transactionHash": "0x0748611aeee371b55cfe66d17661440472c935d225da1a2b7972550a355230a1", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0386b08cdb00692197f60f5bd31184d7f1f53da308c5f1d21de48cd7fac4055a", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000005c15456bf12", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 98, + "transactionIndex": 3, + "transactionHash": "0x07b7bc2fbb75a97a35f385582e86c99e8f763fe1c9a03ceac29ffb3e29707539", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x071ad7b064ff7825ab11760207b16a28b54decc5b02873af6b1a2527e07925f0", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000001cee296d934", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 107, + "transactionIndex": 4, + "transactionHash": "0x058e96eff8aa6c32a0a5fef70a64caace459e4b796b06b6809557a16ddc0627a", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x069213226154069d250944a7cc15140bc45039924b9bbcda7be4f15227654ec6", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000002ffb63edd90", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 118, + "transactionIndex": 5, + "transactionHash": "0x008875d4a81153779821920edaade308c40961827608ea09668b3dd1cb10e332", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x072aa9695375aed1714bfb5263d1afb00221929830ea8fa2273b2448b118fe2c", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000002238f29136a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 130, + "transactionIndex": 6, + "transactionHash": "0x0725361f6a2bafeb496b0b879ed7711d8ae3afd9dfd973bfac97ff0e3cb0cd4b", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x029c339266a9ad35d5cc64c23bf13b7156e72c27b7df743661537a98af8260b3", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000009400d70f093", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 145, + "transactionIndex": 8, + "transactionHash": "0x064fb86f3d9bf5a2e4912091b13c443c8bb135065b9715b8b118d6d6334c99e6", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000003e454fce035", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 158, + "transactionIndex": 10, + "transactionHash": "0x05ec6985f721c5d02621ac287d366bc293d869d4077e11e9af311ce0a0489a59", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x058483e34164eea7b8c7131b960738b78250cf33b257bd08eba52712aa7efaa3", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000000468fcf310d", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 170, + "transactionIndex": 12, + "transactionHash": "0x071f5f5e260cd323754c46852bf4b6ab26320d26d52f9569ea9ddd5d0e7856dd", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x01f78042ca65d29145ba4f54cf0c0631c1f5933c48648beb18e062e31ad642c1", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000004c34ea0237", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 173, + "transactionIndex": 13, + "transactionHash": "0x0079c16c8126826f3ce6d06eeafb7f42d68eb4222879584840d47f982ec531e1", + "transactionStatus": "succeeded" + } + ], + "messages": [], + "storageDiffs": [], + "contractChanges": [], + "nonceUpdates": [] + } + ] + } + }, + { + "_tag": "data", + "data": { + "cursor": { + "orderKey": "800004n", + "uniqueKey": "0x028efa6b120d9c23573bad111dfb3830b02ee4b5f7261ccb9528c5a4a64cf838" + }, + "endCursor": { + "orderKey": "800005n", + "uniqueKey": "0x01cb9393d50788e587d4b4b455769c9a9b53808157dc3a91761ea1020527d6bd" + }, + "finality": "finalized", + "data": [ + { + "header": { + "blockNumber": "800005n", + "blockHash": "0x01cb9393d50788e587d4b4b455769c9a9b53808157dc3a91761ea1020527d6bd", + "parentBlockHash": "0x028efa6b120d9c23573bad111dfb3830b02ee4b5f7261ccb9528c5a4a64cf838", + "sequencerAddress": "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "newRoot": "0x030f1a4c71347cc351046c98006bb34e92f842fd8d9884ea7d68c7ebd978a4d6", + "timestamp": "2024-10-14T09:27:07.000Z", + "starknetVersion": "0.13.2.1", + "l1GasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003ef5226d9ba8", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d13a3c19" + }, + "l1DataGasPrice": { + "priceInFri": "0x00000000000000000000000000000000000000000000000000003ef5226d9ba8", + "priceInWei": "0x00000000000000000000000000000000000000000000000000000002d13a3c19" + }, + "l1DataAvailabilityMode": "blob" + }, + "transactions": [], + "receipts": [ + { + "filterIds": [0], + "meta": { + "transactionIndex": 1, + "transactionHash": "0x0706e2f55cafdba300c4cf458798b176ee7e8226f7b5fadeb5243a64bbbdfc38", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000428effcbf2a", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "143764n", + "rangeCheckBuiltinApplications": "6643n", + "pedersenBuiltinApplications": "56n", + "poseidonBuiltinApplications": "167n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "576n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 2, + "transactionHash": "0x00ab97ae497d8d5379ccae0a9ba1deef11a8b79fe8101da4ecf80fafc2bcf530", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000002c8c68d6635", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "95004n", + "rangeCheckBuiltinApplications": "3914n", + "pedersenBuiltinApplications": "37n", + "poseidonBuiltinApplications": "113n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "384n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 3, + "transactionHash": "0x01c29ba3d566d427781470961454809a6652598135a6a523d4c09cddd55c76ae", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000199395fcdb0640", + "unit": "fri" + }, + "executionResources": { + "computation": { + "steps": "37459n", + "rangeCheckBuiltinApplications": "2013n", + "pedersenBuiltinApplications": "58n", + "poseidonBuiltinApplications": "16n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "960n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 4, + "transactionHash": "0x07e4ee246ec1b2ccf6632436cdb8bca3151d3de440f403d0d7b9130277f4b3b9", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000051b398d015", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "10554n", + "rangeCheckBuiltinApplications": "340n", + "pedersenBuiltinApplications": "25n", + "poseidonBuiltinApplications": "6n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "320n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 5, + "transactionHash": "0x079bdefcacc75dd1db6dfcdf3b29e9c30d2b70002d9d85a3d1b2032e2c72251c", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000154e4866c11", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "44312n", + "rangeCheckBuiltinApplications": "2029n", + "pedersenBuiltinApplications": "69n", + "poseidonBuiltinApplications": "18n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1088n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 6, + "transactionHash": "0x052a315c2f47de1fa2371677b47cc6be5b8d390b8d5f0b1df77f3a700f6a691f", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000001499f9d78ed", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "41997n", + "rangeCheckBuiltinApplications": "2020n", + "pedersenBuiltinApplications": "25n", + "poseidonBuiltinApplications": "61n", + "ecOpBuiltinApplications": "6n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "384n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 7, + "transactionHash": "0x043ccad87508629b0a2d2ca7aa22bb0a40f561e5239448fffc287c3d9a57b2c5", + "actualFee": { + "amount": "0x000000000000000000000000000000000000000000000000000003695c84c906", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "116252n", + "rangeCheckBuiltinApplications": "5000n", + "pedersenBuiltinApplications": "50n", + "poseidonBuiltinApplications": "132n", + "ecOpBuiltinApplications": "12n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "704n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 8, + "transactionHash": "0x007f2f8ee123f32f0ce4c1c87203b67290b4cd16cb954132dc5ed82cf80564ea", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000d9cfe646c0d", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "463990n", + "rangeCheckBuiltinApplications": "14269n", + "pedersenBuiltinApplications": "2699n", + "poseidonBuiltinApplications": "30n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "120n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "1856n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 9, + "transactionHash": "0x071f228f2c323de8ad90b89fa08de6b707c0663f6231cbd32ad25dac39d1037e", + "actualFee": { + "amount": "0x0000000000000000000000000000000000000000000000000000006ddfdf298f", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "13577n", + "rangeCheckBuiltinApplications": "608n", + "pedersenBuiltinApplications": "64n", + "poseidonBuiltinApplications": "9n", + "ecOpBuiltinApplications": "3n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "448n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + }, + { + "filterIds": [0], + "meta": { + "transactionIndex": 10, + "transactionHash": "0x0085866fa6a38e65735c0720ed38c22084a3f4a77238bfeba1ab3516b961cde9", + "actualFee": { + "amount": "0x00000000000000000000000000000000000000000000000000000debe0c30249", + "unit": "wei" + }, + "executionResources": { + "computation": { + "steps": "475113n", + "rangeCheckBuiltinApplications": "15024n", + "pedersenBuiltinApplications": "2699n", + "poseidonBuiltinApplications": "44n", + "ecOpBuiltinApplications": "3n", + "bitwiseBuiltinApplications": "120n" + }, + "dataAvailability": { + "l1Gas": "0n", + "l1DataGas": "2752n" + } + }, + "executionResult": { + "_tag": "succeeded", + "succeeded": {} + } + }, + "receipt": { + "_tag": "invoke", + "invoke": {} + } + } + ], + "events": [ + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000428effcbf2a", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 12, + "transactionIndex": 1, + "transactionHash": "0x0706e2f55cafdba300c4cf458798b176ee7e8226f7b5fadeb5243a64bbbdfc38", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x012c8e3b171432a1f03961f66f4178c5f326a863513c699af600c1e3587996bf", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000002c8c68d6635", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 17, + "transactionIndex": 2, + "transactionHash": "0x00ab97ae497d8d5379ccae0a9ba1deef11a8b79fe8101da4ecf80fafc2bcf530", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x076179d334800d6db64b31b964786b49f0d25d13c2c0b3a5e7739bc2a59a2cb8", + "0x04c0a5193d58f74fbace4b74dcf65481e734ed1714121bdc571da345540efa05", + "0x00000000000000000000000000000000000000000000000000470de4df820000", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 25, + "transactionIndex": 3, + "transactionHash": "0x01c29ba3d566d427781470961454809a6652598135a6a523d4c09cddd55c76ae", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x0213c67ed78bc280887234fe5ed5e77272465317978ae86c25a71531d9332a2d", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000051b398d015", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 32, + "transactionIndex": 4, + "transactionHash": "0x07e4ee246ec1b2ccf6632436cdb8bca3151d3de440f403d0d7b9130277f4b3b9", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x000023c72abdf49dffc85ae3ede714f2168ad384cc67d08524732acea90df325", + "0x013c40a9ca20d9a08f2445ba86889fb74c74bd65657426a6673529702e98dc16", + "0x000000000000000000000000000000000000000000000000000dd6f1481d77ea", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 38, + "transactionIndex": 5, + "transactionHash": "0x079bdefcacc75dd1db6dfcdf3b29e9c30d2b70002d9d85a3d1b2032e2c72251c", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x013c40a9ca20d9a08f2445ba86889fb74c74bd65657426a6673529702e98dc16", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000154e4866c11", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 43, + "transactionIndex": 5, + "transactionHash": "0x079bdefcacc75dd1db6dfcdf3b29e9c30d2b70002d9d85a3d1b2032e2c72251c", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x041b0978486922bdfc7eeca616f4859e302875392b7bdf3c2a5cdafba685213e", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000001499f9d78ed", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 48, + "transactionIndex": 6, + "transactionHash": "0x052a315c2f47de1fa2371677b47cc6be5b8d390b8d5f0b1df77f3a700f6a691f", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x012c8e3b171432a1f03961f66f4178c5f326a863513c699af600c1e3587996bf", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x000000000000000000000000000000000000000000000000000003695c84c906", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 56, + "transactionIndex": 7, + "transactionHash": "0x043ccad87508629b0a2d2ca7aa22bb0a40f561e5239448fffc287c3d9a57b2c5", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06707675cd7dd9256667eca8284e46f4546711ee0054bc2dd02f0ce572056cf4", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000d9cfe646c0d", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 98, + "transactionIndex": 8, + "transactionHash": "0x007f2f8ee123f32f0ce4c1c87203b67290b4cd16cb954132dc5ed82cf80564ea", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x02c1e81546d6d2aed82a620e48d814acb1b099ded5eb7329f6056daabca9b752", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x0000000000000000000000000000000000000000000000000000006ddfdf298f", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 102, + "transactionIndex": 9, + "transactionHash": "0x071f228f2c323de8ad90b89fa08de6b707c0663f6231cbd32ad25dac39d1037e", + "transactionStatus": "succeeded" + }, + { + "filterIds": [0], + "keys": [ + "0x0099cd8bde557814842a3121e8ddfd433a539b8c9f14bf31ebf108d12e6196e9" + ], + "data": [ + "0x06707675cd7dd9256667eca8284e46f4546711ee0054bc2dd02f0ce572056cf4", + "0x01176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", + "0x00000000000000000000000000000000000000000000000000000debe0c30249", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "eventIndex": 144, + "transactionIndex": 10, + "transactionHash": "0x0085866fa6a38e65735c0720ed38c22084a3f4a77238bfeba1ab3516b961cde9", + "transactionStatus": "succeeded" + } + ], + "messages": [], + "storageDiffs": [], + "contractChanges": [], + "nonceUpdates": [] + } + ] + } + } + ] +} diff --git a/examples/cli/indexers/2-starknet.indexer.ts b/examples/cli/indexers/2-starknet.indexer.ts index 5a9dfee..bdb7298 100644 --- a/examples/cli/indexers/2-starknet.indexer.ts +++ b/examples/cli/indexers/2-starknet.indexer.ts @@ -1,13 +1,18 @@ -import { defineIndexer } from "@apibara/indexer"; -import { sqlitePersistence } from "@apibara/indexer/plugins/persistence"; +import { defineIndexer, useSink } from "@apibara/indexer"; +import { sqlite } from "@apibara/indexer/sinks/sqlite"; import { StarknetStream } from "@apibara/starknet"; -import type { ApibaraRuntimeConfig } from "apibara/types"; +import type { ApibaraRuntimeConfig } from "apibara/runtime-config"; import Database from "better-sqlite3"; import { hash } from "starknet"; export default function (runtimeConfig: ApibaraRuntimeConfig) { console.log("--> Starknet Indexer Runtime Config: ", runtimeConfig); - const database = new Database(":memory:"); + const database = new Database(runtimeConfig.databasePath); + + database.exec("DROP TABLE IF EXISTS test"); + database.exec( + "CREATE TABLE IF NOT EXISTS test (number TEXT, hash TEXT, _cursor BIGINT)", + ); return defineIndexer(StarknetStream)({ streamUrl: "https://starknet.preview.apibara.org", @@ -15,7 +20,7 @@ export default function (runtimeConfig: ApibaraRuntimeConfig) { startingCursor: { orderKey: 800_000n, }, - plugins: [sqlitePersistence({ database })], + sink: sqlite({ database, tableName: "test" }), filter: { events: [ { @@ -26,8 +31,13 @@ export default function (runtimeConfig: ApibaraRuntimeConfig) { }, ], }, - async transform({ block: { header } }) { - console.log("Transforming block ", header?.blockNumber); + async transform({ block: { header }, context }) { + const { writer } = useSink({ context }); + + // writer.insert([{ + // number: header?.blockNumber.toString(), + // hash: header?.blockHash, + // }]) }, }); } diff --git a/examples/cli/package.json b/examples/cli/package.json index 9f3ad65..ed8fb67 100644 --- a/examples/cli/package.json +++ b/examples/cli/package.json @@ -8,7 +8,9 @@ "dev": "apibara dev", "start": "apibara start", "lint": "biome check .", - "lint:fix": "pnpm lint --write" + "lint:fix": "pnpm lint --write", + "typecheck": "tsc --noEmit", + "test": "vitest" }, "keywords": [], "author": "", @@ -16,7 +18,8 @@ "devDependencies": { "@types/better-sqlite3": "^7.6.11", "@types/node": "^20.5.2", - "typescript": "^5.6.2" + "typescript": "^5.6.2", + "vitest": "^1.6.0" }, "dependencies": { "@apibara/evm": "workspace:*", diff --git a/examples/cli/test/starknet.test.ts b/examples/cli/test/starknet.test.ts new file mode 100644 index 0000000..daf7f6b --- /dev/null +++ b/examples/cli/test/starknet.test.ts @@ -0,0 +1,23 @@ +import { createVcr } from "@apibara/indexer/testing"; +import { describe, expect, it } from "vitest"; + +import Database from "better-sqlite3"; +import starknetIndexer from "../indexers/2-starknet.indexer"; + +const vcr = createVcr(); + +describe("Starknet indexer", () => { + it("should work", async () => { + const databasePath = "/tmp/my-db.sqlite"; + const indexer = starknetIndexer({ databasePath }); + await vcr.run("simple-test", indexer, { + fromBlock: 800_000n, + toBlock: 800_005n, + }); + + const database = new Database(databasePath); + const rows = database.prepare("SELECT * FROM test").all(); + // TODO: update indexer to insert data + expect(rows).toMatchInlineSnapshot("[]"); + }); +}); diff --git a/examples/cli/tsconfig.json b/examples/cli/tsconfig.json index a0a3108..eb24533 100644 --- a/examples/cli/tsconfig.json +++ b/examples/cli/tsconfig.json @@ -2,29 +2,16 @@ "$schema": "https://json.schemastore.org/tsconfig", "display": "Default", "compilerOptions": { - "composite": false, - "declaration": true, - "declarationMap": true, - "esModuleInterop": true, "forceConsistentCasingInFileNames": true, - "inlineSources": false, - "preserveWatchOutput": true, "target": "ES2022", "lib": ["ES2023"], "module": "ESNext", + "moduleResolution": "bundler", "skipLibCheck": true, "types": ["node"], - "moduleResolution": "bundler", - "isolatedModules": true, - "moduleDetection": "force", "noEmit": true, - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "noFallthroughCasesInSwitch": true, - "sourceMap": true, - "outDir": "./dist", - "baseUrl": "." + "strict": true }, - "exclude": ["node_modules", "dist"] + "include": [".", "./.apibara/types"], + "exclude": ["node_modules"] } diff --git a/packages/cli/src/core/build/types.ts b/packages/cli/src/core/build/types.ts index ba96983..6c2b485 100644 --- a/packages/cli/src/core/build/types.ts +++ b/packages/cli/src/core/build/types.ts @@ -1,8 +1,6 @@ import fsp from "node:fs/promises"; import type { Apibara } from "apibara/types"; -import defu from "defu"; -import { dirname, isAbsolute, join, relative, resolve } from "pathe"; -import type { TSConfig } from "pkg-types"; +import { dirname, join, resolve } from "pathe"; import { type JSValue, generateTypes, resolveSchema } from "untyped"; import { prettyPath } from "../path"; @@ -12,7 +10,7 @@ export async function writeTypes(apibara: Apibara) { const config = [ "// Generated by apibara", ` -declare module "apibara/types" {`, +declare module "apibara/runtime-config" {`, apibara.options.typescript.generateRuntimeConfigTypes ? generateTypes( await resolveSchema( @@ -30,13 +28,6 @@ declare module "apibara/types" {`, ) : "", "}", - // Makes this a module for augmentation purposes - "export type {}", - ]; - - const declarations = [ - // local apibara augmentations - '/// ', ]; const buildFiles: { path: string; contents: string }[] = []; @@ -46,83 +37,6 @@ declare module "apibara/types" {`, contents: config.join("\n"), }); - buildFiles.push({ - path: join(typesDir, "apibara.d.ts"), - contents: declarations.join("\n"), - }); - - if (apibara.options.typescript.generateTsConfig) { - const tsConfigPath = resolve( - apibara.options.buildDir, - apibara.options.typescript.tsconfigPath, - ); - const tsconfigDir = dirname(tsConfigPath); - const tsConfig: TSConfig = defu(apibara.options.typescript.tsConfig, { - compilerOptions: { - forceConsistentCasingInFileNames: true, - strict: apibara.options.typescript.strict, - noEmit: true, - target: "ESNext", - module: "ESNext", - moduleResolution: "Bundler", - allowJs: true, - resolveJsonModule: true, - jsx: "preserve", - allowSyntheticDefaultImports: true, - jsxFactory: "h", - jsxFragmentFactory: "Fragment", - }, - include: [ - relativeWithDot(tsconfigDir, join(typesDir, "apibara.d.ts")).replace( - /^(?=[^.])/, - "./", - ), - ], - }); - - for (const alias in tsConfig.compilerOptions!.paths) { - const paths = tsConfig.compilerOptions!.paths[alias]; - tsConfig.compilerOptions!.paths[alias] = await Promise.all( - paths.map(async (path: string) => { - if (!isAbsolute(path)) { - return path; - } - const stats = await fsp - .stat(path) - .catch(() => null /* file does not exist */); - return relativeWithDot( - tsconfigDir, - stats?.isFile() - ? path.replace(/(?<=\w)\.\w+$/g, "") /* remove extension */ - : path, - ); - }), - ); - } - - tsConfig.include = [ - ...new Set( - tsConfig.include!.map((p) => - isAbsolute(p) ? relativeWithDot(tsconfigDir, p) : p, - ), - ), - ]; - if (tsConfig.exclude) { - tsConfig.exclude = [ - ...new Set( - tsConfig.exclude!.map((p) => - isAbsolute(p) ? relativeWithDot(tsconfigDir, p) : p, - ), - ), - ]; - } - - buildFiles.push({ - path: tsConfigPath, - contents: JSON.stringify(tsConfig, null, 2), - }); - } - await Promise.all( buildFiles.map(async (file) => { const _file = resolve(apibara.options.buildDir, file.path); @@ -133,10 +47,3 @@ declare module "apibara/types" {`, apibara.logger.success(`Types written to ${prettyPath(typesDir)}`); } - -const RELATIVE_RE = /^\.{1,2}\//; - -export function relativeWithDot(from: string, to: string) { - const rel = relative(from, to); - return RELATIVE_RE.test(rel) ? rel : `./${rel}`; -} diff --git a/packages/cli/src/types/config.ts b/packages/cli/src/types/config.ts index 2b8c663..9afc49c 100644 --- a/packages/cli/src/types/config.ts +++ b/packages/cli/src/types/config.ts @@ -7,7 +7,6 @@ import type { } from "c12"; import type { WatchOptions } from "chokidar"; import type { NestedHooks } from "hookable"; -import type { TSConfig } from "pkg-types"; import type { DeepPartial } from "./_utils"; import type { ApibaraHooks } from "./hooks"; import type { RollupConfig } from "./rollup"; @@ -81,9 +80,5 @@ export interface ApibaraOptions< strict?: boolean; internalPaths?: boolean; generateRuntimeConfigTypes?: boolean; - generateTsConfig?: boolean; - /** the path of the generated `tsconfig.json`, relative to buildDir */ - tsconfigPath: string; - tsConfig?: Partial; }; } diff --git a/packages/indexer/package.json b/packages/indexer/package.json index f7bf2b7..d049780 100644 --- a/packages/indexer/package.json +++ b/packages/indexer/package.json @@ -88,6 +88,7 @@ "dependencies": { "@apibara/protocol": "workspace:*", "@opentelemetry/api": "^1.9.0", + "ci-info": "^4.1.0", "consola": "^3.2.3", "hookable": "^5.5.3", "klona": "^2.0.6", diff --git a/packages/indexer/src/hooks/index.ts b/packages/indexer/src/hooks/index.ts deleted file mode 100644 index 091afe0..0000000 --- a/packages/indexer/src/hooks/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from "./useKVStore"; -export * from "./useSink"; diff --git a/packages/indexer/src/hooks/useKVStore.ts b/packages/indexer/src/hooks/useKVStore.ts deleted file mode 100644 index e8c473d..0000000 --- a/packages/indexer/src/hooks/useKVStore.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { useIndexerContext } from "../context"; -import type { KVStore } from "../plugins/kv"; - -export type UseKVStoreResult = InstanceType; - -export function useKVStore(): UseKVStoreResult { - const ctx = useIndexerContext(); - - if (!ctx?.kv) throw new Error("KV Plugin is not available in context!"); - - return ctx.kv; -} diff --git a/packages/indexer/src/hooks/useSink.ts b/packages/indexer/src/hooks/useSink.ts deleted file mode 100644 index 1e8a7e7..0000000 --- a/packages/indexer/src/hooks/useSink.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { IndexerContext } from "../context"; - -export function useSink({ - context, -}: { - context: IndexerContext; -}) { - if (!context.sinkTransaction) { - throw new Error("Transaction context doesn't exist!"); - } - - return context.sinkTransaction; -} diff --git a/packages/indexer/src/index.ts b/packages/indexer/src/index.ts index a90b9ab..778e0e3 100644 --- a/packages/indexer/src/index.ts +++ b/packages/indexer/src/index.ts @@ -1,7 +1,3 @@ export * from "./indexer"; export * from "./sink"; export { useIndexerContext } from "./context"; - -export * from "./plugins"; -export * from "./vcr"; -export * from "./hooks"; diff --git a/packages/indexer/src/indexer.test.ts b/packages/indexer/src/indexer.test.ts index caa55e6..274ec1d 100644 --- a/packages/indexer/src/indexer.test.ts +++ b/packages/indexer/src/indexer.test.ts @@ -5,11 +5,14 @@ import { } from "@apibara/protocol/testing"; import Database from "better-sqlite3"; import { describe, expect, it } from "vitest"; -import { useSink } from "./hooks"; import { run } from "./indexer"; +import { + generateMockMessages, + getMockIndexer, + mockSink, +} from "./internal/testing"; import { SqlitePersistence, sqlitePersistence } from "./plugins/persistence"; -import { generateMockMessages, vcr } from "./testing"; -import { getMockIndexer } from "./testing/indexer"; +import { useSink } from "./sink"; describe("Run Test", () => { it("should stream messages", async () => { @@ -17,12 +20,12 @@ describe("Run Test", () => { return generateMockMessages(); }); - const sink = vcr(); + const sink = mockSink(); const indexer = getMockIndexer({ sink, override: { - transform: async ({ context, endCursor, block: { data } }) => { + transform: async ({ context, block: { data } }) => { const { writer } = useSink({ context }); writer.insert([{ data }]); }, @@ -257,7 +260,7 @@ describe("Run Test", () => { const db = Database(":memory:"); - const sink = vcr(); + const sink = mockSink(); // create mock indexer with persistence plugin const indexer = getMockIndexer({ @@ -443,7 +446,7 @@ describe("Run Test", () => { const db = Database(":memory:"); - const sink = vcr(); + const sink = mockSink(); // create mock indexer with persistence plugin const indexer = getMockIndexer({ diff --git a/packages/indexer/src/internal/testing.ts b/packages/indexer/src/internal/testing.ts new file mode 100644 index 0000000..4499336 --- /dev/null +++ b/packages/indexer/src/internal/testing.ts @@ -0,0 +1,107 @@ +import type { Cursor } from "@apibara/protocol"; +import type { MockStreamResponse } from "@apibara/protocol/testing"; +import { + type MockBlock, + type MockFilter, + MockStream, +} from "@apibara/protocol/testing"; + +import { type IndexerConfig, createIndexer, defineIndexer } from "../indexer"; +import type { IndexerPlugin } from "../plugins"; +import { Sink, type SinkCursorParams, type SinkData } from "../sink"; + +export function generateMockMessages(count = 10): MockStreamResponse[] { + return [...Array(count)].map((_, i) => ({ + _tag: "data", + data: { + cursor: { orderKey: BigInt(5_000_000 - 1) }, + finality: "accepted", + data: [{ data: `${5_000_000 + i}` }], + endCursor: { orderKey: BigInt(5_000_000 + i) }, + }, + })); +} + +export function getMockIndexer({ + plugins, + sink, + override, +}: { + plugins?: ReadonlyArray>; + sink?: Sink; + override?: Partial>; +} = {}) { + return createIndexer( + defineIndexer(MockStream)({ + streamUrl: "https://sepolia.ethereum.a5a.ch", + finality: "accepted", + filter: {}, + async transform({ block: { data }, context }) { + // TODO + }, + sink, + plugins, + ...override, + }), + ); +} + +export type MockRet = { + data: string; +}; + +type TxnContext = { + buffer: SinkData[]; +}; + +type TxnParams = { + writer: { + insert: (data: SinkData[]) => void; + }; +}; + +const transactionHelper = (context: TxnContext) => { + return { + insert: (data: SinkData[]) => { + context.buffer.push(...data); + }, + }; +}; + +export class MockSink extends Sink { + public result: Array<{ endCursor?: Cursor; data: SinkData[] }> = []; + + write({ data, endCursor }: { data: SinkData[]; endCursor?: Cursor }) { + if (data.length === 0) return; + + this.result.push({ data, endCursor }); + } + + async transaction( + { cursor, endCursor, finality }: SinkCursorParams, + cb: (params: TxnParams) => Promise, + ) { + const context: TxnContext = { + buffer: [], + }; + + const writer = transactionHelper(context); + + await cb({ writer }); + this.write({ data: context.buffer, endCursor }); + } + + async invalidate(cursor?: Cursor) { + // TODO: Implement + throw new Error("Not implemented"); + } + + async finalize(cursor?: Cursor) { + // TODO: Implement + throw new Error("Not implemented"); + } +} + +export function mockSink() { + return new MockSink(); +} diff --git a/packages/indexer/src/plugins/kv.ts b/packages/indexer/src/plugins/kv.ts index d39551a..7951f7c 100644 --- a/packages/indexer/src/plugins/kv.ts +++ b/packages/indexer/src/plugins/kv.ts @@ -102,6 +102,16 @@ export class KVStore { } } +export type UseKVStoreResult = InstanceType; + +export function useKVStore(): UseKVStoreResult { + const ctx = useIndexerContext(); + + if (!ctx?.kv) throw new Error("KV Plugin is not available in context!"); + + return ctx.kv; +} + const statements = { beginTxn: "BEGIN TRANSACTION", commitTxn: "COMMIT TRANSACTION", diff --git a/packages/indexer/src/plugins/persistence.test.ts b/packages/indexer/src/plugins/persistence.test.ts index f76573d..44f6121 100644 --- a/packages/indexer/src/plugins/persistence.test.ts +++ b/packages/indexer/src/plugins/persistence.test.ts @@ -8,8 +8,7 @@ import Database from "better-sqlite3"; import { klona } from "klona/full"; import { describe, expect, it } from "vitest"; import { run } from "../indexer"; -import { generateMockMessages } from "../testing"; -import { getMockIndexer } from "../testing/indexer"; +import { generateMockMessages, getMockIndexer } from "../internal/testing"; import { SqlitePersistence, sqlitePersistence } from "./persistence"; describe("Persistence", () => { diff --git a/packages/indexer/src/sink.ts b/packages/indexer/src/sink.ts index 7a0c0f8..ca094b6 100644 --- a/packages/indexer/src/sink.ts +++ b/packages/indexer/src/sink.ts @@ -1,5 +1,6 @@ import type { Cursor, DataFinality } from "@apibara/protocol"; import consola from "consola"; +import type { IndexerContext } from "./context"; export type SinkData = Record; @@ -36,6 +37,20 @@ export class DefaultSink extends Sink { } } +/** A default sink that does nothing. */ export function defaultSink() { return new DefaultSink(); } + +/** Returns the sink for the current indexer. */ +export function useSink({ + context, +}: { + context: IndexerContext; +}) { + if (!context.sinkTransaction) { + throw new Error("Transaction context doesn't exist!"); + } + + return context.sinkTransaction; +} diff --git a/packages/indexer/src/sinks/csv.test.ts b/packages/indexer/src/sinks/csv.test.ts index caa5cbf..8ac222f 100644 --- a/packages/indexer/src/sinks/csv.test.ts +++ b/packages/indexer/src/sinks/csv.test.ts @@ -5,11 +5,9 @@ import { type MockFilter, } from "@apibara/protocol/testing"; import { afterEach, beforeEach, describe, expect, it } from "vitest"; -import { useSink } from "../hooks"; import { run } from "../indexer"; -import {} from "../plugins/persistence"; -import { generateMockMessages } from "../testing"; -import { getMockIndexer } from "../testing/indexer"; +import { generateMockMessages, getMockIndexer } from "../internal/testing"; +import { useSink } from "../sink"; import { csv } from "./csv"; describe("Run Test", () => { diff --git a/packages/indexer/src/sinks/drizzle/drizzle.test.ts b/packages/indexer/src/sinks/drizzle/drizzle.test.ts index cfb27a4..39a8acb 100644 --- a/packages/indexer/src/sinks/drizzle/drizzle.test.ts +++ b/packages/indexer/src/sinks/drizzle/drizzle.test.ts @@ -9,10 +9,9 @@ import { drizzle } from "drizzle-orm/node-postgres"; import { serial, text } from "drizzle-orm/pg-core"; import { Client } from "pg"; import { beforeAll, beforeEach, describe, expect, it } from "vitest"; -import { useSink } from "../../hooks"; import { run } from "../../indexer"; -import { generateMockMessages } from "../../testing"; -import { getMockIndexer } from "../../testing/indexer"; +import { generateMockMessages, getMockIndexer } from "../../internal/testing"; +import { useSink } from "../../sink"; import type { Int8Range } from "./Int8Range"; import { drizzle as drizzleSink } from "./drizzle"; import { getDrizzleCursor, pgIndexerTable } from "./utils"; diff --git a/packages/indexer/src/sinks/sqlite.test.ts b/packages/indexer/src/sinks/sqlite.test.ts index 5527364..731e549 100644 --- a/packages/indexer/src/sinks/sqlite.test.ts +++ b/packages/indexer/src/sinks/sqlite.test.ts @@ -5,11 +5,9 @@ import { } from "@apibara/protocol/testing"; import Database from "better-sqlite3"; import { describe, expect, it } from "vitest"; -import { useSink } from "../hooks"; import { run } from "../indexer"; -import {} from "../plugins/persistence"; -import { generateMockMessages } from "../testing"; -import { getMockIndexer } from "../testing/indexer"; +import { generateMockMessages, getMockIndexer } from "../internal/testing"; +import { useSink } from "../sink"; import { sqlite } from "./sqlite"; describe("Run Test", () => { diff --git a/packages/indexer/src/testing/helper.ts b/packages/indexer/src/testing/helper.ts deleted file mode 100644 index c5ce94d..0000000 --- a/packages/indexer/src/testing/helper.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { MockStreamResponse } from "@apibara/protocol/testing"; - -export function generateMockMessages(count = 10): MockStreamResponse[] { - return [...Array(count)].map((_, i) => ({ - _tag: "data", - data: { - cursor: { orderKey: BigInt(5_000_000 - 1) }, - finality: "accepted", - data: [{ data: `${5_000_000 + i}` }], - endCursor: { orderKey: BigInt(5_000_000 + i) }, - }, - })); -} diff --git a/packages/indexer/src/testing/index.ts b/packages/indexer/src/testing/index.ts index 9dececf..d539750 100644 --- a/packages/indexer/src/testing/index.ts +++ b/packages/indexer/src/testing/index.ts @@ -1,3 +1,47 @@ -export * from "./setup"; -export * from "./vcr"; -export * from "./helper"; +import { createClient } from "@apibara/protocol"; +import ci from "ci-info"; +import { type IndexerWithStreamConfig, createIndexer } from "../indexer"; +import type { CassetteOptions, VcrConfig } from "../vcr/config"; +import { isCassetteAvailable } from "../vcr/helper"; +import { record } from "../vcr/record"; +import { replay } from "../vcr/replay"; + +export function createVcr() { + return { + async run( + cassetteName: string, + indexerConfig: IndexerWithStreamConfig, + range: { fromBlock: bigint; toBlock: bigint }, + ) { + const vcrConfig: VcrConfig = { + cassetteDir: "cassettes", + }; + + const cassetteOptions: CassetteOptions = { + name: cassetteName, + startingCursor: { + orderKey: range.fromBlock, + }, + endingCursor: { + orderKey: range.toBlock, + }, + }; + + const indexer = createIndexer(indexerConfig); + + if (!isCassetteAvailable(vcrConfig, cassetteName)) { + if (ci.isCI) { + throw new Error("Cannot record cassette in CI"); + } + + const client = createClient( + indexer.streamConfig, + indexer.options.streamUrl, + ); + await record(vcrConfig, client, indexer, cassetteOptions); + } else { + await replay(vcrConfig, indexer, cassetteName); + } + }, + }; +} diff --git a/packages/indexer/src/testing/indexer.ts b/packages/indexer/src/testing/indexer.ts deleted file mode 100644 index 47cd194..0000000 --- a/packages/indexer/src/testing/indexer.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { - type MockBlock, - type MockFilter, - MockStream, -} from "@apibara/protocol/testing"; -import { type IndexerConfig, createIndexer, defineIndexer } from "../indexer"; -import type { IndexerPlugin } from "../plugins"; -import type { Sink } from "../sink"; - -export const getMockIndexer = ({ - plugins, - sink, - override, -}: { - plugins?: ReadonlyArray>; - sink?: Sink; - override?: Partial>; -} = {}) => - createIndexer( - defineIndexer(MockStream)({ - streamUrl: "https://sepolia.ethereum.a5a.ch", - finality: "accepted", - filter: {}, - async transform({ block: { data }, context }) { - // TODO - }, - sink, - plugins, - ...override, - }), - ); - -export type MockRet = { - data: string; -}; diff --git a/packages/indexer/src/testing/setup.ts b/packages/indexer/src/testing/setup.ts deleted file mode 100644 index e65bb86..0000000 --- a/packages/indexer/src/testing/setup.ts +++ /dev/null @@ -1,59 +0,0 @@ -import { test as viTest } from "vitest"; -import type { Indexer } from "../indexer"; -import { - type CassetteOptions, - type VcrConfig, - type VcrReplayResult, - isCassetteAvailable, - loadCassette, - record, - replay, -} from "../vcr"; - -export const test = viTest.extend({ - vcr: { - withClient, - }, -}); - -type WithClientContext = { - run: ( - indexerArgs: Indexer, - ) => Promise; -}; - -async function withClient( - cassetteName: string, - range: { fromBlock: bigint; toBlock: bigint }, - callback: ( - context: WithClientContext, - ) => Promise, -) { - const vcrConfig: VcrConfig = { - cassetteDir: "cassettes", - }; - - const cassetteOptions: CassetteOptions = { - name: cassetteName, - startingCursor: { - orderKey: range.fromBlock, - }, - endingCursor: { - orderKey: range.toBlock, - }, - }; - - const context: WithClientContext = { - async run(indexer) { - const client = loadCassette(vcrConfig, cassetteName); - - if (!isCassetteAvailable(vcrConfig, cassetteName)) { - await record(vcrConfig, client, indexer, cassetteOptions); - } - - return await replay(vcrConfig, indexer, cassetteName); - }, - }; - - await callback(context); -} diff --git a/packages/indexer/src/testing/vcr.ts b/packages/indexer/src/testing/vcr.ts deleted file mode 100644 index 4904a41..0000000 --- a/packages/indexer/src/testing/vcr.ts +++ /dev/null @@ -1,59 +0,0 @@ -import type { Cursor } from "@apibara/protocol"; -import { Sink, type SinkCursorParams, type SinkData } from "../sink"; -import type { VcrReplayResult } from "../vcr"; - -type TxnContext = { - buffer: SinkData[]; -}; - -type TxnParams = { - writer: { - insert: (data: SinkData[]) => void; - }; -}; - -const transactionHelper = (context: TxnContext) => { - return { - insert: (data: SinkData[]) => { - context.buffer.push(...data); - }, - }; -}; - -export class VcrSink extends Sink { - public result: VcrReplayResult["outputs"] = []; - - write({ data, endCursor }: { data: SinkData[]; endCursor?: Cursor }) { - if (data.length === 0) return; - - this.result.push({ data, endCursor }); - } - - async transaction( - { cursor, endCursor, finality }: SinkCursorParams, - cb: (params: TxnParams) => Promise, - ) { - const context: TxnContext = { - buffer: [], - }; - - const writer = transactionHelper(context); - - await cb({ writer }); - this.write({ data: context.buffer, endCursor }); - } - - async invalidate(cursor?: Cursor) { - // TODO: Implement - throw new Error("Not implemented"); - } - - async finalize(cursor?: Cursor) { - // TODO: Implement - throw new Error("Not implemented"); - } -} - -export function vcr() { - return new VcrSink(); -} diff --git a/packages/indexer/src/vcr/record.ts b/packages/indexer/src/vcr/record.ts index 371f036..1c9da49 100644 --- a/packages/indexer/src/vcr/record.ts +++ b/packages/indexer/src/vcr/record.ts @@ -33,10 +33,14 @@ export async function record( filter: indexer.options.filter, messages: messages, }; + + await fs.mkdir(vcrConfig.cassetteDir, { recursive: true }); + const filePath = path.join( vcrConfig.cassetteDir, `${cassetteOptions.name}.json`, ); + await fs.writeFile(filePath, serialize(output), { flag: "w" }); }, }); diff --git a/packages/indexer/src/vcr/replay.ts b/packages/indexer/src/vcr/replay.ts index 6e3fbfb..bd279a4 100644 --- a/packages/indexer/src/vcr/replay.ts +++ b/packages/indexer/src/vcr/replay.ts @@ -1,11 +1,9 @@ import assert from "node:assert"; import fs from "node:fs"; import path from "node:path"; -import type { Client, Cursor } from "@apibara/protocol"; +import type { Client } from "@apibara/protocol"; import { MockClient } from "@apibara/protocol/testing"; import { type Indexer, run } from "../indexer"; -import type { SinkData } from "../sink"; -import { vcr } from "../testing/vcr"; import { type CassetteDataType, deserialize } from "../vcr"; import type { VcrConfig } from "./config"; @@ -13,22 +11,11 @@ export async function replay( vcrConfig: VcrConfig, indexer: Indexer, cassetteName: string, -): Promise { +) { const client = loadCassette(vcrConfig, cassetteName); - - const sink = vcr(); - await run(client, indexer); - - return { - outputs: sink.result, - }; } -export type VcrReplayResult = { - outputs: Array<{ endCursor?: Cursor; data: SinkData[] }>; -}; - export function loadCassette( vcrConfig: VcrConfig, cassetteName: string, @@ -41,11 +28,14 @@ export function loadCassette( const { filter, messages } = cassetteData; return new MockClient((request, options) => { + // Notice that the request filter is an array of filters, + // so we need to wrap the indexer filter in an array. assert.deepStrictEqual( request.filter, - filter, - "Request and Cassette filter mismatch", + [filter], + "Indexer and cassette filter mismatch. Hint: delete the cassette and run again.", ); + return messages; }); } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b8bd000..3f295ab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,6 +79,9 @@ importers: typescript: specifier: ^5.6.2 version: 5.6.2 + vitest: + specifier: ^1.6.0 + version: 1.6.0(@types/node@20.14.0) examples/cli-js: dependencies: @@ -471,6 +474,9 @@ importers: '@opentelemetry/api': specifier: ^1.9.0 version: 1.9.0 + ci-info: + specifier: ^4.1.0 + version: 4.1.0 consola: specifier: ^3.2.3 version: 3.2.3 @@ -1919,6 +1925,10 @@ packages: resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==} engines: {node: '>=10'} + ci-info@4.1.0: + resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==} + engines: {node: '>=8'} + citty@0.1.6: resolution: {integrity: sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==} @@ -4805,6 +4815,8 @@ snapshots: chownr@2.0.0: {} + ci-info@4.1.0: {} + citty@0.1.6: dependencies: consola: 3.2.3