From 24dd0df2a6ad9fd3a6aa25e4975d3813c6aa267f Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Wed, 29 Nov 2023 13:13:21 -0800 Subject: [PATCH 01/10] fix: Try to resolve heap memory errors (#435) We are seeing errors in prod relating to javascript running out of memory due to the heap growing. Most likely culprit is the block prefetch. There may be some characteristics in prod that cause this error, but not in dev. Failures cause the entire machine to crash and restart. We'll reduce the prefetch queue size, which is likely the largest memory eater in the worker, to hopefully avoid this worker heap memory issue. --- runner/src/stream-handler/worker.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runner/src/stream-handler/worker.ts b/runner/src/stream-handler/worker.ts index 5897c0880..030b8e770 100644 --- a/runner/src/stream-handler/worker.ts +++ b/runner/src/stream-handler/worker.ts @@ -53,7 +53,7 @@ function incrementId (id: string): string { } async function blockQueueProducer (workerContext: WorkerContext, streamKey: string): Promise { - const HISTORICAL_BATCH_SIZE = 100; + const HISTORICAL_BATCH_SIZE = 10; let streamMessageStartId = '0'; while (true) { From 98022a1afcdee84f1654d7a39987decb909b14cd Mon Sep 17 00:00:00 2001 From: Darun Seethammagari Date: Thu, 30 Nov 2023 12:24:03 -0800 Subject: [PATCH 02/10] fix: Fix bugs in stream message handling and minor logging improvements (#438) It was observed that there are three related bugs in stream message processing: 1. In some cases, the stream will increment the sequence and not the main number, causing incrementId to skip messages. 2. The current stream ID is used when calling xRange, giving an inaccurate count of messages if any skips occur. 3. Unprocessed messages are no longer reported when the queue of blocks ie empty. This occasionally led to a non-zero message count being scraped and then left that way even when the stream was in fact zero. In addition, xRange takes a significant amount of time to run depending on the size of the queue. This impacts all other operations since redis is single-threaded. xLen takes much less time to call while also accurately returning the count of messages in the stream. To resolve the bugs, I now increment the sequence instead of the main ID. In addition, if no more stream messages are being fetched, the stream message ID is reset to '0' to ensure new messages are collected regardless of their ID. Finally, I replaced xRange with xLen. I also changed a blocking while loop to an if statement in consumer so that if the queue is empty, it continues, which triggers the finally. I made some small additions to logging statements to include the indexer type and block number for success/failure to help diagnose problems with indexers in the future. --- .../indexer/__snapshots__/indexer.test.ts.snap | 10 +++++----- runner/src/indexer/indexer.ts | 2 +- runner/src/redis-client/redis-client.test.ts | 14 +++++--------- runner/src/redis-client/redis-client.ts | 9 ++++----- runner/src/stream-handler/worker.ts | 18 +++++++++++------- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/runner/src/indexer/__snapshots__/indexer.test.ts.snap b/runner/src/indexer/__snapshots__/indexer.test.ts.snap index 691dcf902..b4cf1e335 100644 --- a/runner/src/indexer/__snapshots__/indexer.test.ts.snap +++ b/runner/src/indexer/__snapshots__/indexer.test.ts.snap @@ -20,7 +20,7 @@ exports[`Indexer unit tests Indexer.runFunctions() allows imperative execution o [ "mock-hasura-endpoint/v1/graphql", { - "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"buildnear.testnet/test","block_height":82699904,"message":"Running function buildnear.testnet/test, lag is: NaNms from block timestamp"}}", + "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"buildnear.testnet/test","block_height":82699904,"message":"Running function buildnear.testnet/test on block 82699904, lag is: NaNms from block timestamp"}}", "headers": { "Content-Type": "application/json", "X-Hasura-Admin-Secret": "mock-hasura-secret", @@ -90,7 +90,7 @@ exports[`Indexer unit tests Indexer.runFunctions() catches errors 1`] = ` [ "mock-hasura-endpoint/v1/graphql", { - "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"buildnear.testnet/test","block_height":456,"message":"Running function buildnear.testnet/test, lag is: NaNms from block timestamp"}}", + "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"buildnear.testnet/test","block_height":456,"message":"Running function buildnear.testnet/test on block 456, lag is: NaNms from block timestamp"}}", "headers": { "Content-Type": "application/json", "X-Hasura-Admin-Secret": "mock-hasura-secret", @@ -147,7 +147,7 @@ exports[`Indexer unit tests Indexer.runFunctions() logs provisioning failures 1` [ "mock-hasura-endpoint/v1/graphql", { - "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"morgs.near/test","block_height":82699904,"message":"Running function morgs.near/test, lag is: NaNms from block timestamp"}}", + "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"morgs.near/test","block_height":82699904,"message":"Running function morgs.near/test on block 82699904, lag is: NaNms from block timestamp"}}", "headers": { "Content-Type": "application/json", "X-Hasura-Admin-Secret": "mock-hasura-secret", @@ -217,7 +217,7 @@ exports[`Indexer unit tests Indexer.runFunctions() should execute all functions [ "mock-hasura-endpoint/v1/graphql", { - "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"buildnear.testnet/test","block_height":456,"message":"Running function buildnear.testnet/test, lag is: NaNms from block timestamp"}}", + "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"buildnear.testnet/test","block_height":456,"message":"Running function buildnear.testnet/test on block 456, lag is: NaNms from block timestamp"}}", "headers": { "Content-Type": "application/json", "X-Hasura-Admin-Secret": "mock-hasura-secret", @@ -274,7 +274,7 @@ exports[`Indexer unit tests Indexer.runFunctions() supplies the required role to [ "mock-hasura-endpoint/v1/graphql", { - "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"morgs.near/test","block_height":82699904,"message":"Running function morgs.near/test, lag is: NaNms from block timestamp"}}", + "body": "{"query":"mutation writeLog($function_name: String!, $block_height: numeric!, $message: String!){\\n insert_indexer_log_entries_one(object: {function_name: $function_name, block_height: $block_height, message: $message}) {id}\\n }","variables":{"function_name":"morgs.near/test","block_height":82699904,"message":"Running function morgs.near/test on block 82699904, lag is: NaNms from block timestamp"}}", "headers": { "Content-Type": "application/json", "X-Hasura-Admin-Secret": "mock-hasura-secret", diff --git a/runner/src/indexer/indexer.ts b/runner/src/indexer/indexer.ts index 539320549..f70cb6983 100644 --- a/runner/src/indexer/indexer.ts +++ b/runner/src/indexer/indexer.ts @@ -64,7 +64,7 @@ export default class Indexer { try { const indexerFunction = functions[functionName]; - const runningMessage = `Running function ${functionName}` + (isHistorical ? ' historical backfill' : `, lag is: ${lag?.toString()}ms from block timestamp`); + const runningMessage = `Running function ${functionName} on block ${blockHeight}` + (isHistorical ? ' historical backfill' : `, lag is: ${lag?.toString()}ms from block timestamp`); console.log(runningMessage); // Print the running message to the console (Lambda logs) simultaneousPromises.push(this.writeLog(functionName, blockHeight, runningMessage)); diff --git a/runner/src/redis-client/redis-client.test.ts b/runner/src/redis-client/redis-client.test.ts index 1abfd262f..a9198216f 100644 --- a/runner/src/redis-client/redis-client.test.ts +++ b/runner/src/redis-client/redis-client.test.ts @@ -51,23 +51,19 @@ describe('RedisClient', () => { expect(mockClient.xDel).toHaveBeenCalledWith('streamKey', '1-1'); }); - it('returns the range of messages after the passed id', async () => { + it('returns the number of messages in stream', async () => { const mockClient = { on: jest.fn(), connect: jest.fn().mockResolvedValue(null), - xRange: jest.fn().mockResolvedValue([ - 'data' - ]), + xLen: jest.fn().mockResolvedValue(2), } as any; const client = new RedisClient(mockClient); - const unprocessedMessages = await client.getUnprocessedStreamMessages('streamKey'); + const unprocessedMessageCount = await client.getUnprocessedStreamMessageCount('streamKey'); - expect(mockClient.xRange).toHaveBeenCalledWith('streamKey', '0', '+'); - expect(unprocessedMessages).toEqual([ - 'data' - ]); + expect(mockClient.xLen).toHaveBeenCalledWith('streamKey'); + expect(unprocessedMessageCount).toEqual(2); }); it('returns stream storage data', async () => { diff --git a/runner/src/redis-client/redis-client.ts b/runner/src/redis-client/redis-client.ts index 3edbde25a..41e2a2d3f 100644 --- a/runner/src/redis-client/redis-client.ts +++ b/runner/src/redis-client/redis-client.ts @@ -64,13 +64,12 @@ export default class RedisClient { await this.client.xDel(streamKey, id); }; - async getUnprocessedStreamMessages ( + async getUnprocessedStreamMessageCount ( streamKey: string, - startId = this.SMALLEST_STREAM_ID, - ): Promise { - const results = await this.client.xRange(streamKey, startId, this.LARGEST_STREAM_ID); + ): Promise { + const results = await this.client.xLen(streamKey); - return results as StreamMessage[]; + return results; }; async getStreamStorage (streamKey: string): Promise { diff --git a/runner/src/stream-handler/worker.ts b/runner/src/stream-handler/worker.ts index 030b8e770..51305edb2 100644 --- a/runner/src/stream-handler/worker.ts +++ b/runner/src/stream-handler/worker.ts @@ -49,7 +49,7 @@ async function handleStream (workerContext: WorkerContext, streamKey: string): P function incrementId (id: string): string { const [main, sequence] = id.split('-'); - return `${Number(main) + 1}-${sequence}`; + return `${main}-${Number(sequence) + 1}`; } async function blockQueueProducer (workerContext: WorkerContext, streamKey: string): Promise { @@ -65,6 +65,7 @@ async function blockQueueProducer (workerContext: WorkerContext, streamKey: stri const messages = await workerContext.redisClient.getStreamMessages(streamKey, streamMessageStartId, preFetchCount); if (messages == null) { await sleep(100); + streamMessageStartId = '0'; continue; } console.log(`Fetched ${messages?.length} messages from stream ${streamKey}`); @@ -83,11 +84,13 @@ async function blockQueueConsumer (workerContext: WorkerContext, streamKey: stri const isHistorical = workerContext.streamType === 'historical'; let streamMessageId = ''; let indexerName = ''; + let currBlockHeight = 0; while (true) { try { - while (workerContext.queue.length === 0) { + if (workerContext.queue.length === 0) { await sleep(100); + continue; } const startTime = performance.now(); const indexerConfig = await workerContext.redisClient.getStreamStorage(streamKey); @@ -107,6 +110,7 @@ async function blockQueueConsumer (workerContext: WorkerContext, streamKey: stri continue; } const block = queueMessage.block; + currBlockHeight = block.blockHeight; streamMessageId = queueMessage.streamMessageId; if (block === undefined || block.blockHeight == null) { @@ -121,15 +125,15 @@ async function blockQueueConsumer (workerContext: WorkerContext, streamKey: stri METRICS.EXECUTION_DURATION.labels({ indexer: indexerName, type: workerContext.streamType }).observe(performance.now() - startTime); - METRICS.LAST_PROCESSED_BLOCK_HEIGHT.labels({ indexer: indexerName, type: workerContext.streamType }).set(block.blockHeight); + METRICS.LAST_PROCESSED_BLOCK_HEIGHT.labels({ indexer: indexerName, type: workerContext.streamType }).set(currBlockHeight); - console.log(`Success: ${indexerName}`); + console.log(`Success: ${indexerName} ${workerContext.streamType} on block ${currBlockHeight}}`); } catch (err) { await sleep(10000); - console.log(`Failed: ${indexerName}`, err); + console.log(`Failed: ${indexerName} ${workerContext.streamType} on block ${currBlockHeight}`, err); } finally { - const unprocessedMessages = await workerContext.redisClient.getUnprocessedStreamMessages(streamKey, streamMessageId); - METRICS.UNPROCESSED_STREAM_MESSAGES.labels({ indexer: indexerName, type: workerContext.streamType }).set(unprocessedMessages?.length ?? 0); + const unprocessedMessageCount = await workerContext.redisClient.getUnprocessedStreamMessageCount(streamKey); + METRICS.UNPROCESSED_STREAM_MESSAGES.labels({ indexer: indexerName, type: workerContext.streamType }).set(unprocessedMessageCount); parentPort?.postMessage(await promClient.register.getMetricsAsJSON()); } From 3a9cfd26b63147b194ab4e290750632148d176ac Mon Sep 17 00:00:00 2001 From: Morgan McCauley Date: Tue, 12 Dec 2023 09:34:26 +1300 Subject: [PATCH 03/10] feat: Create initial Block Streamer service (#428) This PR introduces a new Rust service called Block Streamer. This is essentially a refactored version of Historical Backfill, which does not stop the 'manual filtering' portion of the backfill, continuing indefinitely. Eventually, this service will be able to serve requests, allowing control over these Block Streams. I've outlined the major changes below. ## `trait S3Client` Low level S3 requests have been abstracted behind a `trait`. This allows us to use the `trait` as an argument, allowing the injection of mock implementations in tests. We no longer need to use real access keys, and can make more concrete assertions. ## `DeltaLakeClient` The majority of the S3 related logic, `queryapi_coordinator/src/s3.rs` included, has been refactored in to `DeltaLakeClient`. This client encapsulates all logic relating the interaction/consumption of `near-delta-lake` S3. Now, only a single method needs to be called from `BlockStream` in order to get the relevant block heights for a given contract_id/pattern. There's been a fair amount of refactor across all the methods themselves, I've added tests to ensure the still behave as expected. ## `BlockStream` The refactored version of Historical Backfill, not much has changed here in this version, the main change is that it now used `DeltaLakeClient`. This will eventually be expanded to provide more control over the Stream. ## `indexer_rules_*` & `storage` Currently these exist as separate crates within the `indexer/` workspace. Rather than creating a workspace for `block-streamer` I've added the respective files for each to the single crate. This is probably fine for `storage`, now called `redis`, but given `indexer_rules_*` is also used in the Registry Contract, I'll probably extract this in a later PR, to avoid it being duplicated. --- block-streamer/Cargo.lock | 3693 +++++++++++++++++ block-streamer/Cargo.toml | 28 + block-streamer/src/block_stream.rs | 201 + block-streamer/src/delta_lake_client.rs | 720 ++++ block-streamer/src/indexer_config.rs | 26 + block-streamer/src/main.rs | 68 + block-streamer/src/redis.rs | 142 + block-streamer/src/rules/matcher.rs | 141 + block-streamer/src/rules/mod.rs | 79 + block-streamer/src/rules/outcomes_reducer.rs | 262 ++ block-streamer/src/rules/types/events.rs | 20 + .../src/rules/types/indexer_rule_match.rs | 146 + block-streamer/src/rules/types/mod.rs | 3 + .../src/rules/types/transactions.rs | 20 + block-streamer/src/s3_client.rs | 134 + 15 files changed, 5683 insertions(+) create mode 100644 block-streamer/Cargo.lock create mode 100644 block-streamer/Cargo.toml create mode 100644 block-streamer/src/block_stream.rs create mode 100644 block-streamer/src/delta_lake_client.rs create mode 100644 block-streamer/src/indexer_config.rs create mode 100644 block-streamer/src/main.rs create mode 100644 block-streamer/src/redis.rs create mode 100644 block-streamer/src/rules/matcher.rs create mode 100644 block-streamer/src/rules/mod.rs create mode 100644 block-streamer/src/rules/outcomes_reducer.rs create mode 100644 block-streamer/src/rules/types/events.rs create mode 100644 block-streamer/src/rules/types/indexer_rule_match.rs create mode 100644 block-streamer/src/rules/types/mod.rs create mode 100644 block-streamer/src/rules/types/transactions.rs create mode 100644 block-streamer/src/s3_client.rs diff --git a/block-streamer/Cargo.lock b/block-streamer/Cargo.lock new file mode 100644 index 000000000..b96492ead --- /dev/null +++ b/block-streamer/Cargo.lock @@ -0,0 +1,3693 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "aws-config" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "741327a7f70e6e639bdb5061964c66250460c70ad3f59c3fe2a3a64ac1484e33" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-http 0.53.0", + "aws-sdk-sso 0.23.0", + "aws-sdk-sts 0.23.0", + "aws-smithy-async 0.53.1", + "aws-smithy-client", + "aws-smithy-http 0.53.1", + "aws-smithy-http-tower", + "aws-smithy-json 0.53.1", + "aws-smithy-types 0.53.1", + "aws-types 0.53.0", + "bytes", + "hex", + "http", + "hyper", + "ring 0.16.20", + "time", + "tokio", + "tower", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-config" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e245d7c741a8e4b23133f36750c4bcb3938a66ac49510caaf8b83afd52db1ec" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-http 0.60.0", + "aws-runtime", + "aws-sdk-sso 0.39.0", + "aws-sdk-ssooidc", + "aws-sdk-sts 0.39.0", + "aws-smithy-async 1.0.1", + "aws-smithy-http 0.60.0", + "aws-smithy-json 0.60.0", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-types 1.0.0", + "bytes", + "fastrand 2.0.1", + "hex", + "http", + "hyper", + "ring 0.17.5", + "time", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-credential-types" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f99dd587a46af58f8cf37773687ecec19d0373a5954942d7e0f405751fe2369" +dependencies = [ + "aws-smithy-async 0.53.1", + "aws-smithy-types 0.53.1", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-credential-types" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6dec6f3d42983be70a113f999476185e124884f43f4d60129c7157aede7bda1" +dependencies = [ + "aws-smithy-async 1.0.1", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "zeroize", +] + +[[package]] +name = "aws-endpoint" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13fdfc00c57d95e10bcf83d2331c4ae9ca460ca84dc983b2cdd692de87640389" +dependencies = [ + "aws-smithy-http 0.53.1", + "aws-smithy-types 0.53.1", + "aws-types 0.53.0", + "http", + "regex", + "tracing", +] + +[[package]] +name = "aws-http" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74cdac70481d144bf7001c27884b95ee12c8f62e61db90320d59b673ae121cb8" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-smithy-http 0.53.1", + "aws-smithy-types 0.53.1", + "aws-types 0.53.0", + "bytes", + "http", + "http-body", + "lazy_static", + "percent-encoding", + "pin-project-lite", + "tracing", +] + +[[package]] +name = "aws-http" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "361c4310fdce94328cc2d1ca0c8a48c13f43009c61d3367585685a50ca8c66b6" +dependencies = [ + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-types 1.0.0", + "bytes", + "http", + "http-body", + "pin-project-lite", + "tracing", +] + +[[package]] +name = "aws-runtime" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36ba3ad97d674bfaeed684d528a07cee6e81cbf16e6d6c7e272a130b5e71e6b9" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-http 0.60.0", + "aws-sigv4 1.0.0", + "aws-smithy-async 1.0.1", + "aws-smithy-eventstream 0.60.0", + "aws-smithy-http 0.60.0", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-types 1.0.0", + "fastrand 2.0.1", + "http", + "percent-encoding", + "tracing", + "uuid", +] + +[[package]] +name = "aws-sdk-s3" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ae411cb03ea6df0d4c4340a0d3c15cab7b19715d091f76c5629f31acd6403f3" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-endpoint", + "aws-http 0.53.0", + "aws-sig-auth", + "aws-sigv4 0.53.2", + "aws-smithy-async 0.53.1", + "aws-smithy-checksums 0.53.1", + "aws-smithy-client", + "aws-smithy-eventstream 0.53.1", + "aws-smithy-http 0.53.1", + "aws-smithy-http-tower", + "aws-smithy-json 0.53.1", + "aws-smithy-types 0.53.1", + "aws-smithy-xml 0.53.1", + "aws-types 0.53.0", + "bytes", + "bytes-utils", + "fastrand 1.9.0", + "http", + "http-body", + "once_cell", + "percent-encoding", + "regex", + "tokio-stream", + "tower", + "tracing", + "url", +] + +[[package]] +name = "aws-sdk-s3" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29223b1074621f1d011bac836d995c002936663052b1e7ad02927551b17d6625" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-http 0.60.0", + "aws-runtime", + "aws-sigv4 1.0.0", + "aws-smithy-async 1.0.1", + "aws-smithy-checksums 0.60.0", + "aws-smithy-eventstream 0.60.0", + "aws-smithy-http 0.60.0", + "aws-smithy-json 0.60.0", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-smithy-xml 0.60.0", + "aws-types 1.0.0", + "bytes", + "http", + "http-body", + "once_cell", + "percent-encoding", + "regex", + "tracing", + "url", +] + +[[package]] +name = "aws-sdk-sso" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5d2fb56182ac693a19364cc0bde22d95aef9be3663bf9b906ffbd0ab0a7c7d1" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-endpoint", + "aws-http 0.53.0", + "aws-sig-auth", + "aws-smithy-async 0.53.1", + "aws-smithy-client", + "aws-smithy-http 0.53.1", + "aws-smithy-http-tower", + "aws-smithy-json 0.53.1", + "aws-smithy-types 0.53.1", + "aws-types 0.53.0", + "bytes", + "http", + "regex", + "tokio-stream", + "tower", + "url", +] + +[[package]] +name = "aws-sdk-sso" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5786afe1fd164e53f108b2bd4982a31c5a821dc1677d05a12de65ebcc6ede52a" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-http 0.60.0", + "aws-runtime", + "aws-smithy-async 1.0.1", + "aws-smithy-http 0.60.0", + "aws-smithy-json 0.60.0", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-types 1.0.0", + "bytes", + "http", + "regex", + "tracing", +] + +[[package]] +name = "aws-sdk-ssooidc" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31569ac7750ebc3097058c1e72d79576e16b3fb262aa0d6510188bff623f9804" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-http 0.60.0", + "aws-runtime", + "aws-smithy-async 1.0.1", + "aws-smithy-http 0.60.0", + "aws-smithy-json 0.60.0", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-types 1.0.0", + "bytes", + "http", + "regex", + "tracing", +] + +[[package]] +name = "aws-sdk-sts" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a70adf3e9518c8d6d14f1239f6af04c019ffd260ab791e17deb11f1bce6a9f76" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-endpoint", + "aws-http 0.53.0", + "aws-sig-auth", + "aws-smithy-async 0.53.1", + "aws-smithy-client", + "aws-smithy-http 0.53.1", + "aws-smithy-http-tower", + "aws-smithy-json 0.53.1", + "aws-smithy-query 0.53.1", + "aws-smithy-types 0.53.1", + "aws-smithy-xml 0.53.1", + "aws-types 0.53.0", + "bytes", + "http", + "regex", + "tower", + "tracing", + "url", +] + +[[package]] +name = "aws-sdk-sts" +version = "0.39.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1d955bacd8c3637908a40a4af2f7a732461ee7d95ec02599a3610ee55781d7" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-http 0.60.0", + "aws-runtime", + "aws-smithy-async 1.0.1", + "aws-smithy-http 0.60.0", + "aws-smithy-json 0.60.0", + "aws-smithy-query 0.60.0", + "aws-smithy-runtime", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "aws-smithy-xml 0.60.0", + "aws-types 1.0.0", + "http", + "regex", + "tracing", +] + +[[package]] +name = "aws-sig-auth" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22af7f6515f8b51dabef87df1d901c9734e4e367791c6d0e1082f9f31528120e" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-sigv4 0.53.2", + "aws-smithy-eventstream 0.53.1", + "aws-smithy-http 0.53.1", + "aws-types 0.53.0", + "http", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14500f741fb73a3c6cb173f8d96b433319a0e27c370a4e783b9ad693fc86210e" +dependencies = [ + "aws-smithy-eventstream 0.53.1", + "aws-smithy-http 0.53.1", + "bytes", + "form_urlencoded", + "hex", + "hmac", + "http", + "once_cell", + "percent-encoding", + "regex", + "sha2 0.10.8", + "time", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4d07e2f2fc32acb7423d054ec8ba2b361dafc95fabc5a211baf4a566571d20e" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-smithy-eventstream 0.60.0", + "aws-smithy-http 0.60.0", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "bytes", + "crypto-bigint 0.5.5", + "form_urlencoded", + "hex", + "hmac", + "http", + "once_cell", + "p256", + "percent-encoding", + "regex", + "ring 0.17.5", + "sha2 0.10.8", + "subtle", + "time", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-async" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8b9900be224962d65a626072d8777f847ae5406c07547f0dc14c60048978c4b" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + +[[package]] +name = "aws-smithy-async" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fbfa248f7f966d73e325dbc85851a5500042b6d96e3c3b535a8527707f36fe4" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "aws-smithy-checksums" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e9e4d3c2296bcec2c03f9f769ac9b2424d972c2fe7afc0b59235447ac3a5c3" +dependencies = [ + "aws-smithy-http 0.53.1", + "aws-smithy-types 0.53.1", + "bytes", + "crc32c", + "crc32fast", + "hex", + "http", + "http-body", + "md-5", + "pin-project-lite", + "sha1 0.10.6", + "sha2 0.10.8", + "tracing", +] + +[[package]] +name = "aws-smithy-checksums" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5a373ec01aede3dd066ec018c1bc4e8f5dd11b2c11c59c8eef1a5c68101f397" +dependencies = [ + "aws-smithy-http 0.60.0", + "aws-smithy-types 1.0.1", + "bytes", + "crc32c", + "crc32fast", + "hex", + "http", + "http-body", + "md-5", + "pin-project-lite", + "sha1 0.10.6", + "sha2 0.10.8", + "tracing", +] + +[[package]] +name = "aws-smithy-client" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "710ca0f8dacddda5fbcaf5c3cd9d02da7913fd463a2ee9555b617bf168bedacb" +dependencies = [ + "aws-smithy-async 0.53.1", + "aws-smithy-http 0.53.1", + "aws-smithy-http-tower", + "aws-smithy-types 0.53.1", + "bytes", + "fastrand 1.9.0", + "http", + "http-body", + "hyper", + "hyper-rustls 0.23.2", + "lazy_static", + "pin-project-lite", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-eventstream" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d1ff11ee22de3581114b60d4ae8e700638dacb5b5bbe6769726e251e6c3f20a" +dependencies = [ + "aws-smithy-types 0.53.1", + "bytes", + "crc32fast", +] + +[[package]] +name = "aws-smithy-eventstream" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c669e1e5fc0d79561bf7a122b118bd50c898758354fe2c53eb8f2d31507cbc3" +dependencies = [ + "aws-smithy-types 1.0.1", + "bytes", + "crc32fast", +] + +[[package]] +name = "aws-smithy-http" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29dcab29afbea7726f5c10c7be0c38666d7eb07db551580b3b26ed7cfb5d1935" +dependencies = [ + "aws-smithy-eventstream 0.53.1", + "aws-smithy-types 0.53.1", + "bytes", + "bytes-utils", + "futures-core", + "http", + "http-body", + "hyper", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b1de8aee22f67de467b2e3d0dd0fb30859dc53f579a63bd5381766b987db644" +dependencies = [ + "aws-smithy-eventstream 0.60.0", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "bytes", + "bytes-utils", + "futures-core", + "http", + "http-body", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-http-tower" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5856d2f1063c0f726a85f32dcd2a9f5a1d994eb27b156abccafc7260f3f471d" +dependencies = [ + "aws-smithy-http 0.53.1", + "aws-smithy-types 0.53.1", + "bytes", + "http", + "http-body", + "pin-project-lite", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfb33659b68480495b5f906b946c8642928440118b1d7e26a25a067303ca01a5" +dependencies = [ + "aws-smithy-types 0.53.1", +] + +[[package]] +name = "aws-smithy-json" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a46dd338dc9576d6a6a5b5a19bd678dcad018ececee11cf28ecd7588bd1a55c" +dependencies = [ + "aws-smithy-types 1.0.1", +] + +[[package]] +name = "aws-smithy-query" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c4b21ee0e30ff046e87c7b7e017b99d445b42a81fe52c6e5139b23b795a98ae" +dependencies = [ + "aws-smithy-types 0.53.1", + "urlencoding", +] + +[[package]] +name = "aws-smithy-query" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feb5b8c7a86d4b6399169670723b7e6f21a39fc833a30f5c5a2f997608178129" +dependencies = [ + "aws-smithy-types 1.0.1", + "urlencoding", +] + +[[package]] +name = "aws-smithy-runtime" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "064b808143d80b50744b1b22cce801238a545b84859c6cf8e275997252dd1d25" +dependencies = [ + "aws-smithy-async 1.0.1", + "aws-smithy-http 0.60.0", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "bytes", + "fastrand 2.0.1", + "http", + "http-body", + "hyper", + "hyper-rustls 0.24.2", + "once_cell", + "pin-project-lite", + "pin-utils", + "rustls 0.21.9", + "tokio", + "tracing", +] + +[[package]] +name = "aws-smithy-runtime-api" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d27c3235d4972ed976b5c1a82286e7c4457f618f3c2ae6d4ae44f081dd24575" +dependencies = [ + "aws-smithy-async 1.0.1", + "aws-smithy-types 1.0.1", + "bytes", + "http", + "pin-project-lite", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-smithy-types" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2013465a070decdeb3e85ceb3370ae85ba05f56f914abfd89858d7281c4f12c3" +dependencies = [ + "base64-simd 0.7.0", + "itoa", + "num-integer", + "ryu", + "time", +] + +[[package]] +name = "aws-smithy-types" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fc32035dc0636a8583cf0c6dd7f1e6d5404103b836d26228b8730907a88d9f" +dependencies = [ + "base64-simd 0.8.0", + "bytes", + "bytes-utils", + "futures-core", + "http", + "http-body", + "itoa", + "num-integer", + "pin-project-lite", + "pin-utils", + "ryu", + "serde", + "time", + "tokio", + "tokio-util", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d27bfaa164aa94aac721726a83aa78abe708a275e88a573e103b4961c5f0ede" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.60.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ec40d74a67fd395bc3f6b4ccbdf1543672622d905ef3f979689aea5b730cb95" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f00f4b0cdd345686e6389f3343a3020f93232d20040802b87673ddc2d02956" +dependencies = [ + "aws-credential-types 0.53.0", + "aws-smithy-async 0.53.1", + "aws-smithy-client", + "aws-smithy-http 0.53.1", + "aws-smithy-types 0.53.1", + "http", + "rustc_version", + "tracing", +] + +[[package]] +name = "aws-types" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b18c0eb301cce69298555c4884795497c67b3bd511aa3f07470382f4bf3ef043" +dependencies = [ + "aws-credential-types 1.0.0", + "aws-smithy-async 1.0.1", + "aws-smithy-runtime-api", + "aws-smithy-types 1.0.1", + "http", + "rustc_version", + "tracing", +] + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "base64-simd" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" +dependencies = [ + "simd-abstraction", +] + +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref 0.5.1", + "vsimd", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +dependencies = [ + "crypto-mac", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-streamer" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "aws-config 1.0.0", + "aws-sdk-s3 0.39.1", + "aws-smithy-http 0.60.0", + "aws-smithy-types 1.0.1", + "aws-types 1.0.0", + "borsh", + "chrono", + "futures", + "mockall", + "near-lake-framework", + "redis", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tokio-util", + "tracing", + "tracing-subscriber", + "wildmatch", +] + +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "bytes-utils" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35" +dependencies = [ + "bytes", + "either", +] + +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" +dependencies = [ + "serde", +] + +[[package]] +name = "c2-chacha" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" +dependencies = [ + "cipher", + "ppv-lite86", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets", +] + +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array", +] + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "const-oid" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32c" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74" +dependencies = [ + "rustc_version", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core 0.20.3", + "darling_macro 0.20.3", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.39", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core 0.20.3", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32d04922c60427da6f9fef14d042d9edddef64cb9d4ce0d64d0685fbeb1fd3" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "derive_builder" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" +dependencies = [ + "darling 0.14.4", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", + "subtle", +] + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "easy-ext" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53aff6fdc1b181225acdcb5b14c47106726fd8e486707315b1b138baed68ee31" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der", + "elliptic-curve", + "rfc6979", + "signature", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct", + "crypto-bigint 0.4.9", + "der", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "enum-map" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09e6b4f374c071b18172e23134e01026653dc980636ee139e0dfe59c538c61e5" +dependencies = [ + "enum-map-derive", +] + +[[package]] +name = "enum-map-derive" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdb3d73d1beaf47c8593a1364e577fde072677cbfd103600345c0f547408cc0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-macro" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53b153fd91e4b0147f4aced87be237c98248656bb01050b96bf3ee89220a8ddb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93e7192158dbcda357bdec5fb5788eebf8bbac027f3f33e719d29135ae84156" + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls 0.20.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.23.4", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http", + "hyper", + "log", + "rustls 0.21.9", + "rustls-native-certs", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.2", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" + +[[package]] +name = "js-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c0c35952f67de54bb584e9fd912b3023117cbafc0a77d8f3dee1fb5f572fe8" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_comments" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "libc" +version = "0.2.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "mio" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3dce281c5e46beae905d4de1870d8b1509a9142b62eedf18b443b011ca8343d0" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static", + "mockall_derive", + "predicates", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "near-account-id" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc0cb40869cab7f5232f934f45db35bffe0f2d2a7cb0cd0346202fbe4ebf2dd7" +dependencies = [ + "borsh", + "serde", +] + +[[package]] +name = "near-config-utils" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5523e7dce493c45bc3241eb3100d943ec471852f9b1f84b46a34789eadf17031" +dependencies = [ + "anyhow", + "json_comments", + "thiserror", + "tracing", +] + +[[package]] +name = "near-crypto" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6b382b626e7e0cd372d027c6672ac97b4b6ee6114288c9e58d8180b935d315" +dependencies = [ + "blake2", + "borsh", + "bs58", + "c2-chacha", + "curve25519-dalek", + "derive_more", + "ed25519-dalek", + "hex", + "near-account-id", + "near-config-utils", + "near-stdx", + "once_cell", + "primitive-types", + "rand 0.7.3", + "secp256k1", + "serde", + "serde_json", + "subtle", + "thiserror", +] + +[[package]] +name = "near-fmt" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c44c842c6cfcd9b8c387cccd4cd0619a5f21920cde5d5c292af3cc5d40510672" +dependencies = [ + "near-primitives-core", +] + +[[package]] +name = "near-indexer-primitives" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b76c87827dcae78979748c3864d209d5906163958a01551afc2092a8ad56fa39" +dependencies = [ + "near-primitives", + "serde", + "serde_json", +] + +[[package]] +name = "near-lake-framework" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fbfc3d7c294aa144c3a1817452931e91ce045ee1cf2e34b7b439d4695073634" +dependencies = [ + "anyhow", + "async-stream", + "async-trait", + "aws-config 0.53.0", + "aws-credential-types 0.53.0", + "aws-sdk-s3 0.23.0", + "aws-types 0.53.0", + "derive_builder", + "futures", + "near-indexer-primitives", + "serde", + "serde_json", + "thiserror", + "tokio", + "tokio-stream", + "tracing", +] + +[[package]] +name = "near-primitives" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f7051aaf199adc4d068620fca6d5f70f906a1540d03a8bb3701271f8881835" +dependencies = [ + "arbitrary", + "borsh", + "bytesize", + "cfg-if", + "chrono", + "derive_more", + "easy-ext", + "enum-map", + "hex", + "near-crypto", + "near-fmt", + "near-primitives-core", + "near-rpc-error-macro", + "near-stdx", + "near-vm-errors", + "num-rational", + "once_cell", + "primitive-types", + "rand 0.8.5", + "reed-solomon-erasure", + "serde", + "serde_json", + "serde_with", + "serde_yaml", + "smart-default", + "strum", + "thiserror", + "time", + "tracing", +] + +[[package]] +name = "near-primitives-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775fec19ef51a341abdbf792a9dda5b4cb89f488f681b2fd689b9321d24db47b" +dependencies = [ + "arbitrary", + "base64", + "borsh", + "bs58", + "derive_more", + "enum-map", + "near-account-id", + "num-rational", + "serde", + "serde_repr", + "serde_with", + "sha2 0.10.8", + "strum", + "thiserror", +] + +[[package]] +name = "near-rpc-error-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c1eda300e2e78f4f945ae58117d49e806899f4a51ee2faa09eda5ebc2e6571" +dependencies = [ + "quote", + "serde", + "syn 2.0.39", +] + +[[package]] +name = "near-rpc-error-macro" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31d2dadd765101c77e664029dd6fbec090e696877d4ae903c620d02ceda4969a" +dependencies = [ + "fs2", + "near-rpc-error-core", + "serde", + "syn 2.0.39", +] + +[[package]] +name = "near-stdx" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6540152fba5e96fe5d575b79e8cd244cf2add747bb01362426bdc069bc3a23bc" + +[[package]] +name = "near-vm-errors" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec545d1bede0579e7c15dd2dce9b998dc975c52f2165702ff40bec7ff69728bb" +dependencies = [ + "borsh", + "near-account-id", + "near-rpc-error-macro", + "serde", + "strum", + "thiserror", +] + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "outref" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" + +[[package]] +name = "outref" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "p256" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2 0.10.8", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro2" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "redis" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "152f3863635cbb76b73bc247845781098302c6c9ad2060e1a9a7de56840346b6" +dependencies = [ + "arc-swap", + "async-trait", + "bytes", + "combine", + "futures", + "futures-util", + "itoa", + "percent-encoding", + "pin-project-lite", + "ryu", + "sha1 0.6.1", + "tokio", + "tokio-util", + "url", +] + +[[package]] +name = "reed-solomon-erasure" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +dependencies = [ + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin 0.5.2", + "untrusted 0.7.1", + "web-sys", + "winapi", +] + +[[package]] +name = "ring" +version = "0.17.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +dependencies = [ + "cc", + "getrandom 0.2.11", + "libc", + "spin 0.9.8", + "untrusted 0.9.0", + "windows-sys", +] + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustls" +version = "0.20.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +dependencies = [ + "log", + "ring 0.16.20", + "sct", + "webpki", +] + +[[package]] +name = "rustls" +version = "0.21.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" +dependencies = [ + "log", + "ring 0.17.5", + "rustls-webpki", + "sct", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64", +] + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring 0.17.5", + "untrusted 0.9.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring 0.17.5", + "untrusted 0.9.0", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_with" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" +dependencies = [ + "darling 0.20.3", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "serde_yaml" +version = "0.9.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" +dependencies = [ + "indexmap 2.1.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha1" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1da05c97445caa12d05e848c4a4fcbbea29e748ac28f7e80e9b010392063770" +dependencies = [ + "sha1_smol", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-abstraction" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" +dependencies = [ + "outref 0.1.0", +] + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "smart-default" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio", + "num_cpus", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls 0.20.9", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.9", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unsafe-libyaml" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da" + +[[package]] +name = "uuid" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e395fcf16a7a3d8127ec99782007af141946b4795001f876d54fb0d55978560" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7daec296f25a1bae309c0cd5c29c4b260e510e6d813c286b19eaadf409d40fce" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e397f4664c0e4e428e8313a469aaa58310d302159845980fd23b0f22a847f217" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5961017b3b08ad5f3fe39f1e79877f8ee7c23c5e5fd5eb80de95abc41f1f16b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5353b8dab669f5e10f5bd76df26a9360c748f054f862ff5f3f8aae0c7fb3907" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.88" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" + +[[package]] +name = "web-sys" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" +dependencies = [ + "ring 0.17.5", + "untrusted 0.9.0", +] + +[[package]] +name = "wildmatch" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee583bdc5ff1cf9db20e9db5bb3ff4c3089a8f6b8b31aff265c9aba85812db86" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "xmlparser" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" + +[[package]] +name = "zerocopy" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e97e415490559a91254a2979b4829267a57d2fcd741a98eee8b722fb57289aa0" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd7e48ccf166952882ca8bd778a43502c64f33bf94c12ebe2a7f08e5a0f6689f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.39", +] diff --git a/block-streamer/Cargo.toml b/block-streamer/Cargo.toml new file mode 100644 index 000000000..2335b81f5 --- /dev/null +++ b/block-streamer/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "block-streamer" +version = "0.1.0" +edition = "2021" + +[dependencies] +anyhow = "1.0.57" +async-trait = "0.1.74" +aws-config = { version = "1.0.0", features = ["behavior-version-latest"]} +aws-smithy-http = "0.60.0" +aws-smithy-types = "1.0.1" +aws-sdk-s3 = "0.39.1" +aws-types = "1.0.0" +borsh = "0.10.2" +chrono = "0.4.25" +futures = "0.3.5" +mockall = "0.11.4" +redis = { version = "0.21.5", features = ["tokio-comp", "connection-manager"] } +serde = { version = "1", features = ["derive"] } +serde_json = "1.0.55" +tracing = "0.1.40" +tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } +tokio = { version = "1.28.0", features = ["rt-multi-thread"]} +tokio-util = "0.7.10" +tokio-stream = "0.1.14" +wildmatch = "2.1.1" + +near-lake-framework = "0.7.1" diff --git a/block-streamer/src/block_stream.rs b/block-streamer/src/block_stream.rs new file mode 100644 index 000000000..39bb2b4e6 --- /dev/null +++ b/block-streamer/src/block_stream.rs @@ -0,0 +1,201 @@ +use crate::indexer_config::IndexerConfig; +use crate::rules::types::indexer_rule_match::ChainId; +use crate::rules::MatchingRule; +use anyhow::{bail, Context}; +use near_lake_framework::near_indexer_primitives; +use tokio::task::JoinHandle; + +pub struct Task { + handle: JoinHandle>, + cancellation_token: tokio_util::sync::CancellationToken, +} + +pub struct BlockStream { + task: Option, +} + +impl BlockStream { + pub fn new() -> Self { + Self { task: None } + } + + pub fn start( + &mut self, + start_block_height: near_indexer_primitives::types::BlockHeight, + indexer: IndexerConfig, + redis_connection_manager: crate::redis::ConnectionManager, + delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + chain_id: ChainId, + ) -> anyhow::Result<()> { + if self.task.is_some() { + return Err(anyhow::anyhow!("BlockStreamer has already been started",)); + } + + let cancellation_token = tokio_util::sync::CancellationToken::new(); + let cancellation_token_clone = cancellation_token.clone(); + + let handle = tokio::spawn(async move { + tokio::select! { + _ = cancellation_token_clone.cancelled() => { + tracing::info!( + "Cancelling existing block stream task for indexer: {}", + indexer.get_full_name(), + ); + + Ok(()) + }, + result = start_block_stream( + start_block_height, + indexer.clone(), + &redis_connection_manager, + &delta_lake_client, + &chain_id, + ) => { + result.map_err(|err| { + tracing::error!( + "Block stream task for indexer: {} stopped due to error: {:?}", + indexer.get_full_name(), + err, + ); + err + }) + } + } + }); + + self.task = Some(Task { + handle, + cancellation_token, + }); + + Ok(()) + } + + pub async fn cancel(&mut self) -> anyhow::Result<()> { + if let Some(task) = self.task.take() { + task.cancellation_token.cancel(); + let _ = task.handle.await?; + + return Ok(()); + } + + Err(anyhow::anyhow!( + "Attempted to cancel already cancelled, or not started, BlockStreamer" + )) + } + + pub fn take_handle(&mut self) -> Option>> { + self.task.take().map(|task| task.handle) + } +} + +pub(crate) async fn start_block_stream( + start_block_height: near_indexer_primitives::types::BlockHeight, + indexer: IndexerConfig, + redis_connection_manager: &crate::redis::ConnectionManager, + delta_lake_client: &crate::delta_lake_client::DeltaLakeClient, + chain_id: &ChainId, +) -> anyhow::Result<()> { + tracing::info!( + "Starting block stream at {start_block_height} for indexer: {}", + indexer.get_full_name(), + ); + + let latest_block_metadata = delta_lake_client.get_latest_block_metadata().await?; + let last_indexed_block = latest_block_metadata + .last_indexed_block + .parse::()?; + + let blocks_from_index = match &indexer.indexer_rule.matching_rule { + MatchingRule::ActionAny { + affected_account_id, + .. + } => { + tracing::debug!( + "Fetching block heights starting from {} from delta lake for indexer: {}", + start_block_height, + indexer.get_full_name() + ); + + delta_lake_client + .list_matching_block_heights(start_block_height, affected_account_id) + .await + } + MatchingRule::ActionFunctionCall { .. } => { + bail!("ActionFunctionCall matching rule not yet supported for historical processing, function: {:?} {:?}", indexer.account_id, indexer.function_name); + } + MatchingRule::Event { .. } => { + bail!("Event matching rule not yet supported for historical processing, function {:?} {:?}", indexer.account_id, indexer.function_name); + } + }?; + + tracing::debug!( + "Flushing {} block heights from index files to historical Stream for indexer: {}", + blocks_from_index.len(), + indexer.get_full_name(), + ); + + for block in &blocks_from_index { + crate::redis::xadd( + redis_connection_manager, + // TODO make configurable + crate::redis::generate_historical_stream_key(&indexer.get_full_name()), + &[("block_height", block)], + ) + .await + .context("Failed to add block to Redis Stream")?; + } + + let mut last_indexed_block = + blocks_from_index + .last() + .map_or(last_indexed_block, |&last_block_in_index| { + // Check for the case where index files are written right after we fetch the last_indexed_block metadata + std::cmp::max(last_block_in_index, last_indexed_block) + }); + + tracing::debug!( + "Starting near-lake-framework from {last_indexed_block} for indexer: {}", + indexer.get_full_name(), + ); + + let lake_config = match &chain_id { + ChainId::Mainnet => near_lake_framework::LakeConfigBuilder::default().mainnet(), + ChainId::Testnet => near_lake_framework::LakeConfigBuilder::default().testnet(), + } + .start_block_height(last_indexed_block) + .build() + .context("Failed to build lake config")?; + + let (sender, mut stream) = near_lake_framework::streamer(lake_config); + + while let Some(streamer_message) = stream.recv().await { + let block_height = streamer_message.block.header.height; + last_indexed_block = block_height; + + let matches = crate::rules::reduce_indexer_rule_matches( + &indexer.indexer_rule, + &streamer_message, + chain_id.clone(), + ); + + if !matches.is_empty() { + crate::redis::xadd( + redis_connection_manager, + crate::redis::generate_historical_stream_key(&indexer.get_full_name()), + &[("block_height", block_height)], + ) + .await?; + } + } + + drop(sender); + + tracing::debug!( + "Stopped block stream at {} for indexer: {}", + last_indexed_block, + indexer.get_full_name(), + ); + + Ok(()) +} diff --git a/block-streamer/src/delta_lake_client.rs b/block-streamer/src/delta_lake_client.rs new file mode 100644 index 000000000..26fd2b144 --- /dev/null +++ b/block-streamer/src/delta_lake_client.rs @@ -0,0 +1,720 @@ +use crate::rules::types::indexer_rule_match::ChainId; +use anyhow::Context; +use chrono::TimeZone; +use futures::future::try_join_all; +use near_lake_framework::near_indexer_primitives; + +const DELTA_LAKE_BUCKET: &str = "near-delta-lake"; +const MAX_S3_RETRY_COUNT: u8 = 20; +const INDEXED_ACTIONS_PREFIX: &str = "silver/accounts/action_receipt_actions/metadata"; +const LATEST_BLOCK_METADATA_KEY: &str = + "silver/accounts/action_receipt_actions/metadata/latest_block.json"; + +#[derive(serde::Deserialize, Debug, Eq, PartialEq)] +pub struct LatestBlockMetadata { + pub last_indexed_block: String, + pub first_indexed_block: String, + pub last_indexed_block_date: String, + pub first_indexed_block_date: String, + pub processed_at_utc: String, +} + +#[derive(serde::Deserialize, Debug, Eq, PartialEq)] +pub struct IndexFileAction { + pub action_kind: String, + pub block_heights: Vec, +} + +#[derive(serde::Deserialize, Debug, Eq, PartialEq)] +pub struct IndexFile { + pub heights: Vec, + pub actions: Vec, +} + +pub struct DeltaLakeClient +where + T: crate::s3_client::S3ClientTrait, +{ + s3_client: T, + chain_id: ChainId, +} + +impl DeltaLakeClient +where + T: crate::s3_client::S3ClientTrait, +{ + pub fn new(s3_client: T) -> Self { + DeltaLakeClient { + s3_client, + // hardcode to mainnet for + chain_id: ChainId::Mainnet, + } + } + + pub async fn get_latest_block_metadata(&self) -> anyhow::Result { + let metadata_file_content = self + .s3_client + .get_text_file(DELTA_LAKE_BUCKET, LATEST_BLOCK_METADATA_KEY) + .await?; + + serde_json::from_str::(&metadata_file_content) + .context("Unable to parse Metadata") + } + + fn get_lake_bucket(&self) -> String { + match self.chain_id { + ChainId::Mainnet => "near-lake-data-mainnet".to_string(), + ChainId::Testnet => "near-lake-data-testnet".to_string(), + } + } + + pub async fn get_nearest_block_date( + &self, + block_height: u64, + ) -> anyhow::Result> { + let mut current_block_height = block_height; + let mut retry_count = 1; + loop { + let block_key = format!("{:0>12}/block.json", current_block_height); + match self + .s3_client + .get_text_file(&self.get_lake_bucket(), &block_key) + .await + { + Ok(text) => { + let block: near_indexer_primitives::views::BlockView = + serde_json::from_str(&text)?; + return Ok(chrono::Utc.timestamp_nanos(block.header.timestamp_nanosec as i64)); + } + + Err(e) => { + if e.root_cause() + .downcast_ref::() + .is_some() + { + retry_count += 1; + if retry_count > MAX_S3_RETRY_COUNT { + anyhow::bail!("Exceeded maximum retries to fetch block from S3"); + } + + tracing::debug!( + "Block {} not found on S3, attempting to fetch next block", + current_block_height + ); + current_block_height += 1; + continue; + } + + return Err(e).context("Failed to fetch block from S3"); + } + } + } + } + + fn s3_prefix_from_contract_id(&self, contract_id: &str) -> String { + let mut folders = contract_id.split('.').collect::>(); + folders.reverse(); + + format!("{}/{}/", INDEXED_ACTIONS_PREFIX, folders.join("/")) + } + + async fn list_objects_recursive( + &self, + prefix: &str, + depth: u32, + ) -> anyhow::Result> { + if depth > 1 { + unimplemented!("Recursive list with depth > 1 not supported") + } + + let objects = self + .s3_client + .list_all_objects(DELTA_LAKE_BUCKET, prefix) + .await?; + + let mut results = vec![]; + // TODO do in parallel? + // TODO only list objects without .json extension + for object in objects { + results.extend( + self.s3_client + .list_all_objects(DELTA_LAKE_BUCKET, &object) + .await?, + ); + } + + Ok(results) + } + + async fn list_matching_index_files( + &self, + contract_pattern: &str, + ) -> anyhow::Result> { + match contract_pattern { + pattern if pattern.contains(',') => { + let contract_ids = pattern.split(','); + + let mut results = vec![]; + + for contract_id in contract_ids { + let contract_id = contract_id.trim(); + + if contract_id.contains('*') { + let pattern = contract_id.replace("*.", ""); + results.extend( + self.list_objects_recursive( + &self.s3_prefix_from_contract_id(&pattern), + 1, + ) + .await?, + ); + } else { + results.extend( + self.s3_client + .list_all_objects( + DELTA_LAKE_BUCKET, + &self.s3_prefix_from_contract_id(contract_id), + ) + .await?, + ); + }; + } + + Ok(results) + } + pattern if pattern.contains('*') => { + let contract_id = pattern.replace("*.", ""); + self.list_objects_recursive(&self.s3_prefix_from_contract_id(&contract_id), 1) + .await + } + pattern => { + self.s3_client + .list_all_objects(DELTA_LAKE_BUCKET, &self.s3_prefix_from_contract_id(pattern)) + .await + } + } + } + + fn date_from_s3_path(&self, path: &str) -> Option { + let file_name_date = path.split('/').last()?.replace(".json", ""); + + chrono::NaiveDate::parse_from_str(&file_name_date, "%Y-%m-%d").ok() + } + + pub async fn list_matching_block_heights( + &self, + start_block_height: near_indexer_primitives::types::BlockHeight, + contract_pattern: &str, + ) -> anyhow::Result> { + let start_date = self.get_nearest_block_date(start_block_height).await?; + + let file_list = self.list_matching_index_files(contract_pattern).await?; + tracing::debug!( + "Found {} index files matching {}", + file_list.len(), + contract_pattern, + ); + + let futures = file_list + .into_iter() + // TODO use `start_after` in the request to S3 to avoid this filter + .filter(|file_path| { + self.date_from_s3_path(file_path) + // Ignore invalid paths, i.e. sub-folders, by default + .map_or(false, |file_date| file_date >= start_date.date_naive()) + }) + .map(|key| async move { self.s3_client.get_text_file(DELTA_LAKE_BUCKET, &key).await }) + .collect::>(); + + tracing::debug!( + "Found {} index files matching {} after date {}", + futures.len(), + contract_pattern, + start_date + ); + + let file_content_list = try_join_all(futures).await?; + + let mut block_heights: Vec<_> = file_content_list + .into_iter() + .filter_map(|content| { + if content.is_empty() { + None + } else { + serde_json::from_str::(&content).ok() + } + }) + .flat_map(|index_file| index_file.heights) + .collect(); + + let pattern_has_multiple_contracts = contract_pattern.chars().any(|c| c == ',' || c == '*'); + if pattern_has_multiple_contracts { + block_heights.sort(); + block_heights.dedup(); + } + + tracing::debug!( + "Found {} matching block heights matching {}", + block_heights.len(), + contract_pattern, + ); + + // TODO Remove all block heights after start_block_height + Ok(block_heights) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use mockall::predicate; + + fn generate_block_with_timestamp(date: &str) -> String { + let naive_date = chrono::NaiveDate::parse_from_str(date, "%Y-%m-%d") + .unwrap() + .and_hms_opt(0, 0, 0) + .unwrap(); + + let date_time_utc = chrono::Utc.from_utc_datetime(&naive_date).timestamp() * 1_000_000_000; + + format!( + r#"{{ + "author": "someone", + "header": {{ + "approvals": [], + "block_merkle_root": "ERiC7AJ2zbVz1HJHThR5NWDDN9vByhwdjcVfivmpY5B", + "block_ordinal": 92102682, + "challenges_result": [], + "challenges_root": "11111111111111111111111111111111", + "chunk_headers_root": "MDiJxDyvUQaZRKmUwa5jgQuV6XjwVvnm4tDrajCxwvz", + "chunk_mask": [], + "chunk_receipts_root": "n84wEo7kTKTCJsyqBZ2jndhjrAMeJAXMwKvnJR7vCuy", + "chunk_tx_root": "D8j64GMKBMvUfvnuHtWUyDtMHM5mJ2pA4G5VmYYJvo5G", + "chunks_included": 4, + "epoch_id": "2RMQiomr6CSSwUWpmB62YohxHbfadrHfcsaa3FVb4J9x", + "epoch_sync_data_hash": null, + "gas_price": "100000000", + "hash": "FA1z9RVm9fX3g3mgP3NToZGwWeeXYn8bvZs4nwwTgCpD", + "height": 102162333, + "last_ds_final_block": "Ax2a3MSYuv2hgybnCbpNJMdYmPrHDHdA2hHTUrBkD915", + "last_final_block": "8xkwjn6Lb6UhMBhxcbVQBf3318GafkdaXoHA8Jako1nn", + "latest_protocol_version": 62, + "next_bp_hash": "dmW84aEj2iVJMLwJodJwTfAyeA1LJaHEthvnoAsvTPt", + "next_epoch_id": "C9TDDYthANoduoTBZS7WYDsBSe9XCm4M2F9hRoVXVXWY", + "outcome_root": "6WxzWLVp4b4bFbxHzu18apVfXLvHGKY7CHoqD2Eq3TFJ", + "prev_hash": "Ax2a3MSYuv2hgybnCbpNJMdYmPrHDHdA2hHTUrBkD915", + "prev_height": 102162332, + "prev_state_root": "Aq2ndkyDiwroUWN69Ema9hHtnr6dPHoEBRNyfmd8v4gB", + "random_value": "7ruuMyDhGtTkYaCGYMy7PirPiM79DXa8GhVzQW1pHRoz", + "rent_paid": "0", + "signature": "ed25519:5gYYaWHkAEK5etB8tDpw7fmehkoYSprUxKPygaNqmhVDFCMkA1n379AtL1BBkQswLAPxWs1BZvypFnnLvBtHRknm", + "timestamp": 1695921400989555700, + "timestamp_nanosec": "{}", + "total_supply": "1155783047679681223245725102954966", + "validator_proposals": [], + "validator_reward": "0" + }}, + "chunks": [] + }}"#, + date_time_utc + ) + } + + #[tokio::test] + async fn fetches_metadata_from_s3() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET), predicate::eq(LATEST_BLOCK_METADATA_KEY)) + .returning(|_bucket, _prefix| Ok("{ \"last_indexed_block\": \"106309326\", \"first_indexed_block\": \"106164983\", \"last_indexed_block_date\": \"2023-11-22\", \"first_indexed_block_date\": \"2023-11-21\", \"processed_at_utc\": \"2023-11-22 23:06:24.358000\" }".to_string())); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let latest_block_metadata = delta_lake_client.get_latest_block_metadata().await.unwrap(); + + assert_eq!( + latest_block_metadata, + LatestBlockMetadata { + last_indexed_block: "106309326".to_string(), + first_indexed_block: "106164983".to_string(), + last_indexed_block_date: "2023-11-22".to_string(), + first_indexed_block_date: "2023-11-21".to_string(), + processed_at_utc: "2023-11-22 23:06:24.358000".to_string(), + } + ) + } + + #[tokio::test] + async fn lists_block_heights_for_single_contract() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000091940840/block.json"), + ) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2023-05-16"))); + mock_s3_client + .expect_list_all_objects() + .returning(|_bucket, _prefix| { + Ok(vec![ + "silver/accounts/action_receipt_actions/metadata/near/dataplatform/queryapi/2023-05-15.json".to_string(), + "silver/accounts/action_receipt_actions/metadata/near/dataplatform/queryapi/2023-05-17.json".to_string(), + ]) + }); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/dataplatform/queryapi/2023-05-15.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[91940840,91942989],\"actions\":[{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[91942989,91940840]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/dataplatform/queryapi/2023-05-17.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[92080299,92080344],\"actions\":[{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[92080344,92080299]}]}".to_string())); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_heights = delta_lake_client + .list_matching_block_heights(91940840, "queryapi.dataplatform.near") + .await + .unwrap(); + + assert_eq!(block_heights, vec![92080299, 92080344]) + } + + #[tokio::test] + async fn lists_block_heights_for_multiple_contracts() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000045894617/block.json"), + ) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2022-05-26"))); + mock_s3_client + .expect_list_all_objects() + .returning(|_bucket, prefix| { + let objects = match prefix { + "silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/2021-08-22.json".to_string() + ], + "silver/accounts/action_receipt_actions/metadata/near/aurora-silo-dev/hackathon/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/aurora-silo-dev/hackathon/2023-05-18.json".to_string(), + "silver/accounts/action_receipt_actions/metadata/near/aurora-silo-dev/hackathon/2023-05-30.json".to_string(), + ], + "silver/accounts/action_receipt_actions/metadata/near/sputnik-dao/hackathon/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/sputnik-dao/hackathon/2022-05-27.json".to_string() + ], + _ => panic!("Unexpected prefix: {}", prefix) + }; + + Ok(objects) + }); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/2021-08-22.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[45894617,45894627,45894628,45894712,45898413,45898423,45898424],\"actions\":[{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[45894617,45898413]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[45898423,45894627]},{\"action_kind\":\"DELETE_ACCOUNT\",\"block_heights\":[45894712]},{\"action_kind\":\"ADD_KEY\",\"block_heights\":[45894617,45898413]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[45894628,45894617,45898424,45898413]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[45898423,45894627]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/aurora-silo-dev/hackathon/2023-05-18.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[92167977,92168200,92168293,92168338,92168535,92168870,92168871,92168922,92168923,92168939,92168971,92169330],\"actions\":[{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[92168200,92168338]},{\"action_kind\":\"ADD_KEY\",\"block_heights\":[92168535,92167977]},{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[92167977]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[92168922,92168971,92168870]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[92168871,92168923,92169330,92168293,92168939,92167977]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/aurora-silo-dev/hackathon/2023-05-30.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[92167977,93067570,93067619,93067631,93067726,93067737,93067770,93067889,93067920,93067926,93067936,93073935,93073944,93073954],\"actions\":[{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[93073954,93067770,93067726,93065811,93067619,93073935,93067889,93067737,93067570,93067926,93073944,93067920,93067631,93067936]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/sputnik-dao/hackathon/2022-05-27.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[66494954],\"actions\":[{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[66494954]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[66494954]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[66494954]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[66494954]}]}".to_string())); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_heights = delta_lake_client + .list_matching_block_heights( + 45894617, + "hackathon.agency.near, hackathon.aurora-silo-dev.near, hackathon.sputnik-dao.near", + ) + .await + .unwrap(); + + assert_eq!( + block_heights, + vec![ + 66494954, 92167977, 92168200, 92168293, 92168338, 92168535, 92168870, 92168871, + 92168922, 92168923, 92168939, 92168971, 92169330, 93067570, 93067619, 93067631, + 93067726, 93067737, 93067770, 93067889, 93067920, 93067926, 93067936, 93073935, + 93073944, 93073954 + ] + ) + } + + #[tokio::test] + async fn lists_block_heights_for_wildcard() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000078516467/block.json"), + ) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2023-05-26"))); + mock_s3_client + .expect_list_all_objects() + .returning(|_bucket, prefix| { + let objects = match prefix { + "silver/accounts/action_receipt_actions/metadata/near/keypom/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/".to_string(), + "silver/accounts/action_receipt_actions/metadata/near/keypom/nft/".to_string(), + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-23.json".to_string(), + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string(), + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15.json".to_string(), + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/nft/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/nft/2023-09-26.json".to_string(), + ], + + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-23.json" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-23.json".to_string() + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string() + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15.json" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15json".to_string() + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/nft/2023-09-26.json" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/nft/2023-09-26.json".to_string() + ], + _ => panic!("Unexpected prefix: {}", prefix) + }; + + Ok(objects) + }); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[78516467,78516476,78516489,78516511,78516512],\"actions\":[{\"action_kind\":\"DELETE_ACCOUNT\",\"block_heights\":[78516467]},{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[78516476]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[78516476,78516512]},{\"action_kind\":\"ADD_KEY\",\"block_heights\":[78516476]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[78516511]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[78516489]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/nft/2023-09-26.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[102025554],\"actions\":[{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[102025554]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-23.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[104045849,104047967,104047968],\"actions\":[{\"action_kind\":\"TRANSFER\",\"block_heights\":[104047968,104045849,104047967]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[104616819],\"actions\":[{\"action_kind\":\"ADD_KEY\",\"block_heights\":[104616819]}]}".to_string())); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_heights = delta_lake_client + .list_matching_block_heights(78516467, "*.keypom.near") + .await + .unwrap(); + + assert_eq!( + block_heights, + vec![102025554, 104045849, 104047967, 104047968, 104616819] + ) + } + + #[tokio::test] + async fn lists_block_heights_for_multiple_contracts_and_wildcard() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000045894617/block.json"), + ) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2021-05-26"))); + mock_s3_client + .expect_list_all_objects() + .returning(|_bucket, prefix| { + let objects = match prefix { + "silver/accounts/action_receipt_actions/metadata/near/keypom/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/".to_string(), + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string(), + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15.json".to_string(), + ], + "silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/2021-08-22.json".to_string() + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string() + ], + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15.json" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15json".to_string() + ], + _ => panic!("Unexpected prefix: {}", prefix) + }; + + Ok(objects) + }); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/2021-08-22.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[45894617,45894627,45894628,45894712,45898413,45898423,45898424],\"actions\":[{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[45894617,45898413]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[45898423,45894627]},{\"action_kind\":\"DELETE_ACCOUNT\",\"block_heights\":[45894712]},{\"action_kind\":\"ADD_KEY\",\"block_heights\":[45894617,45898413]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[45894628,45894617,45898424,45898413]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[45898423,45894627]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/beta/2022-11-15.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[78516467,78516476,78516489,78516511,78516512],\"actions\":[{\"action_kind\":\"DELETE_ACCOUNT\",\"block_heights\":[78516467]},{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[78516476]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[78516476,78516512]},{\"action_kind\":\"ADD_KEY\",\"block_heights\":[78516476]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[78516511]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[78516489]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[104616819],\"actions\":[{\"action_kind\":\"ADD_KEY\",\"block_heights\":[104616819]}]}".to_string())); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_heights = delta_lake_client + .list_matching_block_heights(45894617, "*.keypom.near, hackathon.agency.near") + .await + .unwrap(); + + assert_eq!( + block_heights, + vec![ + 45894617, 45894627, 45894628, 45894712, 45898413, 45898423, 45898424, 78516467, + 78516476, 78516489, 78516511, 78516512, 104616819 + ] + ) + } + + #[tokio::test] + async fn sorts_and_removes_duplicates_for_multiple_contracts() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000045894628/block.json"), + ) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2021-05-26"))); + mock_s3_client + .expect_list_all_objects() + .returning(|_bucket, prefix| { + let objects = match prefix { + "silver/accounts/action_receipt_actions/metadata/near/keypom/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string(), + ], + "silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/" => vec![ + "silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/2021-08-22.json".to_string() + ], + + _ => panic!("Unexpected prefix: {}", prefix) + }; + + Ok(objects) + }); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/agency/hackathon/2021-08-22.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[45894628,45894617,45898413,45894627,45894712,45898423,45898424],\"actions\":[{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[45894617,45898413]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[45898423,45894627]},{\"action_kind\":\"DELETE_ACCOUNT\",\"block_heights\":[45894712]},{\"action_kind\":\"ADD_KEY\",\"block_heights\":[45894617,45898413]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[45894628,45894617,45898424,45898413]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[45898423,45894627]}]}".to_string())); + mock_s3_client + .expect_get_text_file() + .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string())) + .returning(|_bucket, _prefix| Ok("{\"heights\":[45898424,45898423,45898413,45894712],\"actions\":[{\"action_kind\":\"ADD_KEY\",\"block_heights\":[104616819]}]}".to_string())); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_heights = delta_lake_client + .list_matching_block_heights(45894628, "keypom.near, hackathon.agency.near") + .await + .unwrap(); + + assert_eq!( + block_heights, + vec![45894617, 45894627, 45894628, 45894712, 45898413, 45898423, 45898424] + ) + } + + #[tokio::test] + async fn gets_the_date_of_the_closest_block() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000106397175/block.json"), + ) + .times(1) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2021-05-26"))); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_date = delta_lake_client + .get_nearest_block_date(106397175) + .await + .unwrap(); + + assert_eq!(block_date, chrono::Utc.timestamp_nanos(1621987200000000000)); + } + + #[tokio::test] + async fn retires_if_a_block_doesnt_exist() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000106397175/block.json"), + ) + .times(1) + .returning(|_, _| { + Err(anyhow::anyhow!( + aws_sdk_s3::types::error::NoSuchKey::builder().build() + )) + }); + mock_s3_client + .expect_get_text_file() + .with( + predicate::eq("near-lake-data-mainnet"), + predicate::eq("000106397176/block.json"), + ) + .times(1) + .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2021-05-26"))); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let block_date = delta_lake_client + .get_nearest_block_date(106397175) + .await + .unwrap(); + + assert_eq!(block_date, chrono::Utc.timestamp_nanos(1621987200000000000)); + } + + #[tokio::test] + async fn exits_if_maximum_retries_exceeded() { + let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + + mock_s3_client + .expect_get_text_file() + .times(MAX_S3_RETRY_COUNT as usize) + .returning(|_, _| { + Err(anyhow::anyhow!( + aws_sdk_s3::types::error::NoSuchKey::builder().build() + )) + }); + + let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + + let result = delta_lake_client.get_nearest_block_date(106397175).await; + + assert!(result.is_err()); + } +} diff --git a/block-streamer/src/indexer_config.rs b/block-streamer/src/indexer_config.rs new file mode 100644 index 000000000..06328d69d --- /dev/null +++ b/block-streamer/src/indexer_config.rs @@ -0,0 +1,26 @@ +use crate::rules::IndexerRule; +use near_lake_framework::near_indexer_primitives::types::AccountId; + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub struct IndexerConfig { + pub account_id: AccountId, + pub function_name: String, + pub code: String, + pub start_block_height: Option, + pub schema: Option, + pub provisioned: bool, + pub indexer_rule: IndexerRule, +} + +impl IndexerConfig { + pub fn get_full_name(&self) -> String { + format!("{}/{}", self.account_id, self.function_name) + } +} diff --git a/block-streamer/src/main.rs b/block-streamer/src/main.rs new file mode 100644 index 000000000..c6efd3b51 --- /dev/null +++ b/block-streamer/src/main.rs @@ -0,0 +1,68 @@ +use tracing_subscriber::prelude::*; + +use crate::indexer_config::IndexerConfig; +use crate::rules::types::indexer_rule_match::ChainId; +use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule, Status}; + +mod block_stream; +mod delta_lake_client; +mod indexer_config; +mod redis; +mod rules; +mod s3_client; + +pub(crate) const LOG_TARGET: &str = "block_streamer"; + +#[tokio::main] +async fn main() -> anyhow::Result<()> { + tracing_subscriber::registry() + .with(tracing_subscriber::fmt::layer()) + .with(tracing_subscriber::EnvFilter::from_default_env()) + .init(); + + tracing::info!("Starting {}", crate::LOG_TARGET); + + let redis_connection_manager = redis::connect("redis://127.0.0.1").await?; + + let aws_config = aws_config::from_env().load().await; + let s3_client = crate::s3_client::S3Client::new(&aws_config); + + let delta_lake_client = crate::delta_lake_client::DeltaLakeClient::new(s3_client); + + let contract = "queryapi.dataplatform.near"; + let matching_rule = MatchingRule::ActionAny { + affected_account_id: contract.to_string(), + status: Status::Any, + }; + let filter_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule, + id: None, + name: None, + }; + let indexer = IndexerConfig { + account_id: "buildnear.testnet".to_string().parse().unwrap(), + function_name: "index_stuff".to_string(), + code: "".to_string(), + start_block_height: Some(85376002), + schema: None, + provisioned: false, + indexer_rule: filter_rule, + }; + + let mut streamer = block_stream::BlockStream::new(); + + streamer.start( + 106000000, + indexer, + redis_connection_manager, + delta_lake_client, + ChainId::Mainnet, + )?; + + streamer.take_handle().unwrap().await??; + + println!("done"); + + Ok(()) +} diff --git a/block-streamer/src/redis.rs b/block-streamer/src/redis.rs new file mode 100644 index 000000000..7fc8ccbe5 --- /dev/null +++ b/block-streamer/src/redis.rs @@ -0,0 +1,142 @@ +pub use redis::{self, aio::ConnectionManager, FromRedisValue, ToRedisArgs}; + +pub const LAKE_BUCKET_PREFIX: &str = "near-lake-data-"; +pub const STREAMS_SET_KEY: &str = "streams"; + +pub async fn get_redis_client(redis_connection_str: &str) -> redis::Client { + redis::Client::open(redis_connection_str).expect("can create redis client") +} + +pub fn generate_real_time_stream_key(prefix: &str) -> String { + format!("{}:real_time:stream", prefix) +} + +pub fn generate_real_time_streamer_message_key(block_height: u64) -> String { + format!("streamer:message:{}", block_height) +} + +pub fn generate_real_time_storage_key(prefix: &str) -> String { + format!("{}:real_time:stream:storage", prefix) +} + +pub fn generate_historical_stream_key(prefix: &str) -> String { + format!("{}:historical:stream", prefix) +} + +pub fn generate_historical_storage_key(prefix: &str) -> String { + format!("{}:historical:stream:storage", prefix) +} + +pub async fn connect(redis_connection_str: &str) -> anyhow::Result { + Ok(get_redis_client(redis_connection_str) + .await + .get_tokio_connection_manager() + .await?) +} + +pub async fn del( + redis_connection_manager: &ConnectionManager, + key: impl ToRedisArgs + std::fmt::Debug, +) -> anyhow::Result<()> { + redis::cmd("DEL") + .arg(&key) + .query_async(&mut redis_connection_manager.clone()) + .await?; + tracing::debug!("DEL: {:?}", key); + Ok(()) +} + +pub async fn set( + redis_connection_manager: &ConnectionManager, + key: impl ToRedisArgs + std::fmt::Debug, + value: impl ToRedisArgs + std::fmt::Debug, + expiration_seconds: Option, +) -> anyhow::Result<()> { + let mut cmd = redis::cmd("SET"); + cmd.arg(&key).arg(&value); + + // Add expiration arguments if present + if let Some(expiration_seconds) = expiration_seconds { + cmd.arg("EX").arg(expiration_seconds); + } + + cmd.query_async(&mut redis_connection_manager.clone()) + .await?; + tracing::debug!("SET: {:?}: {:?} Ex: {:?}", key, value, expiration_seconds); + Ok(()) +} + +pub async fn get( + redis_connection_manager: &ConnectionManager, + key: impl ToRedisArgs + std::fmt::Debug, +) -> anyhow::Result { + let value: V = redis::cmd("GET") + .arg(&key) + .query_async(&mut redis_connection_manager.clone()) + .await?; + tracing::debug!("GET: {:?}: {:?}", &key, &value,); + Ok(value) +} + +pub async fn sadd( + redis_connection_manager: &ConnectionManager, + key: impl ToRedisArgs + std::fmt::Debug, + value: impl ToRedisArgs + std::fmt::Debug, +) -> anyhow::Result<()> { + tracing::debug!("SADD: {:?}: {:?}", key, value); + + redis::cmd("SADD") + .arg(key) + .arg(value) + .query_async(&mut redis_connection_manager.clone()) + .await?; + + Ok(()) +} + +pub async fn xadd( + redis_connection_manager: &ConnectionManager, + stream_key: impl ToRedisArgs + std::fmt::Debug, + fields: &[(&str, impl ToRedisArgs + std::fmt::Debug)], +) -> anyhow::Result<()> { + tracing::debug!("XADD: {:?}, {:?}", stream_key, fields); + + let mut cmd = redis::cmd("XADD"); + cmd.arg(stream_key).arg("*"); + + for (field, value) in fields { + cmd.arg(*field).arg(value); + } + + cmd.query_async(&mut redis_connection_manager.clone()) + .await?; + + Ok(()) +} + +pub async fn update_last_indexed_block( + redis_connection_manager: &ConnectionManager, + block_height: u64, +) -> anyhow::Result<()> { + set( + redis_connection_manager, + "last_indexed_block", + block_height, + None, + ) + .await?; + redis::cmd("INCR") + .arg("blocks_processed") + .query_async(&mut redis_connection_manager.clone()) + .await?; + Ok(()) +} + +pub async fn get_last_indexed_block( + redis_connection_manager: &ConnectionManager, +) -> anyhow::Result { + Ok(redis::cmd("GET") + .arg("last_indexed_block") + .query_async(&mut redis_connection_manager.clone()) + .await?) +} diff --git a/block-streamer/src/rules/matcher.rs b/block-streamer/src/rules/matcher.rs new file mode 100644 index 000000000..ee1149a4d --- /dev/null +++ b/block-streamer/src/rules/matcher.rs @@ -0,0 +1,141 @@ +use near_lake_framework::near_indexer_primitives::{ + views::{ActionView, ExecutionStatusView, ReceiptEnumView}, + IndexerExecutionOutcomeWithReceipt, +}; + +use crate::rules::types::events::Event; +use crate::rules::{MatchingRule, Status}; + +pub fn matches( + matching_rule: &MatchingRule, + receipt_execution_outcome: &IndexerExecutionOutcomeWithReceipt, +) -> bool { + match matching_rule { + MatchingRule::ActionAny { + affected_account_id, + status, + } => match_action_any(affected_account_id, status, receipt_execution_outcome), + MatchingRule::ActionFunctionCall { + affected_account_id, + status, + function, + } => match_action_function_call( + affected_account_id, + status, + function, + receipt_execution_outcome, + ), + MatchingRule::Event { + contract_account_id, + event, + standard, + version, + } => match_event( + contract_account_id, + event, + standard, + version, + receipt_execution_outcome, + ), + } +} + +fn match_action_any( + account_id: &str, + status: &Status, + outcome_with_receipt: &IndexerExecutionOutcomeWithReceipt, +) -> bool { + if match_account(account_id, outcome_with_receipt) { + return match_status( + status, + &outcome_with_receipt.execution_outcome.outcome.status, + ); + } + false +} + +fn match_action_function_call( + account_id: &str, + status: &Status, + function: &str, + outcome_with_receipt: &IndexerExecutionOutcomeWithReceipt, +) -> bool { + if match_account(account_id, outcome_with_receipt) { + if let ReceiptEnumView::Action { actions, .. } = &outcome_with_receipt.receipt.receipt { + let is_any_matching_function_call = actions.iter().any(|action| { + if let ActionView::FunctionCall { method_name, .. } = action { + wildmatch::WildMatch::new(function).matches(method_name) + } else { + false + } + }); + if is_any_matching_function_call { + return match_status( + status, + &outcome_with_receipt.execution_outcome.outcome.status, + ); + } else { + return false; + } + } + } + false +} + +fn match_event( + account_id: &str, + event: &str, + standard: &str, + version: &str, + outcome_with_receipt: &IndexerExecutionOutcomeWithReceipt, +) -> bool { + if match_account(account_id, outcome_with_receipt) { + outcome_with_receipt + .execution_outcome + .outcome + .logs + .iter() + .filter_map(|log| Event::from_log(log).ok()) + .any(|near_event| { + vec![ + wildmatch::WildMatch::new(event).matches(&near_event.event), + wildmatch::WildMatch::new(standard).matches(&near_event.standard), + wildmatch::WildMatch::new(version).matches(&near_event.version), + ] + .into_iter() + .all(|val| val) + }) + } else { + false + } +} + +fn match_account( + account_id: &str, + outcome_with_receipt: &IndexerExecutionOutcomeWithReceipt, +) -> bool { + match account_id { + x if x.contains(',') => x + .split(',') + .any(|sub_account_id| match_account(sub_account_id.trim(), outcome_with_receipt)), + _ => { + wildmatch::WildMatch::new(account_id).matches(&outcome_with_receipt.receipt.receiver_id) + || wildmatch::WildMatch::new(account_id) + .matches(&outcome_with_receipt.receipt.predecessor_id) + } + } +} + +fn match_status(status: &Status, execution_outcome_status: &ExecutionStatusView) -> bool { + match status { + Status::Any => true, + Status::Success => matches!( + execution_outcome_status, + ExecutionStatusView::SuccessValue(_) | ExecutionStatusView::SuccessReceiptId(_) + ), + Status::Fail => !matches!( + execution_outcome_status, + ExecutionStatusView::SuccessValue(_) | ExecutionStatusView::SuccessReceiptId(_) + ), + } +} diff --git a/block-streamer/src/rules/mod.rs b/block-streamer/src/rules/mod.rs new file mode 100644 index 000000000..a5b0e9292 --- /dev/null +++ b/block-streamer/src/rules/mod.rs @@ -0,0 +1,79 @@ +pub mod matcher; +pub mod outcomes_reducer; +pub mod types; + +use near_lake_framework::near_indexer_primitives::StreamerMessage; +use types::indexer_rule_match::{ChainId, IndexerRuleMatch}; + +#[cfg(not(feature = "near-sdk"))] +use borsh::{self, BorshDeserialize, BorshSerialize}; +#[cfg(not(feature = "near-sdk"))] +use serde::{Deserialize, Serialize}; + +#[cfg(feature = "near-sdk")] +use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +#[cfg(feature = "near-sdk")] +use near_sdk::serde::{Deserialize, Serialize}; + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +pub struct IndexerRule { + pub indexer_rule_kind: IndexerRuleKind, + pub matching_rule: MatchingRule, + pub id: Option, + pub name: Option, +} + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +pub enum IndexerRuleKind { + Action, + Event, + AnyBlock, + Shard, +} +// future: ComposedRuleKind for multiple actions or events + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +pub enum Status { + Any, + Success, + Fail, +} + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +#[serde(tag = "rule", rename_all = "SCREAMING_SNAKE_CASE")] +pub enum MatchingRule { + ActionAny { + affected_account_id: String, + status: Status, + }, + ActionFunctionCall { + affected_account_id: String, + status: Status, + function: String, + }, + Event { + contract_account_id: String, + standard: String, + version: String, + event: String, + }, +} + +pub fn reduce_indexer_rule_matches( + indexer_rule: &IndexerRule, + streamer_message: &StreamerMessage, + chain_id: ChainId, +) -> Vec { + match &indexer_rule.matching_rule { + MatchingRule::ActionAny { .. } + | MatchingRule::ActionFunctionCall { .. } + | MatchingRule::Event { .. } => { + outcomes_reducer::reduce_indexer_rule_matches_from_outcomes( + indexer_rule, + streamer_message, + chain_id, + ) + } + } +} diff --git a/block-streamer/src/rules/outcomes_reducer.rs b/block-streamer/src/rules/outcomes_reducer.rs new file mode 100644 index 000000000..84d62ca11 --- /dev/null +++ b/block-streamer/src/rules/outcomes_reducer.rs @@ -0,0 +1,262 @@ +use crate::rules::matcher; +use crate::rules::types::events::Event; +use crate::rules::types::indexer_rule_match::{ChainId, IndexerRuleMatch, IndexerRuleMatchPayload}; +use crate::rules::{IndexerRule, MatchingRule}; +use near_lake_framework::near_indexer_primitives::{ + IndexerExecutionOutcomeWithReceipt, StreamerMessage, +}; + +pub fn reduce_indexer_rule_matches_from_outcomes( + indexer_rule: &IndexerRule, + streamer_message: &StreamerMessage, + chain_id: ChainId, +) -> Vec { + streamer_message + .shards + .iter() + .flat_map(|shard| { + shard + .receipt_execution_outcomes + .iter() + // future: when extracting Actions, Events, etc this will be a filter operation + .find(|receipt_execution_outcome| { + matcher::matches(&indexer_rule.matching_rule, receipt_execution_outcome) + }) + }) + .map(|receipt_execution_outcome| { + build_indexer_rule_match( + indexer_rule, + receipt_execution_outcome, + streamer_message.block.header.hash.to_string(), + streamer_message.block.header.height, + chain_id.clone(), + ) + }) + .collect() +} + +fn build_indexer_rule_match( + indexer_rule: &IndexerRule, + receipt_execution_outcome: &IndexerExecutionOutcomeWithReceipt, + block_header_hash: String, + block_height: u64, + chain_id: ChainId, +) -> IndexerRuleMatch { + IndexerRuleMatch { + chain_id, + indexer_rule_id: indexer_rule.id, + indexer_rule_name: indexer_rule.name.clone(), + payload: build_indexer_rule_match_payload( + indexer_rule, + receipt_execution_outcome, + block_header_hash, + ), + block_height, + } +} + +fn build_indexer_rule_match_payload( + indexer_rule: &IndexerRule, + receipt_execution_outcome: &IndexerExecutionOutcomeWithReceipt, + block_header_hash: String, +) -> IndexerRuleMatchPayload { + // future enhancement will extract and enrich fields from block & context as + // specified in the indexer function config. + let transaction_hash = None; + + match &indexer_rule.matching_rule { + MatchingRule::ActionAny { .. } | MatchingRule::ActionFunctionCall { .. } => { + IndexerRuleMatchPayload::Actions { + block_hash: block_header_hash, + receipt_id: receipt_execution_outcome.receipt.receipt_id.to_string(), + transaction_hash, + } + } + MatchingRule::Event { + event, + standard, + version, + .. + } => { + let event = receipt_execution_outcome + .execution_outcome + .outcome + .logs + .iter() + .filter_map(|log| Event::from_log(log).ok()) + .filter_map(|near_event| { + if vec![ + wildmatch::WildMatch::new(event).matches(&near_event.event), + wildmatch::WildMatch::new(standard).matches(&near_event.standard), + wildmatch::WildMatch::new(version).matches(&near_event.version), + ].into_iter().all(|val| val) { + Some(near_event) + } else { + None + } + }) + .collect::>() + .first() + .expect("Failed to get the matched Event itself while building the IndexerRuleMatchPayload") + .clone(); + + IndexerRuleMatchPayload::Events { + block_hash: block_header_hash, + receipt_id: receipt_execution_outcome.receipt.receipt_id.to_string(), + transaction_hash, + event: event.event.clone(), + standard: event.standard.clone(), + version: event.version.clone(), + data: event.data.as_ref().map(|data| data.to_string()), + } + } + } +} + +#[cfg(test)] +mod tests { + use crate::rules::outcomes_reducer::reduce_indexer_rule_matches_from_outcomes; + use crate::rules::types::indexer_rule_match::{ChainId, IndexerRuleMatch}; + use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule, Status}; + use near_lake_framework::near_indexer_primitives::StreamerMessage; + + fn read_local_file(path: &str) -> String { + std::fs::read_to_string(path).unwrap() + } + fn read_local_streamer_message(block_height: u64) -> StreamerMessage { + let path = format!( + "{}/blocks/{}.json", + env!("CARGO_MANIFEST_DIR"), + block_height + ); + serde_json::from_str(&read_local_file(&path)).unwrap() + } + + #[tokio::test] + async fn match_wildcard_no_match() { + let wildcard_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule: MatchingRule::ActionAny { + affected_account_id: "*.nearcrow.near".to_string(), + status: Status::Success, + }, + id: None, + name: None, + }; + + let streamer_message = read_local_streamer_message(93085141); + let result: Vec = reduce_indexer_rule_matches_from_outcomes( + &wildcard_rule, + &streamer_message, + ChainId::Testnet, + ); + + assert_eq!(result.len(), 0); + } + + #[tokio::test] + async fn match_wildcard_contract_subaccount_name() { + let wildcard_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule: MatchingRule::ActionAny { + affected_account_id: "*.nearcrowd.near".to_string(), + status: Status::Success, + }, + id: None, + name: None, + }; + + let streamer_message = read_local_streamer_message(93085141); + let result: Vec = reduce_indexer_rule_matches_from_outcomes( + &wildcard_rule, + &streamer_message, + ChainId::Testnet, + ); + + assert_eq!(result.len(), 1); // There are two matches, until we add Extraction we are just matching the first one (block matching) + } + + #[tokio::test] + async fn match_wildcard_mid_contract_name() { + let wildcard_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule: MatchingRule::ActionAny { + affected_account_id: "*crowd.near".to_string(), + status: Status::Success, + }, + id: None, + name: None, + }; + + let streamer_message = read_local_streamer_message(93085141); + let result: Vec = reduce_indexer_rule_matches_from_outcomes( + &wildcard_rule, + &streamer_message, + ChainId::Testnet, + ); + + assert_eq!(result.len(), 1); // see Extraction note in previous test + + let wildcard_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule: MatchingRule::ActionAny { + affected_account_id: "app.nea*owd.near".to_string(), + status: Status::Success, + }, + id: None, + name: None, + }; + + let result: Vec = reduce_indexer_rule_matches_from_outcomes( + &wildcard_rule, + &streamer_message, + ChainId::Testnet, + ); + + assert_eq!(result.len(), 1); // see Extraction note in previous test + } + + #[tokio::test] + async fn match_csv_account() { + let wildcard_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule: MatchingRule::ActionAny { + affected_account_id: "notintheblockaccount.near, app.nearcrowd.near".to_string(), + status: Status::Success, + }, + id: None, + name: None, + }; + + let streamer_message = read_local_streamer_message(93085141); + let result: Vec = reduce_indexer_rule_matches_from_outcomes( + &wildcard_rule, + &streamer_message, + ChainId::Testnet, + ); + + assert_eq!(result.len(), 1); // There are two matches, until we add Extraction we are just matching the first one (block matching) + } + + #[tokio::test] + async fn match_csv_wildcard_account() { + let wildcard_rule = IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule: MatchingRule::ActionAny { + affected_account_id: "notintheblockaccount.near, *.nearcrowd.near".to_string(), + status: Status::Success, + }, + id: None, + name: None, + }; + + let streamer_message = read_local_streamer_message(93085141); + let result: Vec = reduce_indexer_rule_matches_from_outcomes( + &wildcard_rule, + &streamer_message, + ChainId::Testnet, + ); + + assert_eq!(result.len(), 1); // There are two matches, until we add Extraction we are just matching the first one (block matching) + } +} diff --git a/block-streamer/src/rules/types/events.rs b/block-streamer/src/rules/types/events.rs new file mode 100644 index 000000000..68bb176d0 --- /dev/null +++ b/block-streamer/src/rules/types/events.rs @@ -0,0 +1,20 @@ +#[derive(serde::Serialize, serde::Deserialize, Clone, Debug)] +pub struct Event { + pub event: String, + pub standard: String, + pub version: String, + pub data: Option, +} + +impl Event { + pub fn from_log(log: &str) -> anyhow::Result { + let prefix = "EVENT_JSON:"; + if !log.starts_with(prefix) { + anyhow::bail!("log message doesn't start from required prefix"); + } + + Ok(serde_json::from_str::<'_, Self>( + log[prefix.len()..].trim(), + )?) + } +} diff --git a/block-streamer/src/rules/types/indexer_rule_match.rs b/block-streamer/src/rules/types/indexer_rule_match.rs new file mode 100644 index 000000000..985f925a2 --- /dev/null +++ b/block-streamer/src/rules/types/indexer_rule_match.rs @@ -0,0 +1,146 @@ +use std::fmt; + +pub type TransactionHashString = String; +pub type ReceiptIdString = String; +pub type BlockHashString = String; + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub struct IndexerRuleMatch { + pub chain_id: ChainId, + pub indexer_rule_id: Option, + pub indexer_rule_name: Option, + pub payload: IndexerRuleMatchPayload, + pub block_height: u64, +} + +impl IndexerRuleMatch { + pub fn explorer_link(&self) -> String { + match self.chain_id { + ChainId::Testnet => { + if let Some(tx_hash) = self.payload.transaction_hash() { + if let Some(receipt_id) = self.payload.receipt_id() { + format!( + "https://explorer.testnet.near.org/transactions/{}#{}", + tx_hash, receipt_id, + ) + } else { + format!("https://explorer.testnet.near.org/transactions/{}", tx_hash) + } + } else { + format!( + "https://explorer.testnet.near.org/block/{}", + self.payload.block_hash() + ) + } + } + ChainId::Mainnet => { + if let Some(tx_hash) = self.payload.transaction_hash() { + if let Some(receipt_id) = self.payload.receipt_id() { + format!( + "https://explorer.near.org/transactions/{}#{}", + tx_hash, receipt_id, + ) + } else { + format!("https://explorer.near.org/transactions/{}", tx_hash) + } + } else { + format!( + "https://explorer.near.org/block/{}", + self.payload.block_hash() + ) + } + } + } + } +} + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub enum IndexerRuleMatchPayload { + Actions { + block_hash: BlockHashString, + receipt_id: ReceiptIdString, + transaction_hash: Option, + }, + Events { + block_hash: BlockHashString, + receipt_id: ReceiptIdString, + transaction_hash: Option, + event: String, + standard: String, + version: String, + data: Option, + }, + StateChanges { + block_hash: BlockHashString, + receipt_id: Option, + transaction_hash: Option, + }, +} + +impl IndexerRuleMatchPayload { + pub fn block_hash(&self) -> BlockHashString { + match self { + Self::Actions { block_hash, .. } + | Self::Events { block_hash, .. } + | Self::StateChanges { block_hash, .. } => block_hash.to_string(), + } + } + + pub fn receipt_id(&self) -> Option { + match self { + Self::Actions { receipt_id, .. } | Self::Events { receipt_id, .. } => { + Some(receipt_id.to_string()) + } + Self::StateChanges { receipt_id, .. } => receipt_id.clone(), + } + } + + pub fn transaction_hash(&self) -> Option { + match self { + Self::Actions { + transaction_hash, .. + } + | Self::Events { + transaction_hash, .. + } + | Self::StateChanges { + transaction_hash, .. + } => transaction_hash.clone(), + } + } +} + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub enum ChainId { + Mainnet, + Testnet, +} +impl fmt::Display for ChainId { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + ChainId::Mainnet => write!(f, "mainnet"), + ChainId::Testnet => write!(f, "testnet"), + } + } +} diff --git a/block-streamer/src/rules/types/mod.rs b/block-streamer/src/rules/types/mod.rs new file mode 100644 index 000000000..d82357aff --- /dev/null +++ b/block-streamer/src/rules/types/mod.rs @@ -0,0 +1,3 @@ +pub mod events; +pub mod indexer_rule_match; +pub mod transactions; diff --git a/block-streamer/src/rules/types/transactions.rs b/block-streamer/src/rules/types/transactions.rs new file mode 100644 index 000000000..7f9ddd30b --- /dev/null +++ b/block-streamer/src/rules/types/transactions.rs @@ -0,0 +1,20 @@ +use borsh::{BorshDeserialize, BorshSerialize}; +use near_lake_framework::near_indexer_primitives::{views, IndexerTransactionWithOutcome}; +use serde::{Deserialize, Serialize}; + +#[derive(BorshSerialize, BorshDeserialize, Serialize, Deserialize, Debug, Clone)] +pub struct TransactionDetails { + pub transaction: views::SignedTransactionView, + pub receipts: Vec, + pub execution_outcomes: Vec, +} + +impl TransactionDetails { + pub fn from_indexer_tx(transaction: IndexerTransactionWithOutcome) -> Self { + Self { + transaction: transaction.transaction.clone(), + receipts: vec![], + execution_outcomes: vec![transaction.outcome.execution_outcome], + } + } +} diff --git a/block-streamer/src/s3_client.rs b/block-streamer/src/s3_client.rs new file mode 100644 index 000000000..f3c72e436 --- /dev/null +++ b/block-streamer/src/s3_client.rs @@ -0,0 +1,134 @@ +const MAX_S3_LIST_REQUESTS: usize = 1000; + +#[mockall::automock] +#[async_trait::async_trait] +pub trait S3ClientTrait { + async fn get_object( + &self, + bucket: &str, + prefix: &str, + ) -> Result< + aws_sdk_s3::operation::get_object::GetObjectOutput, + aws_sdk_s3::error::SdkError, + >; + + async fn list_objects( + &self, + bucket: &str, + prefix: &str, + continuation_token: Option, + ) -> Result< + aws_sdk_s3::operation::list_objects_v2::ListObjectsV2Output, + aws_sdk_s3::error::SdkError, + >; + + async fn get_text_file(&self, bucket: &str, prefix: &str) -> anyhow::Result; + + async fn list_all_objects(&self, bucket: &str, prefix: &str) -> anyhow::Result>; +} + +#[derive(Clone, Debug)] +pub struct S3Client { + client: aws_sdk_s3::Client, +} + +impl S3Client { + pub fn new(aws_config: &aws_types::sdk_config::SdkConfig) -> Self { + Self { + client: aws_sdk_s3::Client::new(aws_config), + } + } +} + +#[async_trait::async_trait] +impl S3ClientTrait for S3Client { + async fn get_object( + &self, + bucket: &str, + prefix: &str, + ) -> Result< + aws_sdk_s3::operation::get_object::GetObjectOutput, + aws_sdk_s3::error::SdkError, + > { + self.client + .get_object() + .bucket(bucket) + .key(prefix) + .send() + .await + } + + async fn list_objects( + &self, + bucket: &str, + prefix: &str, + continuation_token: Option, + ) -> Result< + aws_sdk_s3::operation::list_objects_v2::ListObjectsV2Output, + aws_sdk_s3::error::SdkError, + > { + let mut builder = self + .client + .list_objects_v2() + .delimiter("/") + .bucket(bucket) + .prefix(prefix); + + if let Some(token) = continuation_token { + builder = builder.continuation_token(token); + } + + builder.send().await + } + + async fn get_text_file(&self, bucket: &str, prefix: &str) -> anyhow::Result { + let object = self.get_object(bucket, prefix).await?; + + let bytes = object.body.collect().await?; + + Ok(String::from_utf8(bytes.to_vec())?) + } + + async fn list_all_objects(&self, bucket: &str, prefix: &str) -> anyhow::Result> { + let mut results = vec![]; + let mut continuation_token: Option = None; + + let mut counter = 0; + loop { + if counter > MAX_S3_LIST_REQUESTS { + anyhow::bail!("Exceeded internal limit of {MAX_S3_LIST_REQUESTS}") + } + + let list = self + .list_objects(bucket, prefix, continuation_token) + .await?; + + if let Some(common_prefixes) = list.common_prefixes { + let keys: Vec = common_prefixes + .into_iter() + .filter_map(|common_prefix| common_prefix.prefix) + .collect(); + + results.extend(keys); + } + + if let Some(objects) = list.contents { + let keys: Vec = objects + .into_iter() + .filter_map(|object| object.key) + .collect(); + + results.extend(keys); + } + + if list.next_continuation_token.is_some() { + continuation_token = list.next_continuation_token; + counter += 1; + } else { + break; + } + } + + Ok(results) + } +} From 13030137c66ab1711cc444213b91a6e8b82b1b07 Mon Sep 17 00:00:00 2001 From: dsuggs-near <148899138+dsuggs-near@users.noreply.github.com> Date: Wed, 13 Dec 2023 17:10:55 -0500 Subject: [PATCH 04/10] [Snyk] Security upgrade node from 18.17 to 18.18.2 (#383) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit

This PR was automatically created by Snyk using the credentials of a real user.


Keeping your Docker base image up-to-date means you’ll benefit from security fixes in the latest version of your chosen image. #### Changes included in this PR - runner/Dockerfile We recommend upgrading to `node:18.18.2`, as this image has only 155 known vulnerabilities. To do this, merge this pull request, then verify your application still works as expected. Some of the most important vulnerabilities in your base image include: | Severity | Priority Score / 1000 | Issue | Exploit Maturity | | :------: | :-------------------- | :---- | :--------------- | | ![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **852** | Out-of-bounds Write
[SNYK-DEBIAN12-LIBWEBP-5893095](https://snyk.io/vuln/SNYK-DEBIAN12-LIBWEBP-5893095) | Mature | | ![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **852** | Out-of-bounds Write
[SNYK-DEBIAN12-LIBWEBP-5893095](https://snyk.io/vuln/SNYK-DEBIAN12-LIBWEBP-5893095) | Mature | | ![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **852** | Out-of-bounds Write
[SNYK-DEBIAN12-LIBWEBP-5893095](https://snyk.io/vuln/SNYK-DEBIAN12-LIBWEBP-5893095) | Mature | | ![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **852** | Out-of-bounds Write
[SNYK-DEBIAN12-LIBWEBP-5893095](https://snyk.io/vuln/SNYK-DEBIAN12-LIBWEBP-5893095) | Mature | | ![high severity](https://res.cloudinary.com/snyk/image/upload/w_20,h_20/v1561977819/icon/h.png "high severity") | **600** | Resource Exhaustion
[SNYK-DEBIAN12-NGHTTP2-5953379](https://snyk.io/vuln/SNYK-DEBIAN12-NGHTTP2-5953379) | Mature | --- **Note:** _You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs._ For more information: 🧐 [View latest project report](https://app.snyk.io/org/pagoda-pilot/project/7b2bf28a-8d8c-4d66-bba4-4e997309ba53?utm_source=github-enterprise&utm_medium=referral&page=fix-pr) 🛠 [Adjust project settings](https://app.snyk.io/org/pagoda-pilot/project/7b2bf28a-8d8c-4d66-bba4-4e997309ba53?utm_source=github-enterprise&utm_medium=referral&page=fix-pr/settings) [//]: # 'snyk:metadata:{"prId":"d2f243c1-7c13-48b1-a40a-6938d252b366","prPublicId":"d2f243c1-7c13-48b1-a40a-6938d252b366","dependencies":[{"name":"node","from":"18.17","to":"18.18.2"}],"packageManager":"dockerfile","projectPublicId":"7b2bf28a-8d8c-4d66-bba4-4e997309ba53","projectUrl":"https://app.snyk.io/org/pagoda-pilot/project/7b2bf28a-8d8c-4d66-bba4-4e997309ba53?utm_source=github-enterprise&utm_medium=referral&page=fix-pr","type":"user-initiated","patch":[],"vulns":["SNYK-DEBIAN12-LIBWEBP-5893095","SNYK-DEBIAN12-NGHTTP2-5953379"],"upgrade":["SNYK-DEBIAN12-LIBWEBP-5893095","SNYK-DEBIAN12-LIBWEBP-5893095","SNYK-DEBIAN12-LIBWEBP-5893095","SNYK-DEBIAN12-LIBWEBP-5893095","SNYK-DEBIAN12-NGHTTP2-5953379"],"isBreakingChange":false,"env":"prod","prType":"fix","templateVariants":["updated-fix-title","priorityScore"],"priorityScoreList":[852,600],"remediationStrategy":"vuln"}' --- **Learn how to fix vulnerabilities with free interactive lessons:** 🦉 [Resource Exhaustion](https://learn.snyk.io/lesson/redos/?loc=fix-pr) Co-authored-by: snyk-bot --- runner/Dockerfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/runner/Dockerfile b/runner/Dockerfile index 883e0499b..779b3adde 100644 --- a/runner/Dockerfile +++ b/runner/Dockerfile @@ -1,10 +1,10 @@ -FROM node:18.17 AS builder +FROM node:18.18.2 AS builder WORKDIR /usr/src/app COPY . . RUN npm install RUN npm run build -FROM node:18.17 +FROM node:18.18.2 WORKDIR /usr/src/app COPY --from=builder /usr/src/app/package*.json ./ RUN npm install --omit=dev From 9c5ee151a6b7debdd391d5c94424498cc9cd241c Mon Sep 17 00:00:00 2001 From: Morgan McCauley Date: Thu, 14 Dec 2023 13:13:43 +1300 Subject: [PATCH 05/10] feat: Expose endpoint to control streams (#430) This PR exposes a gRPC endpoint for the Block Streamer service to provide control over individual Block Streams. There are currently 3 methods: start/stop/list. The functionality across these methods is quite basic, I didn't want to spend too much time fleshing them out as I'm still not certain on how exactly they will be used. I expect them to Change once the Control Plane starts using them. --- block-streamer/Cargo.lock | 298 +++++++++++++++++- block-streamer/Cargo.toml | 5 + block-streamer/build.rs | 5 + block-streamer/examples/list_streams.rs | 17 + block-streamer/examples/start_stream.rs | 25 ++ block-streamer/examples/stop_stream.rs | 20 ++ block-streamer/proto/block_streamer.proto | 93 ++++++ block-streamer/src/block_stream.rs | 25 +- block-streamer/src/delta_lake_client.rs | 3 +- block-streamer/src/indexer_config.rs | 19 +- block-streamer/src/lib.rs | 5 + block-streamer/src/main.rs | 44 +-- .../src/server/block_streamer_service.rs | 190 +++++++++++ block-streamer/src/server/mod.rs | 29 ++ 14 files changed, 721 insertions(+), 57 deletions(-) create mode 100644 block-streamer/build.rs create mode 100644 block-streamer/examples/list_streams.rs create mode 100644 block-streamer/examples/start_stream.rs create mode 100644 block-streamer/examples/stop_stream.rs create mode 100644 block-streamer/proto/block_streamer.proto create mode 100644 block-streamer/src/lib.rs create mode 100644 block-streamer/src/server/block_streamer_service.rs create mode 100644 block-streamer/src/server/mod.rs diff --git a/block-streamer/Cargo.lock b/block-streamer/Cargo.lock index b96492ead..0035120f2 100644 --- a/block-streamer/Cargo.lock +++ b/block-streamer/Cargo.lock @@ -836,6 +836,51 @@ dependencies = [ "tracing", ] +[[package]] +name = "axum" +version = "0.6.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +dependencies = [ + "async-trait", + "axum-core", + "bitflags 1.3.2", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde", + "sync_wrapper", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + [[package]] name = "base16ct" version = "0.1.1" @@ -879,6 +924,12 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + [[package]] name = "blake2" version = "0.9.2" @@ -924,12 +975,15 @@ dependencies = [ "futures", "mockall", "near-lake-framework", + "prost", "redis", "serde", "serde_json", "tokio", "tokio-stream", "tokio-util", + "tonic", + "tonic-build", "tracing", "tracing-subscriber", "wildmatch", @@ -1472,6 +1526,16 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "errno" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "fastrand" version = "1.9.0" @@ -1506,6 +1570,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + [[package]] name = "float-cmp" version = "0.9.0" @@ -1748,6 +1818,15 @@ dependencies = [ "digest 0.10.7", ] +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys", +] + [[package]] name = "http" version = "0.2.11" @@ -1837,6 +1916,18 @@ dependencies = [ "tokio-rustls 0.24.1", ] +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + [[package]] name = "iana-time-zone" version = "0.1.58" @@ -1949,6 +2040,12 @@ version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" +[[package]] +name = "linux-raw-sys" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" + [[package]] name = "log" version = "0.4.20" @@ -1964,6 +2061,12 @@ dependencies = [ "regex-automata 0.1.10", ] +[[package]] +name = "matchit" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94" + [[package]] name = "md-5" version = "0.10.6" @@ -1980,6 +2083,12 @@ version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + [[package]] name = "mio" version = "0.8.9" @@ -2018,6 +2127,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + [[package]] name = "near-account-id" version = "0.17.0" @@ -2335,6 +2450,16 @@ version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + [[package]] name = "pin-project" version = "1.1.3" @@ -2419,6 +2544,16 @@ dependencies = [ "termtree", ] +[[package]] +name = "prettyplease" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" +dependencies = [ + "proc-macro2", + "syn 2.0.39", +] + [[package]] name = "primitive-types" version = "0.10.1" @@ -2447,6 +2582,60 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "prost" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "146c289cda302b98a28d40c8b3b90498d6e526dd24ac2ecea73e4e491685b94a" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c55e02e35260070b6f716a2423c2ff1c3bb1642ddca6f99e1f26d06268a0e2d2" +dependencies = [ + "bytes", + "heck", + "itertools", + "log", + "multimap", + "once_cell", + "petgraph", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 2.0.39", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efb6c9a1dd1def8e2124d17e83a20af56f1570d6c2d2bd9e266ccb768df3840e" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 2.0.39", +] + +[[package]] +name = "prost-types" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193898f59edcf43c26227dcd4c8427f00d99d61e95dcde58dabd49fa291d470e" +dependencies = [ + "prost", +] + [[package]] name = "quote" version = "1.0.33" @@ -2549,6 +2738,15 @@ dependencies = [ "url", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "reed-solomon-erasure" version = "4.0.2" @@ -2651,6 +2849,19 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.38.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys", +] + [[package]] name = "rustls" version = "0.20.9" @@ -2776,7 +2987,7 @@ version = "2.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" dependencies = [ - "bitflags", + "bitflags 1.3.2", "core-foundation", "core-foundation-sys", "libc", @@ -3090,6 +3301,25 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand 2.0.1", + "redox_syscall", + "rustix", + "windows-sys", +] + [[package]] name = "termtree" version = "0.4.1" @@ -3188,6 +3418,16 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + [[package]] name = "tokio-macros" version = "2.1.0" @@ -3254,6 +3494,46 @@ dependencies = [ "serde", ] +[[package]] +name = "tonic" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d560933a0de61cf715926b9cac824d4c883c2c43142f787595e48280c40a1d0e" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64", + "bytes", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-build" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d021fc044c18582b9a2408cd0dd05b1596e3ecdb5c4df822bb0183545683889" +dependencies = [ + "prettyplease", + "proc-macro2", + "prost-build", + "quote", + "syn 2.0.39", +] + [[package]] name = "tower" version = "0.4.13" @@ -3262,9 +3542,13 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", + "indexmap 1.9.3", "pin-project", "pin-project-lite", + "rand 0.8.5", + "slab", "tokio", + "tokio-util", "tower-layer", "tower-service", "tracing", @@ -3543,6 +3827,18 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "wildmatch" version = "2.1.1" diff --git a/block-streamer/Cargo.toml b/block-streamer/Cargo.toml index 2335b81f5..73db949bb 100644 --- a/block-streamer/Cargo.toml +++ b/block-streamer/Cargo.toml @@ -15,6 +15,7 @@ borsh = "0.10.2" chrono = "0.4.25" futures = "0.3.5" mockall = "0.11.4" +prost = "0.12.3" redis = { version = "0.21.5", features = ["tokio-comp", "connection-manager"] } serde = { version = "1", features = ["derive"] } serde_json = "1.0.55" @@ -23,6 +24,10 @@ tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } tokio = { version = "1.28.0", features = ["rt-multi-thread"]} tokio-util = "0.7.10" tokio-stream = "0.1.14" +tonic = "0.10.2" wildmatch = "2.1.1" near-lake-framework = "0.7.1" + +[build-dependencies] +tonic-build = "0.10" diff --git a/block-streamer/build.rs b/block-streamer/build.rs new file mode 100644 index 000000000..4683c5353 --- /dev/null +++ b/block-streamer/build.rs @@ -0,0 +1,5 @@ +fn main() -> Result<(), Box> { + tonic_build::compile_protos("proto/block_streamer.proto")?; + + Ok(()) +} diff --git a/block-streamer/examples/list_streams.rs b/block-streamer/examples/list_streams.rs new file mode 100644 index 000000000..16cde7d0f --- /dev/null +++ b/block-streamer/examples/list_streams.rs @@ -0,0 +1,17 @@ +use tonic::Request; + +use block_streamer::block_streamer_client::BlockStreamerClient; +use block_streamer::{start_stream_request::Rule, ActionAnyRule, ListStreamsRequest, Status}; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let mut client = BlockStreamerClient::connect("http://[::1]:10000").await?; + + let response = client + .list_streams(Request::new(ListStreamsRequest {})) + .await?; + + println!("RESPONSE = {:#?}", response); + + Ok(()) +} diff --git a/block-streamer/examples/start_stream.rs b/block-streamer/examples/start_stream.rs new file mode 100644 index 000000000..108f4e799 --- /dev/null +++ b/block-streamer/examples/start_stream.rs @@ -0,0 +1,25 @@ +use tonic::Request; + +use block_streamer::block_streamer_client::BlockStreamerClient; +use block_streamer::{start_stream_request::Rule, ActionAnyRule, StartStreamRequest, Status}; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let mut client = BlockStreamerClient::connect("http://[::1]:10000").await?; + + let response = client + .start_stream(Request::new(StartStreamRequest { + start_block_height: 106700000, + account_id: "morgs.near".to_string(), + function_name: "test".to_string(), + rule: Some(Rule::ActionAnyRule(ActionAnyRule { + affected_account_id: "social.near".to_string(), + status: Status::Success.into(), + })), + })) + .await?; + + println!("RESPONSE = {:?}", response); + + Ok(()) +} diff --git a/block-streamer/examples/stop_stream.rs b/block-streamer/examples/stop_stream.rs new file mode 100644 index 000000000..e451f2ae3 --- /dev/null +++ b/block-streamer/examples/stop_stream.rs @@ -0,0 +1,20 @@ +use tonic::Request; + +use block_streamer::block_streamer_client::BlockStreamerClient; +use block_streamer::StopStreamRequest; + +#[tokio::main] +async fn main() -> Result<(), Box> { + let mut client = BlockStreamerClient::connect("http://[::1]:10000").await?; + + let response = client + .stop_stream(Request::new(StopStreamRequest { + // ID for indexer morgs.near/test + stream_id: "16210176318434468568".to_string(), + })) + .await?; + + println!("RESPONSE = {:?}", response); + + Ok(()) +} diff --git a/block-streamer/proto/block_streamer.proto b/block-streamer/proto/block_streamer.proto new file mode 100644 index 000000000..6ad4b35f0 --- /dev/null +++ b/block-streamer/proto/block_streamer.proto @@ -0,0 +1,93 @@ +syntax = "proto3"; + +package blockstreamer; + +// The BlockStreamer service provides RPCs to manage BlockStream instances. +service BlockStreamer { + // Starts a new BlockStream process. + rpc StartStream (StartStreamRequest) returns (StartStreamResponse); + + // Stops an existing BlockStream process. + rpc StopStream (StopStreamRequest) returns (StopStreamResponse); + + // Lists all current BlockStream processes. + rpc ListStreams (ListStreamsRequest) returns (ListStreamsResponse); +} + +// Request message for starting a BlockStream. +message StartStreamRequest { + // Which block height to start from. + uint64 start_block_height = 1; + // The account ID which the indexer is defined under + string account_id = 2; + // The name of the indexer + string function_name = 3; + // The filter rule to apply to incoming blocks + oneof rule { + ActionAnyRule action_any_rule = 4; + ActionFunctionCallRule action_function_call_rule = 5; + } +} + +// Match any action against the specified account +message ActionAnyRule { + // The account ID pattern to match against + string affected_account_id = 1; + // The status of the action to match against + Status status = 2; +} + +// Match a specific function call against the specified account +message ActionFunctionCallRule { + // The account ID pattern to match against + string affected_account_id = 1; + // The function name to match against + string function_name = 2; + // The status of the action to match against + Status status = 3; +} + +enum Status { + STATUS_UNSPECIFIED = 0; + STATUS_SUCCESS = 1; + STATUS_FAILURE = 2; + STATUS_ANY = 3; +} + +// Response message for starting a BlockStream. +message StartStreamResponse { + // ID or handle of the started BlockStream. + string stream_id = 1; +} + +// Request message for stopping a BlockStream. +message StopStreamRequest { + // ID or handle of the BlockStream to stop. + string stream_id = 1; +} + +// Response message for stopping a BlockStream. +message StopStreamResponse { + // Confirmation message or status. + string status = 1; +} + +// Request message for listing BlockStreams. +message ListStreamsRequest { + // Optional filters or parameters for listing streams. +} + +// Response message for listing BlockStreams. +message ListStreamsResponse { + // List of active BlockStreams. + repeated StreamInfo streams = 1; +} + +// Information about a single BlockStream instance. +message StreamInfo { + string stream_id = 1; + int64 start_block_height = 2; + string indexer_name = 3; + string chain_id = 4; + string status = 5; +} diff --git a/block-streamer/src/block_stream.rs b/block-streamer/src/block_stream.rs index 39bb2b4e6..3942888d7 100644 --- a/block-streamer/src/block_stream.rs +++ b/block-streamer/src/block_stream.rs @@ -12,20 +12,24 @@ pub struct Task { pub struct BlockStream { task: Option, + pub indexer_config: IndexerConfig, + pub chain_id: ChainId, } impl BlockStream { - pub fn new() -> Self { - Self { task: None } + pub fn new(indexer_config: IndexerConfig, chain_id: ChainId) -> Self { + Self { + task: None, + indexer_config, + chain_id, + } } pub fn start( &mut self, start_block_height: near_indexer_primitives::types::BlockHeight, - indexer: IndexerConfig, redis_connection_manager: crate::redis::ConnectionManager, delta_lake_client: crate::delta_lake_client::DeltaLakeClient, - chain_id: ChainId, ) -> anyhow::Result<()> { if self.task.is_some() { return Err(anyhow::anyhow!("BlockStreamer has already been started",)); @@ -34,19 +38,22 @@ impl BlockStream { let cancellation_token = tokio_util::sync::CancellationToken::new(); let cancellation_token_clone = cancellation_token.clone(); + let indexer_config = self.indexer_config.clone(); + let chain_id = self.chain_id.clone(); + let handle = tokio::spawn(async move { tokio::select! { _ = cancellation_token_clone.cancelled() => { tracing::info!( - "Cancelling existing block stream task for indexer: {}", - indexer.get_full_name(), + "Cancelling block stream task for indexer: {}", + indexer_config.get_full_name(), ); Ok(()) }, result = start_block_stream( start_block_height, - indexer.clone(), + &indexer_config, &redis_connection_manager, &delta_lake_client, &chain_id, @@ -54,7 +61,7 @@ impl BlockStream { result.map_err(|err| { tracing::error!( "Block stream task for indexer: {} stopped due to error: {:?}", - indexer.get_full_name(), + indexer_config.get_full_name(), err, ); err @@ -91,7 +98,7 @@ impl BlockStream { pub(crate) async fn start_block_stream( start_block_height: near_indexer_primitives::types::BlockHeight, - indexer: IndexerConfig, + indexer: &IndexerConfig, redis_connection_manager: &crate::redis::ConnectionManager, delta_lake_client: &crate::delta_lake_client::DeltaLakeClient, chain_id: &ChainId, diff --git a/block-streamer/src/delta_lake_client.rs b/block-streamer/src/delta_lake_client.rs index 26fd2b144..bff283a35 100644 --- a/block-streamer/src/delta_lake_client.rs +++ b/block-streamer/src/delta_lake_client.rs @@ -31,6 +31,7 @@ pub struct IndexFile { pub actions: Vec, } +#[derive(Clone)] pub struct DeltaLakeClient where T: crate::s3_client::S3ClientTrait, @@ -46,7 +47,7 @@ where pub fn new(s3_client: T) -> Self { DeltaLakeClient { s3_client, - // hardcode to mainnet for + // hardcode to mainnet for now chain_id: ChainId::Mainnet, } } diff --git a/block-streamer/src/indexer_config.rs b/block-streamer/src/indexer_config.rs index 06328d69d..eba4485b0 100644 --- a/block-streamer/src/indexer_config.rs +++ b/block-streamer/src/indexer_config.rs @@ -1,5 +1,8 @@ -use crate::rules::IndexerRule; use near_lake_framework::near_indexer_primitives::types::AccountId; +use std::collections::hash_map::DefaultHasher; +use std::hash::{Hash, Hasher}; + +use crate::rules::IndexerRule; #[derive( borsh::BorshSerialize, @@ -12,10 +15,10 @@ use near_lake_framework::near_indexer_primitives::types::AccountId; pub struct IndexerConfig { pub account_id: AccountId, pub function_name: String, - pub code: String, - pub start_block_height: Option, - pub schema: Option, - pub provisioned: bool, + // pub code: String, + // pub start_block_height: Option, + // pub schema: Option, + // pub provisioned: bool, pub indexer_rule: IndexerRule, } @@ -23,4 +26,10 @@ impl IndexerConfig { pub fn get_full_name(&self) -> String { format!("{}/{}", self.account_id, self.function_name) } + + pub fn get_hash_id(&self) -> String { + let mut hasher = DefaultHasher::new(); + self.get_full_name().hash(&mut hasher); + hasher.finish().to_string() + } } diff --git a/block-streamer/src/lib.rs b/block-streamer/src/lib.rs new file mode 100644 index 000000000..a91817f41 --- /dev/null +++ b/block-streamer/src/lib.rs @@ -0,0 +1,5 @@ +mod blockstreamer { + tonic::include_proto!("blockstreamer"); +} + +pub use blockstreamer::*; diff --git a/block-streamer/src/main.rs b/block-streamer/src/main.rs index c6efd3b51..50e87ac06 100644 --- a/block-streamer/src/main.rs +++ b/block-streamer/src/main.rs @@ -1,17 +1,12 @@ use tracing_subscriber::prelude::*; -use crate::indexer_config::IndexerConfig; -use crate::rules::types::indexer_rule_match::ChainId; -use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule, Status}; - mod block_stream; mod delta_lake_client; mod indexer_config; mod redis; mod rules; mod s3_client; - -pub(crate) const LOG_TARGET: &str = "block_streamer"; +mod server; #[tokio::main] async fn main() -> anyhow::Result<()> { @@ -20,7 +15,7 @@ async fn main() -> anyhow::Result<()> { .with(tracing_subscriber::EnvFilter::from_default_env()) .init(); - tracing::info!("Starting {}", crate::LOG_TARGET); + tracing::info!("Starting Block Streamer Service..."); let redis_connection_manager = redis::connect("redis://127.0.0.1").await?; @@ -29,40 +24,7 @@ async fn main() -> anyhow::Result<()> { let delta_lake_client = crate::delta_lake_client::DeltaLakeClient::new(s3_client); - let contract = "queryapi.dataplatform.near"; - let matching_rule = MatchingRule::ActionAny { - affected_account_id: contract.to_string(), - status: Status::Any, - }; - let filter_rule = IndexerRule { - indexer_rule_kind: IndexerRuleKind::Action, - matching_rule, - id: None, - name: None, - }; - let indexer = IndexerConfig { - account_id: "buildnear.testnet".to_string().parse().unwrap(), - function_name: "index_stuff".to_string(), - code: "".to_string(), - start_block_height: Some(85376002), - schema: None, - provisioned: false, - indexer_rule: filter_rule, - }; - - let mut streamer = block_stream::BlockStream::new(); - - streamer.start( - 106000000, - indexer, - redis_connection_manager, - delta_lake_client, - ChainId::Mainnet, - )?; - - streamer.take_handle().unwrap().await??; - - println!("done"); + server::init(redis_connection_manager, delta_lake_client).await?; Ok(()) } diff --git a/block-streamer/src/server/block_streamer_service.rs b/block-streamer/src/server/block_streamer_service.rs new file mode 100644 index 000000000..79fd1b541 --- /dev/null +++ b/block-streamer/src/server/block_streamer_service.rs @@ -0,0 +1,190 @@ +use std::collections::HashMap; +use std::sync::Mutex; + +use near_lake_framework::near_indexer_primitives; +use tonic::{Request, Response, Status}; + +use crate::indexer_config::IndexerConfig; +use crate::rules::types::indexer_rule_match::ChainId; +use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule}; + +use crate::block_stream; +use crate::server::blockstreamer; + +use blockstreamer::*; + +impl TryFrom for crate::rules::Status { + type Error = (); + + fn try_from(status: i32) -> Result { + match status { + 0 => Ok(crate::rules::Status::Success), + 1 => Ok(crate::rules::Status::Fail), + 2 => Ok(crate::rules::Status::Any), + _ => Err(()), + } + } +} + +pub struct BlockStreamerService { + redis_connection_manager: crate::redis::ConnectionManager, + delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + chain_id: ChainId, + block_streams: Mutex>, +} + +impl BlockStreamerService { + pub fn new( + redis_connection_manager: crate::redis::ConnectionManager, + delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + ) -> Self { + Self { + redis_connection_manager, + delta_lake_client, + chain_id: ChainId::Mainnet, + block_streams: Mutex::new(HashMap::new()), + } + } + + fn get_block_streams_lock( + &self, + ) -> Result>, Status> { + self.block_streams + .lock() + .map_err(|err| Status::internal(format!("Failed to acquire lock: {}", err))) + } +} + +#[tonic::async_trait] +impl blockstreamer::block_streamer_server::BlockStreamer for BlockStreamerService { + async fn start_stream( + &self, + request: Request, + ) -> Result, Status> { + let request = request.into_inner(); + + let rule = request + .rule + .ok_or(Status::invalid_argument("Rule must be provided"))?; + + let matching_rule = match rule { + start_stream_request::Rule::ActionAnyRule(action_any_rule) => { + let affected_account_id = action_any_rule.affected_account_id; + let status = action_any_rule.status.try_into().map_err(|_| { + Status::invalid_argument("Invalid status value for ActionAnyRule") + })?; + + MatchingRule::ActionAny { + affected_account_id, + status, + } + } + _ => { + return Err(Status::unimplemented( + "Rules other than ActionAny are not supported yet", + )) + } + }; + let filter_rule = IndexerRule { + // TODO: Remove kind as it is unused + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule, + id: None, + name: None, + }; + + let account_id = near_indexer_primitives::types::AccountId::try_from(request.account_id) + .map_err(|err| { + Status::invalid_argument(format!( + "Invalid account_id value for StartStreamRequest: {}", + err + )) + })?; + let indexer_config = IndexerConfig { + account_id, + function_name: request.function_name, + indexer_rule: filter_rule, + }; + + let lock = self.get_block_streams_lock()?; + match lock.get(&indexer_config.get_hash_id()) { + Some(_) => return Err(Status::already_exists("Block stream already exists")), + None => drop(lock), + } + + let mut block_stream = + block_stream::BlockStream::new(indexer_config.clone(), self.chain_id.clone()); + + block_stream + .start( + request.start_block_height, + self.redis_connection_manager.clone(), + self.delta_lake_client.clone(), + ) + .map_err(|_| Status::internal("Failed to start block stream"))?; + + let mut lock = self.get_block_streams_lock()?; + lock.insert(indexer_config.get_hash_id(), block_stream); + + Ok(Response::new(blockstreamer::StartStreamResponse { + stream_id: indexer_config.get_hash_id(), + })) + } + + async fn stop_stream( + &self, + request: Request, + ) -> Result, Status> { + let request = request.into_inner(); + + let stream_id = request.stream_id; + + let exising_block_stream = { + let mut lock = self.get_block_streams_lock()?; + lock.remove(&stream_id) + }; + + match exising_block_stream { + None => { + return Err(Status::not_found(format!( + "Block stream with id {} not found", + stream_id + ))) + } + Some(mut block_stream) => { + block_stream + .cancel() + .await + .map_err(|_| Status::internal("Failed to cancel block stream"))?; + } + } + + Ok(Response::new(blockstreamer::StopStreamResponse { + status: "ok".to_string(), + })) + } + + async fn list_streams( + &self, + _request: Request, + ) -> Result, Status> { + let lock = self.block_streams.lock().unwrap(); + let block_streams: Vec = lock + .values() + .map(|block_stream| StreamInfo { + stream_id: block_stream.indexer_config.get_hash_id(), + chain_id: self.chain_id.to_string(), + indexer_name: block_stream.indexer_config.get_full_name(), + start_block_height: 0, + status: "OK".to_string(), + // last_indexed_block + }) + .collect(); + + let response = blockstreamer::ListStreamsResponse { + streams: block_streams, + }; + + Ok(Response::new(response)) + } +} diff --git a/block-streamer/src/server/mod.rs b/block-streamer/src/server/mod.rs new file mode 100644 index 000000000..544482dda --- /dev/null +++ b/block-streamer/src/server/mod.rs @@ -0,0 +1,29 @@ +mod block_streamer_service; + +pub mod blockstreamer { + tonic::include_proto!("blockstreamer"); +} + +pub async fn init( + redis_connection_manager: crate::redis::ConnectionManager, + delta_lake_client: crate::delta_lake_client::DeltaLakeClient, +) -> anyhow::Result<()> { + let addr = "[::1]:10000" + .parse() + .expect("Failed to parse RPC socket address"); + + tracing::info!("Starting RPC server at {}", addr); + + let block_streamer_service = block_streamer_service::BlockStreamerService::new( + redis_connection_manager, + delta_lake_client, + ); + let block_streamer_server = + blockstreamer::block_streamer_server::BlockStreamerServer::new(block_streamer_service); + + tonic::transport::Server::builder() + .add_service(block_streamer_server) + .serve(addr) + .await + .map_err(|err| err.into()) +} From 28bc9f372affdb5ae1d4dc9a1d6e2cb18bf08487 Mon Sep 17 00:00:00 2001 From: Morgan McCauley Date: Thu, 14 Dec 2023 13:21:40 +1300 Subject: [PATCH 06/10] test: Make `block-streamer` unit-testable and add tests (#442) This PR is a combination of refactoring + testing, the former enabling the latter ## Mock `impl` instead of `trait` Originally, `trait`s such as `S3ClientTrait` were used to abstract the behaviour of I/O related `struct`s, allowing for the injection of mock implementations via `automock`. This was fine, but lead to very verbose syntax which needed to be propagated throughout the codebase where ever it was used. Now, the `impl` itself is mocked, and either the mock or real implementation is returned dependant on the `cfg(test)` flag. This means we no longer need to worry about generics and can instead use the `struct` itself, as we would with non-mocked code. The trade-off here is that rust now thinks the 'real' code is dead/unused as `test` is enabled by default. ## Mocking `near-lake-framework` `aws` exposes an HTTP client which can be configured with mock request/response values. `aws-sdk-s3` can be configured to use this client, creating a mock client. Injecting this config into `near-lake-framework` allows us to create deterministic outputs, enabling unit-testing. `aws_config` is now taken as a parameter where relevant so that we can mock `near-lake-framework` in out tests. The functions for achieving this have been placed in `test_utils` so they can be reused. ## Test `BlockStreamerService` and `BlockStream` With `RedisClient`, `S3Client`, and `Lake` now mockable - tests have been added for these `struct`s. I've also added a Github action which runs on every PR. All raw block data has been added to `data/`, which makes up the majority of the diff in this PR. --- .github/workflows/block-streamer-ci.yml | 73 ++ block-streamer/Cargo.lock | 863 ++++++------------ block-streamer/Cargo.toml | 12 +- block-streamer/data/000093085141/block.json | 1 + block-streamer/data/000093085141/shard_0.json | 1 + block-streamer/data/000093085141/shard_1.json | 1 + block-streamer/data/000093085141/shard_2.json | 1 + block-streamer/data/000093085141/shard_3.json | 1 + block-streamer/data/000107503704/block.json | 1 + .../data/000107503704/list_objects.xml | 6 + block-streamer/data/000107503704/shard_0.json | 1 + block-streamer/data/000107503704/shard_1.json | 1 + block-streamer/data/000107503704/shard_2.json | 1 + block-streamer/data/000107503704/shard_3.json | 1 + block-streamer/data/000107503705/block.json | 1 + .../data/000107503705/list_objects.xml | 6 + block-streamer/data/000107503705/shard_0.json | 1 + block-streamer/data/000107503705/shard_1.json | 1 + block-streamer/data/000107503705/shard_2.json | 1 + block-streamer/data/000107503705/shard_3.json | 1 + block-streamer/data/invalid/block.json | 1 + block-streamer/data/invalid/list_objects.xml | 6 + block-streamer/examples/list_streams.rs | 4 +- block-streamer/examples/start_stream.rs | 2 +- block-streamer/examples/stop_stream.rs | 2 +- block-streamer/src/block_stream.rs | 125 ++- block-streamer/src/delta_lake_client.rs | 59 +- block-streamer/src/main.rs | 13 +- block-streamer/src/redis.rs | 153 +--- block-streamer/src/rules/outcomes_reducer.rs | 23 +- block-streamer/src/s3_client.rs | 54 +- .../src/server/block_streamer_service.rs | 139 ++- block-streamer/src/server/mod.rs | 9 +- block-streamer/src/test_utils.rs | 175 ++++ 34 files changed, 895 insertions(+), 845 deletions(-) create mode 100644 .github/workflows/block-streamer-ci.yml create mode 100644 block-streamer/data/000093085141/block.json create mode 100644 block-streamer/data/000093085141/shard_0.json create mode 100644 block-streamer/data/000093085141/shard_1.json create mode 100644 block-streamer/data/000093085141/shard_2.json create mode 100644 block-streamer/data/000093085141/shard_3.json create mode 100644 block-streamer/data/000107503704/block.json create mode 100644 block-streamer/data/000107503704/list_objects.xml create mode 100644 block-streamer/data/000107503704/shard_0.json create mode 100644 block-streamer/data/000107503704/shard_1.json create mode 100644 block-streamer/data/000107503704/shard_2.json create mode 100644 block-streamer/data/000107503704/shard_3.json create mode 100644 block-streamer/data/000107503705/block.json create mode 100644 block-streamer/data/000107503705/list_objects.xml create mode 100644 block-streamer/data/000107503705/shard_0.json create mode 100644 block-streamer/data/000107503705/shard_1.json create mode 100644 block-streamer/data/000107503705/shard_2.json create mode 100644 block-streamer/data/000107503705/shard_3.json create mode 100644 block-streamer/data/invalid/block.json create mode 100644 block-streamer/data/invalid/list_objects.xml create mode 100644 block-streamer/src/test_utils.rs diff --git a/.github/workflows/block-streamer-ci.yml b/.github/workflows/block-streamer-ci.yml new file mode 100644 index 000000000..507b03112 --- /dev/null +++ b/.github/workflows/block-streamer-ci.yml @@ -0,0 +1,73 @@ +name: Block Streamer + +on: + push: + branches: [ main ] + paths: + - "block-streamer/**" + pull_request: + paths: + - "block-streamer/**" + +env: + CARGO_TERM_COLOR: always + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + - name: Check + working-directory: ./block-streamer + run: cargo check + + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + - name: Test + working-directory: ./block-streamer + run: cargo test + + + format: + runs-on: ubuntu-20.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: 1.70.0 + override: true + profile: minimal + components: rustfmt + - name: Check formatting + working-directory: ./block-streamer + run: | + cargo fmt -- --check + + clippy: + runs-on: ubuntu-20.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Install Protoc + uses: arduino/setup-protoc@v2 + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: 1.70.0 + override: true + profile: minimal + components: clippy + - name: Clippy check + working-directory: ./block-streamer + run: | + cargo clippy diff --git a/block-streamer/Cargo.lock b/block-streamer/Cargo.lock index 0035120f2..5117565e3 100644 --- a/block-streamer/Cargo.lock +++ b/block-streamer/Cargo.lock @@ -59,6 +59,17 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +[[package]] +name = "assert-json-diff" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4259cbe96513d2f1073027a259fc2ca917feb3026a5a8d984e3628e490255cc0" +dependencies = [ + "extend", + "serde", + "serde_json", +] + [[package]] name = "async-stream" version = "0.3.5" @@ -100,58 +111,29 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "aws-config" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "741327a7f70e6e639bdb5061964c66250460c70ad3f59c3fe2a3a64ac1484e33" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-http 0.53.0", - "aws-sdk-sso 0.23.0", - "aws-sdk-sts 0.23.0", - "aws-smithy-async 0.53.1", - "aws-smithy-client", - "aws-smithy-http 0.53.1", - "aws-smithy-http-tower", - "aws-smithy-json 0.53.1", - "aws-smithy-types 0.53.1", - "aws-types 0.53.0", - "bytes", - "hex", - "http", - "hyper", - "ring 0.16.20", - "time", - "tokio", - "tower", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-config" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e245d7c741a8e4b23133f36750c4bcb3938a66ac49510caaf8b83afd52db1ec" +checksum = "004dc45f6b869e6a70725df448004a720b7f52f6607d55d8815cbd5448f86def" dependencies = [ - "aws-credential-types 1.0.0", - "aws-http 0.60.0", + "aws-credential-types", + "aws-http", "aws-runtime", - "aws-sdk-sso 0.39.0", + "aws-sdk-sso", "aws-sdk-ssooidc", - "aws-sdk-sts 0.39.0", - "aws-smithy-async 1.0.1", + "aws-sdk-sts", + "aws-smithy-async", "aws-smithy-http 0.60.0", - "aws-smithy-json 0.60.0", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-types 1.0.0", + "aws-smithy-types", + "aws-types", "bytes", - "fastrand 2.0.1", + "fastrand", "hex", "http", "hyper", - "ring 0.17.5", + "ring", "time", "tokio", "tracing", @@ -160,62 +142,16 @@ dependencies = [ [[package]] name = "aws-credential-types" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f99dd587a46af58f8cf37773687ecec19d0373a5954942d7e0f405751fe2369" -dependencies = [ - "aws-smithy-async 0.53.1", - "aws-smithy-types 0.53.1", - "tokio", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-credential-types" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6dec6f3d42983be70a113f999476185e124884f43f4d60129c7157aede7bda1" +checksum = "cfa51c87f10211f37cd78e6d01d6f18b3f96a086906ed361d11e04ac53e29508" dependencies = [ - "aws-smithy-async 1.0.1", + "aws-smithy-async", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", + "aws-smithy-types", "zeroize", ] -[[package]] -name = "aws-endpoint" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13fdfc00c57d95e10bcf83d2331c4ae9ca460ca84dc983b2cdd692de87640389" -dependencies = [ - "aws-smithy-http 0.53.1", - "aws-smithy-types 0.53.1", - "aws-types 0.53.0", - "http", - "regex", - "tracing", -] - -[[package]] -name = "aws-http" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74cdac70481d144bf7001c27884b95ee12c8f62e61db90320d59b673ae121cb8" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-smithy-http 0.53.1", - "aws-smithy-types 0.53.1", - "aws-types 0.53.0", - "bytes", - "http", - "http-body", - "lazy_static", - "percent-encoding", - "pin-project-lite", - "tracing", -] - [[package]] name = "aws-http" version = "0.60.0" @@ -223,8 +159,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "361c4310fdce94328cc2d1ca0c8a48c13f43009c61d3367585685a50ca8c66b6" dependencies = [ "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-types 1.0.0", + "aws-smithy-types", + "aws-types", "bytes", "http", "http-body", @@ -234,81 +170,46 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36ba3ad97d674bfaeed684d528a07cee6e81cbf16e6d6c7e272a130b5e71e6b9" +checksum = "ce0953f7fc1c4428511345e28ea3e98c8b59c9e91eafae30bf76d71d70642693" dependencies = [ - "aws-credential-types 1.0.0", - "aws-http 0.60.0", - "aws-sigv4 1.0.0", - "aws-smithy-async 1.0.1", - "aws-smithy-eventstream 0.60.0", + "aws-credential-types", + "aws-http", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-eventstream", "aws-smithy-http 0.60.0", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-types 1.0.0", - "fastrand 2.0.1", + "aws-smithy-types", + "aws-types", + "fastrand", "http", "percent-encoding", "tracing", "uuid", ] -[[package]] -name = "aws-sdk-s3" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ae411cb03ea6df0d4c4340a0d3c15cab7b19715d091f76c5629f31acd6403f3" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-endpoint", - "aws-http 0.53.0", - "aws-sig-auth", - "aws-sigv4 0.53.2", - "aws-smithy-async 0.53.1", - "aws-smithy-checksums 0.53.1", - "aws-smithy-client", - "aws-smithy-eventstream 0.53.1", - "aws-smithy-http 0.53.1", - "aws-smithy-http-tower", - "aws-smithy-json 0.53.1", - "aws-smithy-types 0.53.1", - "aws-smithy-xml 0.53.1", - "aws-types 0.53.0", - "bytes", - "bytes-utils", - "fastrand 1.9.0", - "http", - "http-body", - "once_cell", - "percent-encoding", - "regex", - "tokio-stream", - "tower", - "tracing", - "url", -] - [[package]] name = "aws-sdk-s3" version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "29223b1074621f1d011bac836d995c002936663052b1e7ad02927551b17d6625" dependencies = [ - "aws-credential-types 1.0.0", - "aws-http 0.60.0", + "aws-credential-types", + "aws-http", "aws-runtime", - "aws-sigv4 1.0.0", - "aws-smithy-async 1.0.1", - "aws-smithy-checksums 0.60.0", - "aws-smithy-eventstream 0.60.0", + "aws-sigv4", + "aws-smithy-async", + "aws-smithy-checksums", + "aws-smithy-eventstream", "aws-smithy-http 0.60.0", - "aws-smithy-json 0.60.0", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-smithy-xml 0.60.0", - "aws-types 1.0.0", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", "bytes", "http", "http-body", @@ -321,45 +222,20 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5d2fb56182ac693a19364cc0bde22d95aef9be3663bf9b906ffbd0ab0a7c7d1" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-endpoint", - "aws-http 0.53.0", - "aws-sig-auth", - "aws-smithy-async 0.53.1", - "aws-smithy-client", - "aws-smithy-http 0.53.1", - "aws-smithy-http-tower", - "aws-smithy-json 0.53.1", - "aws-smithy-types 0.53.1", - "aws-types 0.53.0", - "bytes", - "http", - "regex", - "tokio-stream", - "tower", - "url", -] - -[[package]] -name = "aws-sdk-sso" -version = "0.39.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5786afe1fd164e53f108b2bd4982a31c5a821dc1677d05a12de65ebcc6ede52a" +checksum = "8e0b81eaef9eb951061b5a58f660815430e3f04eacaa4b2318e7474b0b7cbf17" dependencies = [ - "aws-credential-types 1.0.0", - "aws-http 0.60.0", + "aws-credential-types", + "aws-http", "aws-runtime", - "aws-smithy-async 1.0.1", + "aws-smithy-async", "aws-smithy-http 0.60.0", - "aws-smithy-json 0.60.0", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-types 1.0.0", + "aws-smithy-types", + "aws-types", "bytes", "http", "regex", @@ -368,20 +244,20 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "0.39.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31569ac7750ebc3097058c1e72d79576e16b3fb262aa0d6510188bff623f9804" +checksum = "2e322a916694038a7972a3bb12181151c1645914443a2c3be6379b27533bbb99" dependencies = [ - "aws-credential-types 1.0.0", - "aws-http 0.60.0", + "aws-credential-types", + "aws-http", "aws-runtime", - "aws-smithy-async 1.0.1", + "aws-smithy-async", "aws-smithy-http 0.60.0", - "aws-smithy-json 0.60.0", + "aws-smithy-json", "aws-smithy-runtime", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-types 1.0.0", + "aws-smithy-types", + "aws-types", "bytes", "http", "regex", @@ -390,101 +266,38 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70adf3e9518c8d6d14f1239f6af04c019ffd260ab791e17deb11f1bce6a9f76" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-endpoint", - "aws-http 0.53.0", - "aws-sig-auth", - "aws-smithy-async 0.53.1", - "aws-smithy-client", - "aws-smithy-http 0.53.1", - "aws-smithy-http-tower", - "aws-smithy-json 0.53.1", - "aws-smithy-query 0.53.1", - "aws-smithy-types 0.53.1", - "aws-smithy-xml 0.53.1", - "aws-types 0.53.0", - "bytes", - "http", - "regex", - "tower", - "tracing", - "url", -] - -[[package]] -name = "aws-sdk-sts" -version = "0.39.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1d955bacd8c3637908a40a4af2f7a732461ee7d95ec02599a3610ee55781d7" +checksum = "bbee86e8d9b1be709bd0f38b9ab3f196e39b0b6f3262a0a919a9d30f25debd94" dependencies = [ - "aws-credential-types 1.0.0", - "aws-http 0.60.0", + "aws-credential-types", + "aws-http", "aws-runtime", - "aws-smithy-async 1.0.1", + "aws-smithy-async", "aws-smithy-http 0.60.0", - "aws-smithy-json 0.60.0", - "aws-smithy-query 0.60.0", + "aws-smithy-json", + "aws-smithy-query", "aws-smithy-runtime", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", - "aws-smithy-xml 0.60.0", - "aws-types 1.0.0", - "http", - "regex", - "tracing", -] - -[[package]] -name = "aws-sig-auth" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22af7f6515f8b51dabef87df1d901c9734e4e367791c6d0e1082f9f31528120e" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-sigv4 0.53.2", - "aws-smithy-eventstream 0.53.1", - "aws-smithy-http 0.53.1", - "aws-types 0.53.0", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", "http", - "tracing", -] - -[[package]] -name = "aws-sigv4" -version = "0.53.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14500f741fb73a3c6cb173f8d96b433319a0e27c370a4e783b9ad693fc86210e" -dependencies = [ - "aws-smithy-eventstream 0.53.1", - "aws-smithy-http 0.53.1", - "bytes", - "form_urlencoded", - "hex", - "hmac", - "http", - "once_cell", - "percent-encoding", "regex", - "sha2 0.10.8", - "time", "tracing", ] [[package]] name = "aws-sigv4" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4d07e2f2fc32acb7423d054ec8ba2b361dafc95fabc5a211baf4a566571d20e" +checksum = "b6bcbad6e0f130232b22e4b4e28834348ce5b79c23b5059b387c08fd0dc8f876" dependencies = [ - "aws-credential-types 1.0.0", - "aws-smithy-eventstream 0.60.0", + "aws-credential-types", + "aws-smithy-eventstream", "aws-smithy-http 0.60.0", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", + "aws-smithy-types", "bytes", "crypto-bigint 0.5.5", "form_urlencoded", @@ -495,7 +308,7 @@ dependencies = [ "p256", "percent-encoding", "regex", - "ring 0.17.5", + "ring", "sha2 0.10.8", "subtle", "time", @@ -505,48 +318,15 @@ dependencies = [ [[package]] name = "aws-smithy-async" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b9900be224962d65a626072d8777f847ae5406c07547f0dc14c60048978c4b" -dependencies = [ - "futures-util", - "pin-project-lite", - "tokio", - "tokio-stream", -] - -[[package]] -name = "aws-smithy-async" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbfa248f7f966d73e325dbc85851a5500042b6d96e3c3b535a8527707f36fe4" +checksum = "8251646e230593f141a6df2421f5c9cebae4b7b5f874482164ccc9885a662b5d" dependencies = [ "futures-util", "pin-project-lite", "tokio", ] -[[package]] -name = "aws-smithy-checksums" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e9e4d3c2296bcec2c03f9f769ac9b2424d972c2fe7afc0b59235447ac3a5c3" -dependencies = [ - "aws-smithy-http 0.53.1", - "aws-smithy-types 0.53.1", - "bytes", - "crc32c", - "crc32fast", - "hex", - "http", - "http-body", - "md-5", - "pin-project-lite", - "sha1 0.10.6", - "sha2 0.10.8", - "tracing", -] - [[package]] name = "aws-smithy-checksums" version = "0.60.0" @@ -554,7 +334,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5a373ec01aede3dd066ec018c1bc4e8f5dd11b2c11c59c8eef1a5c68101f397" dependencies = [ "aws-smithy-http 0.60.0", - "aws-smithy-types 1.0.1", + "aws-smithy-types", "bytes", "crc32c", "crc32fast", @@ -568,83 +348,46 @@ dependencies = [ "tracing", ] -[[package]] -name = "aws-smithy-client" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "710ca0f8dacddda5fbcaf5c3cd9d02da7913fd463a2ee9555b617bf168bedacb" -dependencies = [ - "aws-smithy-async 0.53.1", - "aws-smithy-http 0.53.1", - "aws-smithy-http-tower", - "aws-smithy-types 0.53.1", - "bytes", - "fastrand 1.9.0", - "http", - "http-body", - "hyper", - "hyper-rustls 0.23.2", - "lazy_static", - "pin-project-lite", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "aws-smithy-eventstream" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d1ff11ee22de3581114b60d4ae8e700638dacb5b5bbe6769726e251e6c3f20a" -dependencies = [ - "aws-smithy-types 0.53.1", - "bytes", - "crc32fast", -] - [[package]] name = "aws-smithy-eventstream" version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1c669e1e5fc0d79561bf7a122b118bd50c898758354fe2c53eb8f2d31507cbc3" dependencies = [ - "aws-smithy-types 1.0.1", + "aws-smithy-types", "bytes", "crc32fast", ] [[package]] name = "aws-smithy-http" -version = "0.53.1" +version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29dcab29afbea7726f5c10c7be0c38666d7eb07db551580b3b26ed7cfb5d1935" +checksum = "5b1de8aee22f67de467b2e3d0dd0fb30859dc53f579a63bd5381766b987db644" dependencies = [ - "aws-smithy-eventstream 0.53.1", - "aws-smithy-types 0.53.1", + "aws-smithy-eventstream", + "aws-smithy-runtime-api", + "aws-smithy-types", "bytes", "bytes-utils", "futures-core", "http", "http-body", - "hyper", "once_cell", "percent-encoding", "pin-project-lite", "pin-utils", - "tokio", - "tokio-util", "tracing", ] [[package]] name = "aws-smithy-http" -version = "0.60.0" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b1de8aee22f67de467b2e3d0dd0fb30859dc53f579a63bd5381766b987db644" +checksum = "3e68d7a4a9b8be1342066dd8b26c925e79f4e399a7e57ee22f9d162eb041d592" dependencies = [ - "aws-smithy-eventstream 0.60.0", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", + "aws-smithy-types", "bytes", "bytes-utils", "futures-core", @@ -657,48 +400,29 @@ dependencies = [ "tracing", ] -[[package]] -name = "aws-smithy-http-tower" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5856d2f1063c0f726a85f32dcd2a9f5a1d994eb27b156abccafc7260f3f471d" -dependencies = [ - "aws-smithy-http 0.53.1", - "aws-smithy-types 0.53.1", - "bytes", - "http", - "http-body", - "pin-project-lite", - "tower", - "tracing", -] - -[[package]] -name = "aws-smithy-json" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb33659b68480495b5f906b946c8642928440118b1d7e26a25a067303ca01a5" -dependencies = [ - "aws-smithy-types 0.53.1", -] - [[package]] name = "aws-smithy-json" version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6a46dd338dc9576d6a6a5b5a19bd678dcad018ececee11cf28ecd7588bd1a55c" dependencies = [ - "aws-smithy-types 1.0.1", + "aws-smithy-types", ] [[package]] -name = "aws-smithy-query" -version = "0.53.1" +name = "aws-smithy-protocol-test" +version = "0.61.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c4b21ee0e30ff046e87c7b7e017b99d445b42a81fe52c6e5139b23b795a98ae" +checksum = "586fe4003dd0d2a252f2de128e25714d3eb62c6e1fc711a8cd321d23f8f79c92" dependencies = [ - "aws-smithy-types 0.53.1", - "urlencoding", + "assert-json-diff", + "aws-smithy-runtime-api", + "http", + "pretty_assertions", + "regex-lite", + "roxmltree", + "serde_json", + "thiserror", ] [[package]] @@ -707,42 +431,47 @@ version = "0.60.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "feb5b8c7a86d4b6399169670723b7e6f21a39fc833a30f5c5a2f997608178129" dependencies = [ - "aws-smithy-types 1.0.1", + "aws-smithy-types", "urlencoding", ] [[package]] name = "aws-smithy-runtime" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "064b808143d80b50744b1b22cce801238a545b84859c6cf8e275997252dd1d25" +checksum = "0de8c54dd9c5a159013f1e6885cb7c1ae8fc98dc286d2aebe71737effef28e37" dependencies = [ - "aws-smithy-async 1.0.1", - "aws-smithy-http 0.60.0", + "aws-smithy-async", + "aws-smithy-http 0.61.0", + "aws-smithy-protocol-test", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", + "aws-smithy-types", "bytes", - "fastrand 2.0.1", + "fastrand", + "h2", "http", "http-body", "hyper", - "hyper-rustls 0.24.2", + "hyper-rustls", "once_cell", "pin-project-lite", "pin-utils", - "rustls 0.21.9", + "rustls", + "serde", + "serde_json", "tokio", "tracing", + "tracing-subscriber", ] [[package]] name = "aws-smithy-runtime-api" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d27c3235d4972ed976b5c1a82286e7c4457f618f3c2ae6d4ae44f081dd24575" +checksum = "a55ed8f64f72162056db15e05394e9aa2b5a58a0b5ebeab5694f9a463b79bea8" dependencies = [ - "aws-smithy-async 1.0.1", - "aws-smithy-types 1.0.1", + "aws-smithy-async", + "aws-smithy-types", "bytes", "http", "pin-project-lite", @@ -753,24 +482,11 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2013465a070decdeb3e85ceb3370ae85ba05f56f914abfd89858d7281c4f12c3" -dependencies = [ - "base64-simd 0.7.0", - "itoa", - "num-integer", - "ryu", - "time", -] - -[[package]] -name = "aws-smithy-types" -version = "1.0.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fc32035dc0636a8583cf0c6dd7f1e6d5404103b836d26228b8730907a88d9f" +checksum = "d6d0b5ba0f92811d45954c61e3ada057d2a09ee0357403cf86ece562e5fa8268" dependencies = [ - "base64-simd 0.8.0", + "base64-simd", "bytes", "bytes-utils", "futures-core", @@ -787,15 +503,6 @@ dependencies = [ "tokio-util", ] -[[package]] -name = "aws-smithy-xml" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d27bfaa164aa94aac721726a83aa78abe708a275e88a573e103b4961c5f0ede" -dependencies = [ - "xmlparser", -] - [[package]] name = "aws-smithy-xml" version = "0.60.0" @@ -807,30 +514,14 @@ dependencies = [ [[package]] name = "aws-types" -version = "0.53.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61f00f4b0cdd345686e6389f3343a3020f93232d20040802b87673ddc2d02956" -dependencies = [ - "aws-credential-types 0.53.0", - "aws-smithy-async 0.53.1", - "aws-smithy-client", - "aws-smithy-http 0.53.1", - "aws-smithy-types 0.53.1", - "http", - "rustc_version", - "tracing", -] - -[[package]] -name = "aws-types" -version = "1.0.0" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b18c0eb301cce69298555c4884795497c67b3bd511aa3f07470382f4bf3ef043" +checksum = "faa59f6f26a3472ca2ce7e7802d037a0a9a7ac23de5761eadd9b68f31ac4fd21" dependencies = [ - "aws-credential-types 1.0.0", - "aws-smithy-async 1.0.1", + "aws-credential-types", + "aws-smithy-async", "aws-smithy-runtime-api", - "aws-smithy-types 1.0.1", + "aws-smithy-types", "http", "rustc_version", "tracing", @@ -893,22 +584,13 @@ version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" -[[package]] -name = "base64-simd" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "781dd20c3aff0bd194fe7d2a977dd92f21c173891f3a03b677359e5fa457e5d5" -dependencies = [ - "simd-abstraction", -] - [[package]] name = "base64-simd" version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" dependencies = [ - "outref 0.5.1", + "outref", "vsimd", ] @@ -965,14 +647,14 @@ version = "0.1.0" dependencies = [ "anyhow", "async-trait", - "aws-config 1.0.0", - "aws-sdk-s3 0.39.1", - "aws-smithy-http 0.60.0", - "aws-smithy-types 1.0.1", - "aws-types 1.0.0", + "aws-config", + "aws-sdk-s3", + "aws-smithy-runtime", + "aws-smithy-types", "borsh", "chrono", "futures", + "http", "mockall", "near-lake-framework", "prost", @@ -1401,6 +1083,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + [[package]] name = "difflib" version = "0.4.0" @@ -1537,12 +1225,15 @@ dependencies = [ ] [[package]] -name = "fastrand" -version = "1.9.0" +name = "extend" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +checksum = "f47da3a72ec598d9c8937a7ebca8962a5c7a1f28444e38c2b33c771ba3f55f05" dependencies = [ - "instant", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] @@ -1885,21 +1576,6 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" -dependencies = [ - "http", - "hyper", - "log", - "rustls 0.20.9", - "rustls-native-certs", - "tokio", - "tokio-rustls 0.23.4", -] - [[package]] name = "hyper-rustls" version = "0.24.2" @@ -1910,10 +1586,10 @@ dependencies = [ "http", "hyper", "log", - "rustls 0.21.9", + "rustls", "rustls-native-certs", "tokio", - "tokio-rustls 0.24.1", + "tokio-rustls", ] [[package]] @@ -1989,15 +1665,6 @@ dependencies = [ "serde", ] -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - [[package]] name = "itertools" version = "0.10.5" @@ -2046,6 +1713,16 @@ version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829" +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + [[package]] name = "log" version = "0.4.20" @@ -2204,17 +1881,17 @@ dependencies = [ [[package]] name = "near-lake-framework" -version = "0.7.3" +version = "0.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fbfc3d7c294aa144c3a1817452931e91ce045ee1cf2e34b7b439d4695073634" +checksum = "2a4259d516729a7d938e3024064fe53c005673169383daa1db5ea360e0950c9d" dependencies = [ "anyhow", "async-stream", "async-trait", - "aws-config 0.53.0", - "aws-credential-types 0.53.0", - "aws-sdk-s3 0.23.0", - "aws-types 0.53.0", + "aws-config", + "aws-credential-types", + "aws-sdk-s3", + "aws-types", "derive_builder", "futures", "near-indexer-primitives", @@ -2415,12 +2092,6 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" -[[package]] -name = "outref" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f222829ae9293e33a9f5e9f440c6760a3d450a64affe1846486b140db81c1f4" - [[package]] name = "outref" version = "0.5.1" @@ -2444,6 +2115,29 @@ dependencies = [ "sha2 0.10.8", ] +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + [[package]] name = "percent-encoding" version = "2.3.1" @@ -2544,6 +2238,16 @@ dependencies = [ "termtree", ] +[[package]] +name = "pretty_assertions" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66" +dependencies = [ + "diff", + "yansi", +] + [[package]] name = "prettyplease" version = "0.2.15" @@ -2573,6 +2277,30 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" version = "1.0.69" @@ -2788,6 +2516,12 @@ dependencies = [ "regex-syntax 0.8.2", ] +[[package]] +name = "regex-lite" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e" + [[package]] name = "regex-syntax" version = "0.6.29" @@ -2813,31 +2547,25 @@ dependencies = [ [[package]] name = "ring" -version = "0.16.20" +version = "0.17.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" dependencies = [ "cc", + "getrandom 0.2.11", "libc", - "once_cell", - "spin 0.5.2", - "untrusted 0.7.1", - "web-sys", - "winapi", + "spin", + "untrusted", + "windows-sys", ] [[package]] -name = "ring" -version = "0.17.5" +name = "roxmltree" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb0205304757e5d899b9c2e448b867ffd03ae7f988002e47cd24954391394d0b" +checksum = "921904a62e410e37e215c40381b7117f830d9d89ba60ab5236170541dd25646b" dependencies = [ - "cc", - "getrandom 0.2.11", - "libc", - "spin 0.9.8", - "untrusted 0.9.0", - "windows-sys", + "xmlparser", ] [[package]] @@ -2864,24 +2592,12 @@ dependencies = [ [[package]] name = "rustls" -version = "0.20.9" +version = "0.21.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b80e3dec595989ea8510028f30c408a4630db12c9cbb8de34203b89d6577e99" +checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba" dependencies = [ "log", - "ring 0.16.20", - "sct", - "webpki", -] - -[[package]] -name = "rustls" -version = "0.21.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "629648aced5775d558af50b2b4c7b02983a04b312126d45eeead26e7caa498b9" -dependencies = [ - "log", - "ring 0.17.5", + "ring", "rustls-webpki", "sct", ] @@ -2913,8 +2629,8 @@ version = "0.101.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" dependencies = [ - "ring 0.17.5", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] @@ -2938,14 +2654,20 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "sct" version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" dependencies = [ - "ring 0.17.5", - "untrusted 0.9.0", + "ring", + "untrusted", ] [[package]] @@ -3172,15 +2894,6 @@ dependencies = [ "rand_core 0.6.4", ] -[[package]] -name = "simd-abstraction" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cadb29c57caadc51ff8346233b5cec1d240b68ce55cf1afc764818791876987" -dependencies = [ - "outref 0.1.0", -] - [[package]] name = "slab" version = "0.4.9" @@ -3217,12 +2930,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - [[package]] name = "spin" version = "0.9.8" @@ -3314,7 +3021,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ "cfg-if", - "fastrand 2.0.1", + "fastrand", "redox_syscall", "rustix", "windows-sys", @@ -3411,6 +3118,7 @@ dependencies = [ "libc", "mio", "num_cpus", + "parking_lot", "pin-project-lite", "signal-hook-registry", "socket2", @@ -3439,24 +3147,13 @@ dependencies = [ "syn 2.0.39", ] -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls 0.20.9", - "tokio", - "webpki", -] - [[package]] name = "tokio-rustls" version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" dependencies = [ - "rustls 0.21.9", + "rustls", "tokio", ] @@ -3572,7 +3269,6 @@ version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "log", "pin-project-lite", "tracing-attributes", "tracing-core", @@ -3610,6 +3306,16 @@ dependencies = [ "tracing-core", ] +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde", + "tracing-core", +] + [[package]] name = "tracing-subscriber" version = "0.3.18" @@ -3620,12 +3326,15 @@ dependencies = [ "nu-ansi-term", "once_cell", "regex", + "serde", + "serde_json", "sharded-slab", "smallvec", "thread_local", "tracing", "tracing-core", "tracing-log", + "tracing-serde", ] [[package]] @@ -3679,12 +3388,6 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - [[package]] name = "untrusted" version = "0.9.0" @@ -3807,26 +3510,6 @@ version = "0.2.88" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0d046c5d029ba91a1ed14da14dca44b68bf2f124cfbaf741c54151fdb3e0750b" -[[package]] -name = "web-sys" -version = "0.3.65" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5db499c5f66323272151db0e666cd34f78617522fb0c1604d31a27c50c206a85" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53" -dependencies = [ - "ring 0.17.5", - "untrusted 0.9.0", -] - [[package]] name = "which" version = "4.4.2" @@ -3948,6 +3631,12 @@ version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4" +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + [[package]] name = "zerocopy" version = "0.7.26" diff --git a/block-streamer/Cargo.toml b/block-streamer/Cargo.toml index 73db949bb..aaa6881b4 100644 --- a/block-streamer/Cargo.toml +++ b/block-streamer/Cargo.toml @@ -7,10 +7,7 @@ edition = "2021" anyhow = "1.0.57" async-trait = "0.1.74" aws-config = { version = "1.0.0", features = ["behavior-version-latest"]} -aws-smithy-http = "0.60.0" -aws-smithy-types = "1.0.1" aws-sdk-s3 = "0.39.1" -aws-types = "1.0.0" borsh = "0.10.2" chrono = "0.4.25" futures = "0.3.5" @@ -21,13 +18,18 @@ serde = { version = "1", features = ["derive"] } serde_json = "1.0.55" tracing = "0.1.40" tracing-subscriber = { version = "0.3.18", features = ["env-filter"] } -tokio = { version = "1.28.0", features = ["rt-multi-thread"]} +tokio = { version = "1.28.0", features = ["full"]} tokio-util = "0.7.10" tokio-stream = "0.1.14" tonic = "0.10.2" wildmatch = "2.1.1" -near-lake-framework = "0.7.1" +near-lake-framework = "0.7.4" [build-dependencies] tonic-build = "0.10" + +[dev-dependencies] +aws-smithy-runtime = { version = "1.0.0", features = ["test-util"] } +aws-smithy-types = "1.0.1" +http = "0.2.9" diff --git a/block-streamer/data/000093085141/block.json b/block-streamer/data/000093085141/block.json new file mode 100644 index 000000000..fecc2f372 --- /dev/null +++ b/block-streamer/data/000093085141/block.json @@ -0,0 +1 @@ +{"author":"dqw9k3e4422cxt92masmy.poolv1.near","chunks":[{"balance_burnt":"903157226440000000000","chunk_hash":"5bPAyMhwELc3KR4aKSc3cNBLGm32HFEqRUYXri43ipbH","encoded_length":2773,"encoded_merkle_root":"7yg9tcw7eA4o9V7NUy1gzdQ1bW4poTtMcjhX2df2T41W","gas_limit":1000000000000000,"gas_used":21556415326900,"height_created":93085141,"height_included":93085141,"outcome_root":"2WgvyuAvefXHw2Bu5tHBYqaNRnzEdkBV1kbX9rZhqHdR","outgoing_receipts_root":"FmmxRvexn9MaM6kaywm5TJ4bAXma9LC8GvX3BYMSbBPj","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"EgehqBxv1rs2143KmLDrbmyhZwHcHgZZwj5kjc48CLAn","rent_paid":"0","shard_id":0,"signature":"ed25519:5TQhvjHdmG4YMATrHYM4K96VRF6FRuu1LcrBG3WMFLEkHXo7gG2D3RGN2hnGMNVLosQqVGw91uMKfHvkNhe857Lq","tx_root":"5K8i8seBPYEKSXwsG9NugZmKhFmv7zgFbUAwqX7TNEfR","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"336955792883000000000","chunk_hash":"4K9Zj1ZanDm9Cu3G4JnRWsCTPjhT7iMsb2m1ACNexvPZ","encoded_length":161,"encoded_merkle_root":"ExpvgdXmijmisL9VWUSZd6cH2XZ8KjMfvRq2TFXwWaJ","gas_limit":1000000000000000,"gas_used":3772355756216,"height_created":93085141,"height_included":93085141,"outcome_root":"35sKVEqAvGiAddvByfoFNyJz7DF5AYWaPnLPGqqvwi3s","outgoing_receipts_root":"DaAh9aGfy8hrRkSPa8VajKr4JG6eivSGognFYQXuezTG","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"9D5KaP2ZukXZR5SKAXgU9cuq5niDuvpjrbCXofAzy4ow","rent_paid":"0","shard_id":1,"signature":"ed25519:3thVBMZWNUgwdLsNtm2hfHF2MrHhovjN9aQQJAi7uNicKw8eUyLjbcpwVMorQ6uT9JbK1GJbto9m1XWF5XNr96LW","tx_root":"11111111111111111111111111111111","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"660301625914400000000","chunk_hash":"GWGFPyAvWLnHw4eo8XEUNz3EFpfogE4acJ13h8jorTT1","encoded_length":701,"encoded_merkle_root":"AVWEeygQLxnYMGREJmAQE4BDQwsg1FCJJ2dK2kWNh47W","gas_limit":1000000000000000,"gas_used":7049381384144,"height_created":93085141,"height_included":93085141,"outcome_root":"CxxEgz23MJKojjGWXe3muBjD6yiLCSo7NyGgfpu64aug","outgoing_receipts_root":"H96o6Z112kp4FgNm5rbpGxNCc53x4bbmcPce6NpaFMoK","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"5TztQJP7d3436iXmFpG5PSYAtNhz9mNYu7XJ8UyxDpQe","rent_paid":"0","shard_id":2,"signature":"ed25519:3eNQL7PXH96tb2LkkYdNrHJ8nB7PpGjCc98gsURvMMMifsWcjL48AM9AB1QWZFCFd61oiyGViKKKB8HSYom4z7jP","tx_root":"AWG7nTuyxSdtk5sEwGuB1mUmACnkAvGMn5zw8mbgXAFP","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"2290298267551700000000","chunk_hash":"6s29toMBxow7sNNf2huCzs9Jx77cuD4Ei6Q53FsJRV8e","encoded_length":2884,"encoded_merkle_root":"6e2PjAbKLmK3ZHMDuU6AGqbF7LuKXQrx8Ha9X5jtQT2m","gas_limit":1000000000000000,"gas_used":25705493164532,"height_created":93085141,"height_included":93085141,"outcome_root":"D14cNKyYmNfNrHkXAgdQREjf9sUdgBbretD8bTzzibup","outgoing_receipts_root":"DpPAKmARwUGBfYLDbXWPTL53auH3ingsvsFsj2MCwbe6","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"98HzgR4qeCoV9R8KXw3i27HdQreH5o4j5VWmocxHh19A","rent_paid":"0","shard_id":3,"signature":"ed25519:2wvGjamXwpn3euAyv8Xr951ZJVzGeMJiMQ8cGTa6HwW986kfPe5YCFhMytaNLe74MxgpezX8Fy3ptRbaBiPZCPAk","tx_root":"4iRESwugTeYZzUeYs6VxbUQHvnX2UnBrY7yXRpB6fUyG","validator_proposals":[],"validator_reward":"0"}],"header":{"approvals":[null,"ed25519:4HYCJoWocKxNbKSSidjAz5BjoXMMKEBxbNGq8UUBVgaoXmNCEH3d9N7esrNAC8gBDCasBbanQewSqS7HtZrxvsKT",null,"ed25519:5niT2KXArCjASKSXmDExZFbiNM2romNs1xK7GV55sF6hmzZKiLwMxqSq9E25aAzAEHe2wbUJwmiX1MspqR4UUSb4","ed25519:2nD3Kt7fitrK1reyfmMxcszHhmWiqEsBv6cA4ngvcxXS85C2D4vNav7zu9XmwTW4UMgddnbdpHrWdFB5pTW3J6nu","ed25519:2o4Zudk89Ej4JViZ2UvD1hWBvwy2jKhXti7JiK1r5MAAd3JyeZeeRFqZMwtvuuzwnGaJ9pxtZj3aKv4iqii3h23p",null,"ed25519:5kzTHdjtvyDAoAMPZhNYCzaHHRK9H5bMKYqxc5iVn1AhEWgafVjUaUUQZnYd8QiQdTj26JyeMGyVTuEHr1er1GFM","ed25519:3CgQcnTbSTnvrcHQzgHiffbEwMc8zkyijdWutvsZ8edCoWxofuuBfmcjbNGQ7caHgtNzk72WnXtDHRRj7GVaRZoC","ed25519:3p9wJWFTWnuYWbHxWjt26j7jdfRY8rdzyvtQZpGhU9UphqvU7jGXdzCx2kdvG9QmCxK8DTpBCiGVL7FWBQRJv6dD","ed25519:2hwsh9PAQhVy9FFudJi4VDjKPvsgpo2AUG7gvidXGdUXiCTteBfFvvY6WQQmd5MBL7CdffSX3dfCLzB7meMGebHo",null,"ed25519:HdDKYdDoaULziJdCXkBdS1zKG7RjbB9GQw32TLptMAhKr8KGe5vz364qSAqBoWS8bqiQYhLRpi9AeKX3rLdj9qK","ed25519:4uZc3sx2QZqQEVATHpY3WJXA4nwe1JFQBUMMhSfsGS3C5YFddY466CUFF7wRGyguLP9AfW13GcJLJwWxAfmWSFuM","ed25519:4RELctCZPjp8YrzNd2gtjCe9YzxdZP3c317NNEVNo1drgfWQgXLC26mRRf6bfyC4BfGcGPm6jGiTeNrvGkmY44RA",null,"ed25519:2CjAxrVZUwESUTGeWhkVe7suhKHrSgfMfAyjrPCsoUa7HzXnS9yLj52E9qkti9CqSe4pR182EXrSssoNDPEKqcXH","ed25519:3tb7X5aY553bsgU8KmVfHwD1fCYQjZgckdCbZTraiU2M6i4a1PZ6ex8XgmUeYMMiSZ4VzAWtXEnBVfHsDcAJmKrV","ed25519:2DGQcpQXF6EDMSxHctRGg3fxTMn6GFsYoanQZ7fvYoonVwNCRWaxkT2FZtHjdKqz81CcvzTo333FZ2MSdrMc1c69",null,"ed25519:52wHrbjDLSvLePRW7rHqCqtVy7bwzFmw1cQnLHsfbG3Bq6qHip12kJuPRNbRwSp6Pka1LiRsa3D2ByrpMEdRb8Lm",null,null,null,"ed25519:4eP3aHeHB62u6ioj9kfwhucKzCi4P4nWJPbn4yW5LoLWgE3ZKcCeWxCy9VqTCLvA3MmFiXcCRkMvwURRRev2L7Hn","ed25519:4NCmDQRrUFG79fyfWpHLZoU18C1kRvfNQoK3KWZNP3vM2t9UhmtsDuJQigAdWpbaruCg1vnTF4mSe12RFG1Yx4nT","ed25519:epjv5H1JHBYW9w2Um9ugMqxoWk19pKPwxXbxx22FiFRRQta7UZ64V4cJTpZN8LSQLBmohtkXgGpFoM8Ee8Cnd1a","ed25519:3wQ2U8wy5qjAbnQDtLS4GtmZF67rasS7jdVxtic3BaLyLsHqBgrtTWN94nHA7ZeW8itBvbCwUXJaJ6hpPcc6hJik","ed25519:4Jos8kYf3qaL2cR5HzxVSc7fz6jZC5M9gnShu9ZtdyPdbwk5pkZ14UFDzKn7TowjU8CG7oLMWsmCw7B6qMW4kvoU","ed25519:v4oJR9cDvJBAYrsf3y91Y8wS2PB7ypNKiZDV4VP7oYnnnMxoeHegR64pK5omWP7cum8oBEuLAqhSt9n5rF2p55g","ed25519:4TD6vC4zxpvpQHuUAhaU599y3xdq1knhETZ1yCP6SExV2nedGYdppm6iSLmvgWYkWCpAT1osCARGCmjgMvLqsFPk","ed25519:28YWj6WsGhDvdhQuBmcHJNUtKUcZa1oTEG3F4wA5wmPstBTMQDSsHHXAzn6NmqDe7YCn9KQyyF9VjbV31uYCXJSx","ed25519:3WoLkAA7VYJZHeCXx92it9DkpaUgYTR2Li7ZT28cQJMDh6tFn61rEnLsrxhEvJP1MXf3mwkffvnJW2i3VL3uVQAc","ed25519:2bLDSM6E9PJRwEuFEdwKqgvES5WVrfvEqyMcBzZoRdAbzwVkvaWmVHoaSyhngmzg6r88JnhW5wbTrtNkoM4PdLBx",null,"ed25519:3mykmLd69RSNku9J7FJXop6DGN11qdgcScjH7FLXfhd62JQsJWn1UXw4evRy8UVsed6H7itHinitBuDaaCHtCZ6y","ed25519:5nG686LojijSXksbkJeosCZSW9owMpfJJCuG9715W2QTwtR6UKvUDT1hVc7pgc8jvUTCbV5DzdMmN6QCVCKjEMoX","ed25519:5uScg7KriN8mqFpqg3ASZnw7B9NoLpy58RFvJYckxniJmRcKRmuirRke5cxWipS8XdESLnpVcCtwvgytx5dQyNpy","ed25519:64oobKzAVxoR7M79k7DGj69ph46BtneQmC4TNr7Qfs3uZQvbSmKsuqXmYWT4a924ZsSsaifrHovPfS9vRMWc6TZG",null,"ed25519:4wD4ADV8DY757ZzGUgAfuyLWuodjVE3NgkB8nK9iA4Lbj8DTgRvY9k3jiFh57BtdPxTk3kanMHmQQHtfPtcWkCiA",null,"ed25519:5HPakWjG2nmHUHyqVX7J5fLAFh6XDR6EbzrvwhUt8WvGFkr8APL6Y2yb6cciSXedHrX5h53RhLtamPkwKGSgEVFG",null,"ed25519:4GrbvuhubRwCrKeeRQtiZpKyCNEMZ3GsABN4QDqRxxotgRzwfA9Re74YtXHaGuE7A7KSNxiC3b7CHpC41AVCsTzr","ed25519:2nV6CWrs1PZX7RHGN8Tkna4yT9DNteQTMK1k7ZDyHfVLdLhV2GUFTFXug1vgX9VvaB7yFHHLFgJiQiHGuzWuiRxg","ed25519:2mHdkmvy5UeHSdLpMqGCkcmm7BktSciz9q5wv2EbMhuik9Bj58GXpbcYXqWrQpxT9wN1nedkkiZ8QDZ4C18nhjmt","ed25519:2DjQgKM8scshWmATPUj9ahpAqH9WfUmrjGcKaGvGsKTt3XAr88j4Yt4PjyYJDqEvsKqNLMbcgqjAnga2EpBTC6Bq","ed25519:2JYqxYHGLNBNm92mSPz5vbyYLry34W4WYmtwwNcDvh41SCp2zqQqbxtVjJdSRN1ZrHin1XxgSZXiy7baS74SXsbg","ed25519:3NLGtTxWmpeukuMAzXj77MCkFeE2RdVdSJttuE9hXV5qojF172Hf9agEyMHdjareobQjsSReQ3wfrWLxYLN22Rqw","ed25519:4yEtJkQh4efoYRWwHGyFKVyG4rN7VTJ836W7vGeYHKejpmb2R5ijXqGZhtaCDskkz61m5AYSN4QByyoe9RGa4iZN","ed25519:5KiXwmjLFhNZMgkWpekbqxUTZDF2PYH6RcQXPGSd6CLD1qEhPUZxZr87k6E8oYSuVvWYUaAiPUSffUP5PPryEqxg","ed25519:1offZT4dyKqUeKFz1efk49JyXaKr5SYkpnDNLoXMafZGHjYu9DvkeKbBVD3fgic2WduM5Miw6Vsn8qP84iy64GK","ed25519:G5VnYeDn7LWhtDFe6xLAwV1wAsA4RiBXC23JbZSo3vPYGuntSpJCDousVAmyMwnv71FEJd7sSFgBwVdJNwBMAVd","ed25519:K8iDGo8Vv3pBRiUP6FyQ5srui2uWu46gveAbA6eV53wNq467r7LQTPkCVMXDGNy7MuFQ4sY9edKSH2ZPp5p2f2b",null,"ed25519:28JuVaig2Q1awtbtC1n5uUcFCQw5kuRKrrMYVXYDj5FcW7XuLESTK9Y2CRbvEYDBKTqS3CiGDu1qNkkCbcAmL7PW","ed25519:4mJzYDG62W9tY4YRtudHoK3d3VGihs2eiKBsNpf8RjvcaRLbwBkUugPNYKHUxB5pWktvPbwZMuKTLRmj2WQvFYAA",null,null,"ed25519:5qAEqG4W4Ta54PT8dqaVSkwwjuLn7zLqwPAagNqE65Ki9HQhKA4xgqCypwCed138mpQArKC16BnqgJ3hGe7kZkuB",null,null,"ed25519:vfE4gTvTUvFXzDAu2u9GwE69YvsvAN3bqquMD9rbxHHbhGuaYDh97dnnG6osyh4znGz3UKbNPDe76EE63caTeDU",null,"ed25519:4Q28eMmN4avey4PgPNRLDEj68jYFkcKSyuaVy7E31tXGHGFowkKj3oCo3Vrje96wTaTTTjfhUdvR73omKqswPWbk",null,null,"ed25519:JuX5CxZkEGQCCZMjM6YhDHp5kPdbfPKb7CiHCrw2nt531a79xcdRm5U3NUPPJ7V3q63BMck7CyTxjRik9UrD42E","ed25519:R21mUu3fs976BUBiY4F2TQUoNmrd9QrUVBycVenpRfYVPqyjxY4ZSQrdYjN7HqBPp7jNdQGcTb4FRSpbjgEM3TJ","ed25519:3H2YzGRbjDP75Q4qdKTVUEkkCMuoUK6RXjZs9ZGTuvcfRYRBtYTFRsBLdUEdX7HbiaCxa31Wfc3e4DKpgdhD4nXk",null,"ed25519:5PviJZ2sCnbdp94FDFUxzVzxg4o3iVitb7NX2QxuYGe4ozWNLWzpPZAZhGT4WwgQjuxwcxt9weCjCbii8BqthnnR","ed25519:3B1Ci4h9urWnzhStfVRY8HNFhKNuHnb4LCQJaDSS11SxJUvAZAgu9M1XW6M1vMMS7rCjQWdEgjJspgSdsMbRWoi4","ed25519:D4T7Ms6xqU7hj9SSMnWtpBkMKuFpeRuEY4qYDiz2uhD3jfT2kw4e7LgS89jByG9D5GEvwKxTtGySMRCJu5uXE2H","ed25519:UYa6UfUg62DAn24BhEtGTYo1X9MsHqxHvkjsEvWN9GrfQvMzxobNMRibFGdiPbsSmJiKzjRh7yZWk9zQaG8kpYR",null,null,null,"ed25519:2qUp5cpkTC5EfYnny7Q31M4jyYkGQuqcKiakemL5BPHdiBoduz1W8nMhMKDYuE83nQg4edTaGHHC31npLbN24e6G","ed25519:3d54DjetvbXWJumWBDv2CKRgSf3xNf3VEn9jTzs28qNXe1E6o9rZEZG9T1W4n2GVbyxLqDmnTHcyYNJedvgpkoZC","ed25519:5BZTh4sLwcafATBZhm67AnpLWNQSMG9RD4JhLtp3kmt9DWjda79yb4CKuGp78j26EwsAZ2gbMWnf9q1taEB76QtQ","ed25519:37epXQ6CV3tLbwJZs9vqhtGw99bP3EzQBZAgyBLH6GNyuikSHrUUt3uNaJkJ9M2QPyApFH5JUA2ZNCQD1kKA5Mgt","ed25519:4vk3W5AoyvkPoHAw13HjYrD2GCCUietBQ6mPD2BFCt849LmqZrLxeUZzu3tuB2kf76kyJcCiGSxstC4hk4JEEDCe","ed25519:c7rLHEWBMdkbEfftbF7yXZfFK4ZWBYAEhEEnfDh22tbJBcQrbihUt1RUgVX4FzwLkaKuw2CyRURjoUmTZtXeoEU",null,"ed25519:2QLeh4wih2PupVoLmaBttiY2xyHdGzNwfc2qHaaUZPbFZDnNrXjSXuLPZpjtiFAvTSoUx9J7TgGCwLz925UUxaD6","ed25519:PoaZWKXqjtsKqz8XsS6RhHuZovAEFiBzYvu1NomCCpKzgPxvsBswTSDEDY67NoVfuWHnEZVbU72ZzxLDBkjinwC","ed25519:57CrwA7b1cWiVEdL3mBM1LhNJk6QeLkXPczEHoKNe6srGUQMbVbELtEnaVFfwkEwbYYWWepEUYnxqE3TN7bYRLsX","ed25519:37LMxibT39TYPd7kRE4MBtghQUiFd4EeodGTisTwJ27LWy9ErydUMt6BjrdJ3yWxpNBG9rksu3CaswqCixrvQuJH","ed25519:274RCejDGzCoYWfqRMyejr97cwWGq89dwRwpkwUM3voQZXTxo5UPFmSJYk2zBMcZiooknJNtzD9VzgTSTzJNXEBA","ed25519:4BmhUT5Ma1M3MUwoRJYDQe1vcoEySK95n2j2xB87vvrsGdGGEUDC7o8Yg6dMWib4MHs2iw4XeqE5wAZu1KEQ3dxe","ed25519:3ev6y5gRZguRbtu4hrsHXn6BTnq6bjpDnFHCdhVaKmmoyrog2qHzgmbAcvpz3EoakPsVwzjmUKJp82CHHehFGTSz","ed25519:3ZDQUSu2W5vVsmCJyRS36q5vCHz4xMrHR8965Y7XVrpDW6S4sixHNgmwdAjFfoV9UuShLFp1q2MoR2dYe1tV242K","ed25519:64TcaMasB83QH3c8vmEu23rmHvH31fuFkHicoDZjShSkDVVsNHTAMtTZUNFViXK8UCmVk9V7f4VueGEpMBhaebuV","ed25519:498ZydHjUzcCsdQuqatJEQRkpvdeYeUEwJEk4MifyDUWbw28Y9TVnQvWkMxssrd61FmLPDqn8wYD3HV2oVCx6Dhh",null,null,"ed25519:5Kyn7MU1WKDy6FDQ91FTrq7m2JqemyK5oPKtPa2Dd8BMxLuCnJaCyk5Vfwzdm75fwEugExdskbF6Z1jAQuAeBErY","ed25519:5YpndkuRx7n4dRDZu5MMWNKjpP2q158hUbpHbgsX99wzQRrGeuFx1P8VRWZ8icHFPh9rS5xmgm1zN8TwBTfycFXJ"],"block_merkle_root":"4y4aamanudLmTowpLk9GWRhhPNmjkEXm86ijVo5pkNZo","block_ordinal":83036472,"challenges_result":[],"challenges_root":"11111111111111111111111111111111","chunk_headers_root":"5vABXV8RAo6GknauuQxngj1kn4PyMQH2rCTnKGYusscb","chunk_mask":[true,true,true,true],"chunk_receipts_root":"BcAYb4EV7BvmoMQdwXkx3UmDJReDiNjFUN3RAZWxBhDf","chunk_tx_root":"EZJB3GfAGiaUeW5mNwj5tMUfdvbZjQYMJxkwRwfEGCAo","chunks_included":4,"epoch_id":"EPL23Ar1bvVjULauPNbD8MjB9eDtoN6Ji7kmvpQVhCpE","epoch_sync_data_hash":null,"gas_price":"100000000","hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","height":93085141,"last_ds_final_block":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","last_final_block":"5b9HLmwXNP78ozBeeM443Aq6Tzc8XcoQ23TBwieacmed","latest_protocol_version":60,"next_bp_hash":"nGcCQiF1mAwFWjbxqYFA7WsQyYDvLsUtTxhVkjySih8","next_epoch_id":"D6cyJc97ZjLR8NJ3h2Aj8KpRCVR3sAxVMRVrcS26JZN7","outcome_root":"AtgazpA7KNxya1PJyiBCESFyU1qt2kmnoHXf9zcvTEXo","prev_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_height":93085140,"prev_state_root":"HQKa9fiPa8HQHqT4a6huAEAFtACqp8kqUnbrxLUVaJ4h","random_value":"2e7HunUhxTe38JxkHnPqnJGGGiJnTG6JTvDqpKvRBsHT","rent_paid":"0","signature":"ed25519:5qEf65mY3grFyZ7NjkwtHkR4pYS5TTCHjc4Aw13gPjEXW2feDx6Y7N7iQ5Wa2FDrSQ4G6Tn2tDuNmERQbsp7Kbvf","timestamp":1685481810212962455,"timestamp_nanosec":"1685481810212962455","total_supply":"1137052953841874351313709602668185","validator_proposals":[],"validator_reward":"0"}} \ No newline at end of file diff --git a/block-streamer/data/000093085141/shard_0.json b/block-streamer/data/000093085141/shard_0.json new file mode 100644 index 000000000..6b4a03787 --- /dev/null +++ b/block-streamer/data/000093085141/shard_0.json @@ -0,0 +1 @@ +{"chunk":{"author":"legends.poolv1.near","header":{"balance_burnt":"903157226440000000000","chunk_hash":"5bPAyMhwELc3KR4aKSc3cNBLGm32HFEqRUYXri43ipbH","encoded_length":2773,"encoded_merkle_root":"7yg9tcw7eA4o9V7NUy1gzdQ1bW4poTtMcjhX2df2T41W","gas_limit":1000000000000000,"gas_used":21556415326900,"height_created":93085141,"height_included":93085141,"outcome_root":"2WgvyuAvefXHw2Bu5tHBYqaNRnzEdkBV1kbX9rZhqHdR","outgoing_receipts_root":"FmmxRvexn9MaM6kaywm5TJ4bAXma9LC8GvX3BYMSbBPj","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"EgehqBxv1rs2143KmLDrbmyhZwHcHgZZwj5kjc48CLAn","rent_paid":"0","shard_id":0,"signature":"ed25519:5TQhvjHdmG4YMATrHYM4K96VRF6FRuu1LcrBG3WMFLEkHXo7gG2D3RGN2hnGMNVLosQqVGw91uMKfHvkNhe857Lq","tx_root":"5K8i8seBPYEKSXwsG9NugZmKhFmv7zgFbUAwqX7TNEfR","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"app.nearcrowd.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiYW5nZWxvay5uZWFyIiwic29sdXRpb25faGFzaCI6WzExMSwxMjEsMjQ0LDE3NSwxOCw2MSwxMTIsMTgsMTQ5LDI0NSwyMyw2OSwxMCw1NywyMzUsMywxNDksMjYsMjQ3LDIyNCw5NCwxOTksMjI5LDgxLDEyMSwxNzYsMjMyLDcsMTYsMTIxLDcxLDE2OV19","deposit":"0","gas":200000000000000,"method_name":"approve_solution"}}],"gas_price":"335989893","input_data_ids":[],"output_data_receivers":[],"signer_id":"app.nearcrowd.near","signer_public_key":"ed25519:CXYkSHvK2rj6sCGbaKPbTtwhcMrPvWxs1ntVvA6vLtm2"}},"receipt_id":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","receiver_id":"app.nearcrowd.near"},{"predecessor_id":"7e887c69ca5edd6eadfe7b87905a1c12d0ea5c8e6e6ae1a9659b74a43490d497","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46WUdNNDN4eVc4UC03ZTg4N2M2OWNhNWVkZDZlYWRmZTdiODc5MDVhMWMxMmQwZWE1YzhlNmU2YWUxYTk2NTliNzRhNDM0OTBkNDk3In0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"7e887c69ca5edd6eadfe7b87905a1c12d0ea5c8e6e6ae1a9659b74a43490d497","signer_public_key":"ed25519:9Ww5a9UTdpEi1qYVFkv97E2Fvx88gqbVtnNTzCKrqvvJ"}},"receipt_id":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","receiver_id":"token.sweat"},{"predecessor_id":"17f374fb3e1e293f646627b869be7f63b3586ce417947e7f13275195f96cc8af","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46WUdNNDN4eVc4UC0xN2YzNzRmYjNlMWUyOTNmNjQ2NjI3Yjg2OWJlN2Y2M2IzNTg2Y2U0MTc5NDdlN2YxMzI3NTE5NWY5NmNjOGFmIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"17f374fb3e1e293f646627b869be7f63b3586ce417947e7f13275195f96cc8af","signer_public_key":"ed25519:2cVh7bm8ibwH4VUoUJqGb1yrckq5HdFHkzHrW8inRBSn"}},"receipt_id":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","receiver_id":"token.sweat"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"12524843062500000000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:Ed2Qp2whbMphnXayJU94jdSV3KeEejn9wk54FouFxxDZ"}},"receipt_id":"616WtYRqUTBG1axECm9d2doCxdmiNqGBpGDSWGh7w6ec","receiver_id":"sweat_welcome.near"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"DD4ZQawic8dWCmahMUYcAg7r9pUEn9ySwRXJUdpqnKLf","outcome":{"executor_id":"6a24e779e81108ebeba2d424a49347999f6314383872479a164ef6a4c55213c7","gas_burnt":2428312288450,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["BcG3MXNSMFBdaKuwc8enhXBXTK4P9WohdKQTa1Myu8jR"],"status":{"SuccessReceiptId":"BcG3MXNSMFBdaKuwc8enhXBXTK4P9WohdKQTa1Myu8jR"},"tokens_burnt":"242831228845000000000"},"proof":[{"direction":"Right","hash":"EMxw8DJ5wTGjs3RFCvbwT8j7ZAWisDvSUMfHhkoP2Pvh"},{"direction":"Right","hash":"6YgWkaQrFEybkbvN8Y6rCdJLwXS81UevfJdBE37TQgfM"},{"direction":"Right","hash":"EkrgUHptWkcbKXKYmu89MmMXKJbybLfbLMRhoGGmvt7v"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46WUdNNDN4eVc4UC02YTI0ZTc3OWU4MTEwOGViZWJhMmQ0MjRhNDkzNDc5OTlmNjMxNDM4Mzg3MjQ3OWExNjRlZjZhNGM1NTIxM2M3In0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"DD4ZQawic8dWCmahMUYcAg7r9pUEn9ySwRXJUdpqnKLf","nonce":64846206000026,"public_key":"ed25519:89LrYd5LjETg4vBgpEcD5h9NmEDLeceCcS8ZsDC8MogA","receiver_id":"token.sweat","signature":"ed25519:4hoqDdWrnB7BXxnErZ6GtYtxDMUoXcwDg7w7h1ef6PeyZ6k6XDUJPoDYqEYPrYRCXr54TzuY8uKMiYCMvjLX5pTf","signer_id":"6a24e779e81108ebeba2d424a49347999f6314383872479a164ef6a4c55213c7"}},{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"76kuoHMchbcdmHTbCcg8AtsoPDfcXZ8cXvM85Kdp7Kyn","outcome":{"executor_id":"6ad20a76a405bdae35d6fe2050725d44f055de9d0305b027acd2bb36c490f40d","gas_burnt":2428312288450,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["FL2yvCEjhCcgj7WqAFac4fAbYdLW5mMHdUdZjfLBCj7a"],"status":{"SuccessReceiptId":"FL2yvCEjhCcgj7WqAFac4fAbYdLW5mMHdUdZjfLBCj7a"},"tokens_burnt":"242831228845000000000"},"proof":[{"direction":"Left","hash":"BRS7TNvamzU7XtqVkWnUj7Tj49JeRmA93LzWKyAMAZhy"},{"direction":"Right","hash":"6YgWkaQrFEybkbvN8Y6rCdJLwXS81UevfJdBE37TQgfM"},{"direction":"Right","hash":"EkrgUHptWkcbKXKYmu89MmMXKJbybLfbLMRhoGGmvt7v"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46Mm1CWDlHMDR3di02YWQyMGE3NmE0MDViZGFlMzVkNmZlMjA1MDcyNWQ0NGYwNTVkZTlkMDMwNWIwMjdhY2QyYmIzNmM0OTBmNDBkIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"76kuoHMchbcdmHTbCcg8AtsoPDfcXZ8cXvM85Kdp7Kyn","nonce":71319939000056,"public_key":"ed25519:8ByygDeLtYPYEXYP6SYkHT9Gbb118aiMc2D7EJuCMtkL","receiver_id":"token.sweat","signature":"ed25519:fJaGpdVi1j2hxgdcgDKhbKUgnV1t2BH9uSmq4ibPgVCSftfRZhhQs3PsKDEETFDFQdjigueniVZ6Pb6mcaFRBoy","signer_id":"6ad20a76a405bdae35d6fe2050725d44f055de9d0305b027acd2bb36c490f40d"}},{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"5sy31rpp1ZtKhPFSUoEkbsAfdL3irFkRvDzStKc5em2F","outcome":{"executor_id":"37e1d65580d2a44923bce44babb0f32d6a4280547a4e89e69718a61c42c120f9","gas_burnt":2428314524384,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["CyZ6aPkczSi3oQcDgnris3oYMYbWn9nGkp4PRHee9XAm"],"status":{"SuccessReceiptId":"CyZ6aPkczSi3oQcDgnris3oYMYbWn9nGkp4PRHee9XAm"},"tokens_burnt":"242831452438400000000"},"proof":[{"direction":"Right","hash":"61UwP8PVZ7wf7uTcf6iADcgRsn9UHWC1XMGF4WXZ3AGW"},{"direction":"Left","hash":"De74QDTDJ9onAC61rkQrWwyCR6cRK6R1k8eWNChzQfAG"},{"direction":"Right","hash":"EkrgUHptWkcbKXKYmu89MmMXKJbybLfbLMRhoGGmvt7v"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOnJlb1dxeEU0YVEtMzdlMWQ2NTU4MGQyYTQ0OTIzYmNlNDRiYWJiMGYzMmQ2YTQyODA1NDdhNGU4OWU2OTcxOGE2MWM0MmMxMjBmOSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"5sy31rpp1ZtKhPFSUoEkbsAfdL3irFkRvDzStKc5em2F","nonce":85569677000013,"public_key":"ed25519:7RtBV7grEag56CAfhC1gcQAt65QhJdxE65Cixw2QC2Ls","receiver_id":"token.sweat","signature":"ed25519:4N8hgZjwv9JpL2GodnCwyjFTdubEths7H2xis81GzUFEgv7d6y6hjQG2rk3yvjNrTCC6npvfauXGQVeoSy9gA6kx","signer_id":"37e1d65580d2a44923bce44babb0f32d6a4280547a4e89e69718a61c42c120f9"}},{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"HwDUCUs3zts1s13UJaSH8Qbzj8fyvgURAYkaPH2KKq2o","outcome":{"executor_id":"app.nearcrowd.near","gas_burnt":2428312288450,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n"],"status":{"SuccessReceiptId":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n"},"tokens_burnt":"242831228845000000000"},"proof":[{"direction":"Left","hash":"2noCGDgAPNyXJ6ZaSWbh5Y4xGrWDUUtapygE8j5sfPnv"},{"direction":"Left","hash":"De74QDTDJ9onAC61rkQrWwyCR6cRK6R1k8eWNChzQfAG"},{"direction":"Right","hash":"EkrgUHptWkcbKXKYmu89MmMXKJbybLfbLMRhoGGmvt7v"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiYW5nZWxvay5uZWFyIiwic29sdXRpb25faGFzaCI6WzExMSwxMjEsMjQ0LDE3NSwxOCw2MSwxMTIsMTgsMTQ5LDI0NSwyMyw2OSwxMCw1NywyMzUsMywxNDksMjYsMjQ3LDIyNCw5NCwxOTksMjI5LDgxLDEyMSwxNzYsMjMyLDcsMTYsMTIxLDcxLDE2OV19","deposit":"0","gas":200000000000000,"method_name":"approve_solution"}}],"hash":"HwDUCUs3zts1s13UJaSH8Qbzj8fyvgURAYkaPH2KKq2o","nonce":43616777844741,"public_key":"ed25519:CXYkSHvK2rj6sCGbaKPbTtwhcMrPvWxs1ntVvA6vLtm2","receiver_id":"app.nearcrowd.near","signature":"ed25519:4tgN6qkmvGsHEFjmPkKDtDxT62XG1Xx2GZE1dr4eGE2KjBbpM6BFNQwkmuihXoWdmq5ZWkMLHC5A5Sqvywncpc5K","signer_id":"app.nearcrowd.near"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","outcome":{"executor_id":"app.nearcrowd.near","gas_burnt":3300131924827,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"3177217332"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"104961404250"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"86640000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"13049316000"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"307907973"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"7551495558"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"19613838"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"123442110"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"706580754"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1550623074"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1675001106"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"418650854076"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"24362627916"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"11215179444"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"585610980"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"11462089944"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"840145644"}],"version":3},"receipt_ids":["FuocYXxdpnGgFRPv89PUUeJADFFHoHPyZfrRQgwKPUQi"],"status":{"SuccessValue":""},"tokens_burnt":"330013192482700000000"},"proof":[{"direction":"Right","hash":"4YAGJgYSR4UL7fMv4SaMrq69Bnurg5YvpfJaQyYVwKoC"},{"direction":"Right","hash":"HS8ZdkzE2ZxAfzmgF79AxTAMCJJ9PQBWkKzzp5NwKRpo"},{"direction":"Left","hash":"3ANUWAfdSBpbNozdTRgEmyP5zqyuyqfBq1MwHoLabqoZ"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":{"predecessor_id":"app.nearcrowd.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiYW5nZWxvay5uZWFyIiwic29sdXRpb25faGFzaCI6WzExMSwxMjEsMjQ0LDE3NSwxOCw2MSwxMTIsMTgsMTQ5LDI0NSwyMyw2OSwxMCw1NywyMzUsMywxNDksMjYsMjQ3LDIyNCw5NCwxOTksMjI5LDgxLDEyMSwxNzYsMjMyLDcsMTYsMTIxLDcxLDE2OV19","deposit":"0","gas":200000000000000,"method_name":"approve_solution"}}],"gas_price":"335989893","input_data_ids":[],"output_data_receivers":[],"signer_id":"app.nearcrowd.near","signer_public_key":"ed25519:CXYkSHvK2rj6sCGbaKPbTtwhcMrPvWxs1ntVvA6vLtm2"}},"receipt_id":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","receiver_id":"app.nearcrowd.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"BiijgyfTANtByLAU1MUCXAUmiUSaNRbJ4GotMyGg54bC","outcome":{"executor_id":"7f2a4588f275fa492661c9f8894dfe8b9c949fb58b5c799898ff780b6f6790f2","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":["CXR8fS6gsf6NDi4m2NsNtAXaRcVbExANbEwvYVSXxkxx"],"status":{"SuccessValue":""},"tokens_burnt":"417494768750000000000"},"proof":[{"direction":"Left","hash":"G1jQj4Mb1FtHCXnMVHzoded6M7pgBc7fLvAHWG2ornLL"},{"direction":"Right","hash":"HS8ZdkzE2ZxAfzmgF79AxTAMCJJ9PQBWkKzzp5NwKRpo"},{"direction":"Left","hash":"3ANUWAfdSBpbNozdTRgEmyP5zqyuyqfBq1MwHoLabqoZ"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":{"predecessor_id":"sweat_welcome.near","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"50000000000000000000000"}}],"gas_price":"103000000","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:4AHsaAFYC2xdLmxHJ4jrD4dYrC1nhSTWA3aUJkGiSHwo"}},"receipt_id":"BiijgyfTANtByLAU1MUCXAUmiUSaNRbJ4GotMyGg54bC","receiver_id":"7f2a4588f275fa492661c9f8894dfe8b9c949fb58b5c799898ff780b6f6790f2"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"6NNRshJfwuZYJvxXS1JCFMZXCjYd2GdK6gLgeE85FJqK","outcome":{"executor_id":"559943f15e74939ddeb799d684a9c05ef1d96a4bb40314e90c6a45b381c92c88","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"9HZzbir1LE5sss6x1siinvDEh4ypZnfiTG4efg96FQ5a"},{"direction":"Left","hash":"C7rcybGYQXgr38952JuYa68EJBhXqKjgMsHm2nZNSuX4"},{"direction":"Left","hash":"3ANUWAfdSBpbNozdTRgEmyP5zqyuyqfBq1MwHoLabqoZ"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1434895483223091390800"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"559943f15e74939ddeb799d684a9c05ef1d96a4bb40314e90c6a45b381c92c88","signer_public_key":"ed25519:5gCG5Czt7ZsqELQVxEAEGL4eq8e75Y2wd52Fs96FsnN2"}},"receipt_id":"6NNRshJfwuZYJvxXS1JCFMZXCjYd2GdK6gLgeE85FJqK","receiver_id":"559943f15e74939ddeb799d684a9c05ef1d96a4bb40314e90c6a45b381c92c88"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"6r6vy6jeNLXJ35JhJb8yUsJHMebP8SnZwNQjPRfcJ38L","outcome":{"executor_id":"aea0194936450e30a33909b750b514df4702afeb68d458dbc52ce03306dc0286","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"AMLmKfYKBtKkHetmKFbwqxfwp2RC9TBveCz9PJsphFgi"},{"direction":"Left","hash":"C7rcybGYQXgr38952JuYa68EJBhXqKjgMsHm2nZNSuX4"},{"direction":"Left","hash":"3ANUWAfdSBpbNozdTRgEmyP5zqyuyqfBq1MwHoLabqoZ"},{"direction":"Right","hash":"7PZRbMCXzTZiGsEiEqRBNnq8m5JGmuEQq9yiZ95d5ySX"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1430867781039410315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"aea0194936450e30a33909b750b514df4702afeb68d458dbc52ce03306dc0286","signer_public_key":"ed25519:CkfXqE6dQnQSqSLyND7YobfaqNpRaoNHsVFeKRFCb1Wu"}},"receipt_id":"6r6vy6jeNLXJ35JhJb8yUsJHMebP8SnZwNQjPRfcJ38L","receiver_id":"aea0194936450e30a33909b750b514df4702afeb68d458dbc52ce03306dc0286"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"3WKf2WSBkJJr1G3fF9XEHMde672FbPWiCLQyEktfbBfR","outcome":{"executor_id":"2f82783e48caca533db368aad9da6dd9f92374bffd008245b94a9417c66ae34f","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"AVmTabtkwN12p3LpzHbTRuERiJinJNjjRBC31saSrfLQ"},{"direction":"Left","hash":"9PkGgoga8zM8986urpYRg2KzWgLzLocMSBGgWtK6Dwnt"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1457218832396810315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"2f82783e48caca533db368aad9da6dd9f92374bffd008245b94a9417c66ae34f","signer_public_key":"ed25519:4CTYtj8RMfo2qJFWMzSaVSfft1FuoLGKnUESbGxnR3BL"}},"receipt_id":"3WKf2WSBkJJr1G3fF9XEHMde672FbPWiCLQyEktfbBfR","receiver_id":"2f82783e48caca533db368aad9da6dd9f92374bffd008245b94a9417c66ae34f"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","outcome":{"executor_id":"app.nearcrowd.near","gas_burnt":4281737624379,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"9266883885"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"104961404250"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"383040000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"31318358400"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1566149196"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"25171651860"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"59531448"},{"cost":"STORAGE_HAS_KEY_BASE","cost_category":"WASM_HOST_COST","gas_used":"54039896625"},{"cost":"STORAGE_HAS_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"646607745"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2507155173"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1279309140"},{"cost":"STORAGE_REMOVE_BASE","cost_category":"WASM_HOST_COST","gas_used":"53473030500"},{"cost":"STORAGE_REMOVE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"535085376"},{"cost":"STORAGE_REMOVE_RET_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"380541348"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"7001572926"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2819314680"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"7785653289"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"692384104818"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"50254759236"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"30841743471"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1688738640"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"28655224860"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2296144656"}],"version":3},"receipt_ids":["FTDicsTMMGMFMmdun4kJphR4Xjix6H6dfot4LwAmdZWU"],"status":{"SuccessValue":"ZmFsc2U="},"tokens_burnt":"428173762437900000000"},"proof":[{"direction":"Left","hash":"HysEXBQ3bXt1yoBvoUVD6jn1z8mev4N7RfnJ4JnhNuDw"},{"direction":"Left","hash":"9PkGgoga8zM8986urpYRg2KzWgLzLocMSBGgWtK6Dwnt"}]},"receipt":{"predecessor_id":"gareva.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImJpZCI6IjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0=","deposit":"0","gas":30000000000000,"method_name":"claim_assignment"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"gareva.near","signer_public_key":"ed25519:6HwxDN5HEK1nphYuBGHQVLTPpbtgSJYBupwi8qACunjQ"}},"receipt_id":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","receiver_id":"app.nearcrowd.near"}}],"shard_id":0,"state_changes":[{"cause":{"receipt_hash":"3WKf2WSBkJJr1G3fF9XEHMde672FbPWiCLQyEktfbBfR","type":"receipt_processing"},"change":{"account_id":"2f82783e48caca533db368aad9da6dd9f92374bffd008245b94a9417c66ae34f","amount":"74351083352347299999967","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"5sy31rpp1ZtKhPFSUoEkbsAfdL3irFkRvDzStKc5em2F","type":"transaction_processing"},"change":{"account_id":"37e1d65580d2a44923bce44babb0f32d6a4280547a4e89e69718a61c42c120f9","amount":"25163340743040644483170","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"6NNRshJfwuZYJvxXS1JCFMZXCjYd2GdK6gLgeE85FJqK","type":"receipt_processing"},"change":{"account_id":"559943f15e74939ddeb799d684a9c05ef1d96a4bb40314e90c6a45b381c92c88","amount":"1786929249419117499999905","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"DD4ZQawic8dWCmahMUYcAg7r9pUEn9ySwRXJUdpqnKLf","type":"transaction_processing"},"change":{"account_id":"6a24e779e81108ebeba2d424a49347999f6314383872479a164ef6a4c55213c7","amount":"29150571014554489684977","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"76kuoHMchbcdmHTbCcg8AtsoPDfcXZ8cXvM85Kdp7Kyn","type":"transaction_processing"},"change":{"account_id":"6ad20a76a405bdae35d6fe2050725d44f055de9d0305b027acd2bb36c490f40d","amount":"44473025034048889684962","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"BiijgyfTANtByLAU1MUCXAUmiUSaNRbJ4GotMyGg54bC","type":"receipt_processing"},"change":{"account_id":"7f2a4588f275fa492661c9f8894dfe8b9c949fb58b5c799898ff780b6f6790f2","amount":"50000000000000000000000","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"6r6vy6jeNLXJ35JhJb8yUsJHMebP8SnZwNQjPRfcJ38L","type":"receipt_processing"},"change":{"account_id":"aea0194936450e30a33909b750b514df4702afeb68d458dbc52ce03306dc0286","amount":"62488762692101899999939","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"HwDUCUs3zts1s13UJaSH8Qbzj8fyvgURAYkaPH2KKq2o","type":"transaction_processing"},"change":{"account_id":"app.nearcrowd.near","amount":"3864979577342348747179783769","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":4525592},"type":"account_update"},{"cause":{"receipt_hash":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","amount":"3864979577342348747179783769","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":4525681},"type":"account_update"},{"cause":{"receipt_hash":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","type":"action_receipt_gas_reward"},"change":{"account_id":"app.nearcrowd.near","amount":"3864979603496937838479783769","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":4525681},"type":"account_update"},{"cause":{"receipt_hash":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","amount":"3864979603496937838479783769","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":4525627},"type":"account_update"},{"cause":{"receipt_hash":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","type":"action_receipt_gas_reward"},"change":{"account_id":"app.nearcrowd.near","amount":"3864979659107009420479783769","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":4525627},"type":"account_update"},{"cause":{"tx_hash":"5sy31rpp1ZtKhPFSUoEkbsAfdL3irFkRvDzStKc5em2F","type":"transaction_processing"},"change":{"access_key":{"nonce":85569677000013,"permission":"FullAccess"},"account_id":"37e1d65580d2a44923bce44babb0f32d6a4280547a4e89e69718a61c42c120f9","public_key":"ed25519:7RtBV7grEag56CAfhC1gcQAt65QhJdxE65Cixw2QC2Ls"},"type":"access_key_update"},{"cause":{"tx_hash":"DD4ZQawic8dWCmahMUYcAg7r9pUEn9ySwRXJUdpqnKLf","type":"transaction_processing"},"change":{"access_key":{"nonce":64846206000026,"permission":"FullAccess"},"account_id":"6a24e779e81108ebeba2d424a49347999f6314383872479a164ef6a4c55213c7","public_key":"ed25519:89LrYd5LjETg4vBgpEcD5h9NmEDLeceCcS8ZsDC8MogA"},"type":"access_key_update"},{"cause":{"tx_hash":"76kuoHMchbcdmHTbCcg8AtsoPDfcXZ8cXvM85Kdp7Kyn","type":"transaction_processing"},"change":{"access_key":{"nonce":71319939000056,"permission":"FullAccess"},"account_id":"6ad20a76a405bdae35d6fe2050725d44f055de9d0305b027acd2bb36c490f40d","public_key":"ed25519:8ByygDeLtYPYEXYP6SYkHT9Gbb118aiMc2D7EJuCMtkL"},"type":"access_key_update"},{"cause":{"receipt_hash":"BiijgyfTANtByLAU1MUCXAUmiUSaNRbJ4GotMyGg54bC","type":"receipt_processing"},"change":{"access_key":{"nonce":93085140000000,"permission":"FullAccess"},"account_id":"7f2a4588f275fa492661c9f8894dfe8b9c949fb58b5c799898ff780b6f6790f2","public_key":"ed25519:9ZQASqHFBjk87rUX6mQWq75KpwzRGPZa5aZdqa9Ydidw"},"type":"access_key_update"},{"cause":{"tx_hash":"HwDUCUs3zts1s13UJaSH8Qbzj8fyvgURAYkaPH2KKq2o","type":"transaction_processing"},"change":{"access_key":{"nonce":43616777844741,"permission":"FullAccess"},"account_id":"app.nearcrowd.near","public_key":"ed25519:CXYkSHvK2rj6sCGbaKPbTtwhcMrPvWxs1ntVvA6vLtm2"},"type":"access_key_update"},{"cause":{"receipt_hash":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"U1RBVEU=","value_base64":"EgAAAGFwcC5uZWFyY3Jvd2QubmVhcg=="},"type":"data_update"},{"cause":{"receipt_hash":"DwVQmRqaeHiMwRESakJhp2jdYbq5ATLwa5BdKQtaek8n","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"YQwAAABhbmdlbG9rLm5lYXI=","value_base64":"b3n0rxI9cBKV9RdFCjnrA5Ua9+Bex+VRebDoBxB5R6k="},"type":"data_update"},{"cause":{"receipt_hash":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"cAEAAAA=","value_base64":"AABAe6XwY4GWCgAAAAAAAAAA9ESCkWNFAAAAAAAAAAAsAQAAAAAAAAAAQHul8GOBlgoAAAAAAADVO2wmxwhkFzS5vAAAAAAABgAAAHQBAAAAYtsHvQAAAAAABgAAAHQBAAAAYlUBAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA=="},"type":"data_update"},{"cause":{"receipt_hash":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABjDgAAAAAAAAA=","value_base64":"TvSunjRFxs/AAT2jxNX9gFrnn50m1Az2G6nwWYMtWBIE"},"type":"data_update"},{"cause":{"receipt_hash":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABjVQEAAAAAAAA="},"type":"data_deletion"},{"cause":{"receipt_hash":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABnCwAAAGdhcmV2YS5uZWFy","value_base64":"A7Y3MCuQR8kni5KMpBaBmDw7qDbsfdTJ34jCRgWtDWY1AZdAIL3GCGQXAACgvVL4sUBLBQAAAAAAAA=="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000093085141/shard_1.json b/block-streamer/data/000093085141/shard_1.json new file mode 100644 index 000000000..e52927b3d --- /dev/null +++ b/block-streamer/data/000093085141/shard_1.json @@ -0,0 +1 @@ +{"chunk":{"author":"neardevgov.poolv1.near","header":{"balance_burnt":"336955792883000000000","chunk_hash":"4K9Zj1ZanDm9Cu3G4JnRWsCTPjhT7iMsb2m1ACNexvPZ","encoded_length":161,"encoded_merkle_root":"ExpvgdXmijmisL9VWUSZd6cH2XZ8KjMfvRq2TFXwWaJ","gas_limit":1000000000000000,"gas_used":3772355756216,"height_created":93085141,"height_included":93085141,"outcome_root":"35sKVEqAvGiAddvByfoFNyJz7DF5AYWaPnLPGqqvwi3s","outgoing_receipts_root":"DaAh9aGfy8hrRkSPa8VajKr4JG6eivSGognFYQXuezTG","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"9D5KaP2ZukXZR5SKAXgU9cuq5niDuvpjrbCXofAzy4ow","rent_paid":"0","shard_id":1,"signature":"ed25519:3thVBMZWNUgwdLsNtm2hfHF2MrHhovjN9aQQJAi7uNicKw8eUyLjbcpwVMorQ6uT9JbK1GJbto9m1XWF5XNr96LW","tx_root":"11111111111111111111111111111111","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"188653474442246325537704"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:DHJZ82oYW3skfV8PJPPGQ583dcrp5Qc6aP6hJYePGWp1"}},"receipt_id":"4TbBhk5HrKbL7m6Jvkw8R7W6hsx38cGTEqtnbysjwG9t","receiver_id":"relay.aurora"}],"transactions":[]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","outcome":{"executor_id":"aurora","gas_burnt":8169280906812,"logs":["signer_address Address(0xf2f3776b9f69a9302c897aec26b59027e01d36cc)","total_writes_count 3\ntotal_written_bytes 96"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"24093898101"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"215483313000"},{"cost":"ECRECOVER_BASE","cost_category":"WASM_HOST_COST","gas_used":"278821988457"},{"cost":"KECCAK256_BASE","cost_category":"WASM_HOST_COST","gas_used":"17638473825"},{"cost":"KECCAK256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4766585310"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"7086626100"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1438668219"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"467400000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"107004391200"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5979496809"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"70480625208"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"826343808"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"1239850606500"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"19809621120"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"44686043820"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"385180416000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6166522944"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"14378504868"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5955559488"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"1255952562228"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"6223558122"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"31782272211"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"1301441200092"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"75702461247"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"22661783040"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"97427764524"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"32602212864"}],"version":3},"receipt_ids":["E9czK4fNS8banNi9La7XhXVEpFtzYVjQxUdGocQ8pf7x"],"status":{"SuccessValue":"BwAAAAAADqsAAAAAAAABAAAAxuUYVDjhcwlZwe81UQWaP+x0TpAEAAAALUUjmMuLueXNreqr/gpdZr+Dq98xftVjOmRSj1vudFgAAAAAAAAAAAAAAADH6oGevwjl/0gdRwimAvkjgK+7CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKusA0AAAAAAAAAAAAAAAA8vN3a59pqTAsiXrsJrWQJ+AdNswAAAAA"},"tokens_burnt":"816928090681200000000"},"proof":[]},"receipt":{"predecessor_id":"relay.aurora","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"+NCDE+9ihAQsHYCDHoSAlMblGFQ44XMJWcHvNVEFmj/sdE6QgLhk9Otz1AAAAAAAAAAAAAAAAMfqgZ6/COX/SB1HCKYC+SOAr7sKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq6wDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZHZpJ4ScioLIoJjp4MmKXcnhylS3GYki1uvpHg8xwMblDaLwkSVXzQMCoCSmCbsMdGTFxPBCAdautus3bO0uFxVXiXY2YJaHHTyO","deposit":"0","gas":300000000000000,"method_name":"submit"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:6gNHGeifK61KjBgW2Pn6NyQJyw9xgP4uLQgr1NrKQjhK"}},"receipt_id":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","receiver_id":"aurora"}}],"shard_id":1,"state_changes":[{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"receipt_processing"},"change":{"account_id":"aurora","amount":"63666262831378951240605883273","code_hash":"d4saiJUZuaKVUzbr5MtEPdh7Z4415hz9tHidvLEyv71","locked":"0","storage_paid_at":0,"storage_usage":6366140096},"type":"account_update"},{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"action_receipt_gas_reward"},"change":{"account_id":"aurora","amount":"63666263003605259592605883273","code_hash":"d4saiJUZuaKVUzbr5MtEPdh7Z4415hz9tHidvLEyv71","locked":"0","storage_paid_at":0,"storage_usage":6366140096},"type":"account_update"},{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"receipt_processing"},"change":{"account_id":"aurora","key_base64":"BwHy83drn2mpMCyJeuwmtZAn4B02zA==","value_base64":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAT72M="},"type":"data_update"},{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"receipt_processing"},"change":{"account_id":"aurora","key_base64":"BwJrGVnnAwPjNNfLV3IixilrwTL67Q==","value_base64":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACB0TRn1GgNIA="},"type":"data_update"},{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"receipt_processing"},"change":{"account_id":"aurora","key_base64":"BwLy83drn2mpMCyJeuwmtZAn4B02zA==","value_base64":"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPfGSn574A="},"type":"data_update"},{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"receipt_processing"},"change":{"account_id":"aurora","key_base64":"BwTG5RhUOOFzCVnB7zVRBZo/7HROkAEAAACrT6haoUz6rrj0wWfgN4McXyqiaDCOWtdITu1+obYNbg==","value_base64":"ZHZoKxgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq6wDQ="},"type":"data_update"},{"cause":{"receipt_hash":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","type":"receipt_processing"},"change":{"account_id":"aurora","key_base64":"BwTG5RhUOOFzCVnB7zVRBZo/7HROkAEAAAC9VjXct4m74HWr3h+OjFeHYpCW/Nsq5KcvCYbMwr0TJQ==","value_base64":"AGR2aScAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq6wDQ="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000093085141/shard_2.json b/block-streamer/data/000093085141/shard_2.json new file mode 100644 index 000000000..bee624cfe --- /dev/null +++ b/block-streamer/data/000093085141/shard_2.json @@ -0,0 +1 @@ +{"chunk":{"author":"astro-stakers.poolv1.near","header":{"balance_burnt":"660301625914400000000","chunk_hash":"GWGFPyAvWLnHw4eo8XEUNz3EFpfogE4acJ13h8jorTT1","encoded_length":701,"encoded_merkle_root":"AVWEeygQLxnYMGREJmAQE4BDQwsg1FCJJ2dK2kWNh47W","gas_limit":1000000000000000,"gas_used":7049381384144,"height_created":93085141,"height_included":93085141,"outcome_root":"CxxEgz23MJKojjGWXe3muBjD6yiLCSo7NyGgfpu64aug","outgoing_receipts_root":"H96o6Z112kp4FgNm5rbpGxNCc53x4bbmcPce6NpaFMoK","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"5TztQJP7d3436iXmFpG5PSYAtNhz9mNYu7XJ8UyxDpQe","rent_paid":"0","shard_id":2,"signature":"ed25519:3eNQL7PXH96tb2LkkYdNrHJ8nB7PpGjCc98gsURvMMMifsWcjL48AM9AB1QWZFCFd61oiyGViKKKB8HSYom4z7jP","tx_root":"AWG7nTuyxSdtk5sEwGuB1mUmACnkAvGMn5zw8mbgXAFP","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"gareva.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImJpZCI6IjUwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0=","deposit":"0","gas":30000000000000,"method_name":"claim_assignment"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"gareva.near","signer_public_key":"ed25519:6HwxDN5HEK1nphYuBGHQVLTPpbtgSJYBupwi8qACunjQ"}},"receipt_id":"AjPq8fHZqoAHQ5x6gMvYh86mrtM6DiybpwQf2LNrbRfD","receiver_id":"app.nearcrowd.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"12524843062500000000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"HaT3ZccHwsEWnRJUBVuHqBetFNj2VkPpN3n3LEqsggBy","receiver_id":"sweat_welcome.near"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"3zuxLwgGW9eE3MzCMu5SdZRgJr57gFrgsdyPHTZSkSBJ","outcome":{"executor_id":"beevaapaa.near","gas_burnt":2428073043512,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["CC1BqWcwshhYyfWYhByzsKPkuTDqNkEMZP14YmsiLzd8"],"status":{"SuccessReceiptId":"CC1BqWcwshhYyfWYhByzsKPkuTDqNkEMZP14YmsiLzd8"},"tokens_burnt":"242807304351200000000"},"proof":[]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImFwcHJvdmUiOnRydWUsInJlamVjdGlvbl9yZWFzb24iOiIifQ==","deposit":"0","gas":80000000000000,"method_name":"submit_review"}}],"hash":"3zuxLwgGW9eE3MzCMu5SdZRgJr57gFrgsdyPHTZSkSBJ","nonce":93048334000411,"public_key":"ed25519:H3s8jBvjZ9t4CPHvWTvSrEAwB6cjNGraQJrFsifzqBJ1","receiver_id":"app.nearcrowd.near","signature":"ed25519:54dGecUBcyxMBnvK9k329nP8nx8z4R72GRbbYStUa2JntPEnVn39rrZNdZhwFcdVUmGgJFPshNypPVVboNULjMBH","signer_id":"beevaapaa.near"}}]},"receipt_execution_outcomes":[],"shard_id":2,"state_changes":[{"cause":{"tx_hash":"3zuxLwgGW9eE3MzCMu5SdZRgJr57gFrgsdyPHTZSkSBJ","type":"transaction_processing"},"change":{"account_id":"beevaapaa.near","amount":"1962568243503760945877158","code_hash":"7DcAdMUT1MjaZ9s7zhXdyxKvQsRsSfnmBGdzeZaquqDE","locked":"0","storage_paid_at":0,"storage_usage":6892},"type":"account_update"},{"cause":{"tx_hash":"3zuxLwgGW9eE3MzCMu5SdZRgJr57gFrgsdyPHTZSkSBJ","type":"transaction_processing"},"change":{"access_key":{"nonce":93048334000411,"permission":{"FunctionCall":{"allowance":"106579422027617557348832","method_names":[],"receiver_id":"app.nearcrowd.near"}}},"account_id":"beevaapaa.near","public_key":"ed25519:H3s8jBvjZ9t4CPHvWTvSrEAwB6cjNGraQJrFsifzqBJ1"},"type":"access_key_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000093085141/shard_3.json b/block-streamer/data/000093085141/shard_3.json new file mode 100644 index 000000000..b84bdae3a --- /dev/null +++ b/block-streamer/data/000093085141/shard_3.json @@ -0,0 +1 @@ +{"chunk":{"author":"bzam6yjpnfnxsdmjf6pw.poolv1.near","header":{"balance_burnt":"2290298267551700000000","chunk_hash":"6s29toMBxow7sNNf2huCzs9Jx77cuD4Ei6Q53FsJRV8e","encoded_length":2884,"encoded_merkle_root":"6e2PjAbKLmK3ZHMDuU6AGqbF7LuKXQrx8Ha9X5jtQT2m","gas_limit":1000000000000000,"gas_used":25705493164532,"height_created":93085141,"height_included":93085141,"outcome_root":"D14cNKyYmNfNrHkXAgdQREjf9sUdgBbretD8bTzzibup","outgoing_receipts_root":"DpPAKmARwUGBfYLDbXWPTL53auH3ingsvsFsj2MCwbe6","prev_block_hash":"2cHmVxWxsdwowimB5bX3kR9qXa3F8c1t7gbTrMV7hn69","prev_state_root":"98HzgR4qeCoV9R8KXw3i27HdQreH5o4j5VWmocxHh19A","rent_paid":"0","shard_id":3,"signature":"ed25519:2wvGjamXwpn3euAyv8Xr951ZJVzGeMJiMQ8cGTa6HwW986kfPe5YCFhMytaNLe74MxgpezX8Fy3ptRbaBiPZCPAk","tx_root":"4iRESwugTeYZzUeYs6VxbUQHvnX2UnBrY7yXRpB6fUyG","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"sweat_welcome.near","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"50000000000000000000000"}}],"gas_price":"103000000","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:4AHsaAFYC2xdLmxHJ4jrD4dYrC1nhSTWA3aUJkGiSHwo"}},"receipt_id":"BiijgyfTANtByLAU1MUCXAUmiUSaNRbJ4GotMyGg54bC","receiver_id":"7f2a4588f275fa492661c9f8894dfe8b9c949fb58b5c799898ff780b6f6790f2"},{"predecessor_id":"relay.aurora","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"+NCDE+9ihAQsHYCDHoSAlMblGFQ44XMJWcHvNVEFmj/sdE6QgLhk9Otz1AAAAAAAAAAAAAAAAMfqgZ6/COX/SB1HCKYC+SOAr7sKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAq6wDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZHZpJ4ScioLIoJjp4MmKXcnhylS3GYki1uvpHg8xwMblDaLwkSVXzQMCoCSmCbsMdGTFxPBCAdautus3bO0uFxVXiXY2YJaHHTyO","deposit":"0","gas":300000000000000,"method_name":"submit"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:6gNHGeifK61KjBgW2Pn6NyQJyw9xgP4uLQgr1NrKQjhK"}},"receipt_id":"GWjrwTQ5VwBdJvesqY8Drrv47bdPePNRqdsE8H1tVc5K","receiver_id":"aurora"},{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"350000000000000000000"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"H9SAk6R1uuq7AzSpK9mJ29LRB7dN3MAfsppZPh9nhWqi","receiver_id":"sweat_welcome.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3581491543024083600468"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"7GAVJSFYbALYWLndUuWnFhYXzuP4gzU5ckwAdGQxL8Vv","receiver_id":"sweat_welcome.near"},{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"350000000000000000000"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:Ed2Qp2whbMphnXayJU94jdSV3KeEejn9wk54FouFxxDZ"}},"receipt_id":"FWBbgZDwWRhCzJSucoXrHtFLMoeq4LQrPYZshotwK7vc","receiver_id":"sweat_welcome.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3626309065658283600468"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:Ed2Qp2whbMphnXayJU94jdSV3KeEejn9wk54FouFxxDZ"}},"receipt_id":"9eEhPbDep1MdfSfsoLvW4p2wC9XuBVuGoTUaUaoR7wqp","receiver_id":"sweat_welcome.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"5130383935839187500"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:3ABZWQDGe7NTdZgFWZXm5ssnGvSmnvY9ZBFA8zXAsGZm"}},"receipt_id":"C4Y2iwVETV4QxvzRiC3hpWumDRYrCwi8sK6yZ2oM6smz","receiver_id":"sweat_welcome.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1434895483223091390800"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"559943f15e74939ddeb799d684a9c05ef1d96a4bb40314e90c6a45b381c92c88","signer_public_key":"ed25519:5gCG5Czt7ZsqELQVxEAEGL4eq8e75Y2wd52Fs96FsnN2"}},"receipt_id":"6NNRshJfwuZYJvxXS1JCFMZXCjYd2GdK6gLgeE85FJqK","receiver_id":"559943f15e74939ddeb799d684a9c05ef1d96a4bb40314e90c6a45b381c92c88"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1430867781039410315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"aea0194936450e30a33909b750b514df4702afeb68d458dbc52ce03306dc0286","signer_public_key":"ed25519:CkfXqE6dQnQSqSLyND7YobfaqNpRaoNHsVFeKRFCb1Wu"}},"receipt_id":"6r6vy6jeNLXJ35JhJb8yUsJHMebP8SnZwNQjPRfcJ38L","receiver_id":"aea0194936450e30a33909b750b514df4702afeb68d458dbc52ce03306dc0286"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1457218832396810315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"2f82783e48caca533db368aad9da6dd9f92374bffd008245b94a9417c66ae34f","signer_public_key":"ed25519:4CTYtj8RMfo2qJFWMzSaVSfft1FuoLGKnUESbGxnR3BL"}},"receipt_id":"3WKf2WSBkJJr1G3fF9XEHMde672FbPWiCLQyEktfbBfR","receiver_id":"2f82783e48caca533db368aad9da6dd9f92374bffd008245b94a9417c66ae34f"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"72krTmVBGzwqT2VyNaw7NAmybGHr9TaEFgt5r2tg3p9U","outcome":{"executor_id":"learn.sweat","gas_burnt":2428229558892,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["FwJaDcrTo1hoVULwVmH1gqFkmUDnw4LNyf1RRNCKVykm"],"status":{"SuccessReceiptId":"FwJaDcrTo1hoVULwVmH1gqFkmUDnw4LNyf1RRNCKVykm"},"tokens_burnt":"242822955889200000000"},"proof":[{"direction":"Right","hash":"9XVpjCP7Lon6AiVEggKTP5LqCTqfhMrqu5jfge82KnF"},{"direction":"Right","hash":"B5xfYP2LpgnDCi1GzuUzEr13sbVhGUGo4psUwWBUcowo"},{"direction":"Right","hash":"9oPAiJ31D7s7nctzdc31aNAenpvz4Z6vHrfV1PFEn7Ts"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImQ3OWJjYWQ5MmE3NTM4YjczNGYyYzczN2U0MDAxMDFiMzMzYjRkMzVhMGMwZDc5ODRmNWMyN2QyYmUxMWQ0YjMiLCJhbW91bnQiOiIxMDAwMDAwIiwibWVtbyI6InN3OnRyOkoxV2sxRDZ3S2EifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"hash":"72krTmVBGzwqT2VyNaw7NAmybGHr9TaEFgt5r2tg3p9U","nonce":79605023186277,"public_key":"ed25519:9wRicBBHSqTtPzooqYTmhijZcQXonJM7FjQxvh6cfKzo","receiver_id":"usdt.tether-token.near","signature":"ed25519:26XWRA6TrevnVZyVvJU1mecFFCKUCxXofbsvhT39cruxEYQeTA3Hys9piTJ4CXW4CanuhiDks92oq6BTwMMV5e55","signer_id":"learn.sweat"}},{"outcome":{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"9GeEkpJ3L4PC2EU1Pseyc1TfxdJxoQMkNHjtjZ1bSCsw","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":2428135649664,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["BxgraVvjqCoUpwMeaJivTDBg5TLkibsoqGt3aLxqkedZ"],"status":{"SuccessReceiptId":"BxgraVvjqCoUpwMeaJivTDBg5TLkibsoqGt3aLxqkedZ"},"tokens_burnt":"242813564966400000000"},"proof":[{"direction":"Left","hash":"9ujNQYLwxCHJtfF3m7XCwumhk96opPR3sENDnijhXEhz"},{"direction":"Right","hash":"B5xfYP2LpgnDCi1GzuUzEr13sbVhGUGo4psUwWBUcowo"},{"direction":"Right","hash":"9oPAiJ31D7s7nctzdc31aNAenpvz4Z6vHrfV1PFEn7Ts"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiN2YyYTQ1ODhmMjc1ZmE0OTI2NjFjOWY4ODk0ZGZlOGI5Yzk0OWZiNThiNWM3OTk4OThmZjc4MGI2ZjY3OTBmMiJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"hash":"9GeEkpJ3L4PC2EU1Pseyc1TfxdJxoQMkNHjtjZ1bSCsw","nonce":64885790385160,"public_key":"ed25519:4AHsaAFYC2xdLmxHJ4jrD4dYrC1nhSTWA3aUJkGiSHwo","receiver_id":"token.sweat","signature":"ed25519:5j7b5geLDHcoEwgysZD4TfzGyj89VFuqwMPw3y3mz165zYoZcuqxMH9qPgWtZXTsgjQrMW4pKgyLd7yUMKVmFhVe","signer_id":"sweat_welcome.near"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"H9SAk6R1uuq7AzSpK9mJ29LRB7dN3MAfsppZPh9nhWqi","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":["429zNXLd2jR2BEETtwxaLUrQXNhQvcdshF9eb5DNf2Nu"],"status":{"SuccessValue":""},"tokens_burnt":"22318256250000000000"},"proof":[{"direction":"Right","hash":"C4WWkJcwB43B6TMA4Dq63VJ8VxNdNnx3XBkwDaXnha7n"},{"direction":"Left","hash":"E6PSDshezur3CjDBbhtTaNpKS9SRwMhoBmSVonw35zhp"},{"direction":"Right","hash":"9oPAiJ31D7s7nctzdc31aNAenpvz4Z6vHrfV1PFEn7Ts"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"350000000000000000000"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"H9SAk6R1uuq7AzSpK9mJ29LRB7dN3MAfsppZPh9nhWqi","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"7GAVJSFYbALYWLndUuWnFhYXzuP4gzU5ckwAdGQxL8Vv","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"FxU1sEYundW98oLSfq1QC9hYzAA4c5CGEwevv8mBR8Ng"},{"direction":"Left","hash":"E6PSDshezur3CjDBbhtTaNpKS9SRwMhoBmSVonw35zhp"},{"direction":"Right","hash":"9oPAiJ31D7s7nctzdc31aNAenpvz4Z6vHrfV1PFEn7Ts"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3581491543024083600468"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"7GAVJSFYbALYWLndUuWnFhYXzuP4gzU5ckwAdGQxL8Vv","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"FWBbgZDwWRhCzJSucoXrHtFLMoeq4LQrPYZshotwK7vc","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":["DUcr9mypKu5jadbsDZSeY27bKe1ENoAP48QvGhnr8QVs"],"status":{"SuccessValue":""},"tokens_burnt":"22318256250000000000"},"proof":[{"direction":"Right","hash":"5UAL2gfQPdJ2XTJ7KrrVjxzPJ6rYoXaH4T3eyHUdLJx9"},{"direction":"Right","hash":"4syYE6tJ6Emfc4H1f9F6yxMufyBM1aq59aWFMpemCNTE"},{"direction":"Left","hash":"HwEAbDK9bdTkdyWAazpVmhZBik8xFGU1yYWBroPYgAq4"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"350000000000000000000"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:Ed2Qp2whbMphnXayJU94jdSV3KeEejn9wk54FouFxxDZ"}},"receipt_id":"FWBbgZDwWRhCzJSucoXrHtFLMoeq4LQrPYZshotwK7vc","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"9eEhPbDep1MdfSfsoLvW4p2wC9XuBVuGoTUaUaoR7wqp","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"8vb9biLxjtSwwpuZcdRvKCLB8MQXozqTkT9GC1yXCSxB"},{"direction":"Right","hash":"4syYE6tJ6Emfc4H1f9F6yxMufyBM1aq59aWFMpemCNTE"},{"direction":"Left","hash":"HwEAbDK9bdTkdyWAazpVmhZBik8xFGU1yYWBroPYgAq4"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3626309065658283600468"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:Ed2Qp2whbMphnXayJU94jdSV3KeEejn9wk54FouFxxDZ"}},"receipt_id":"9eEhPbDep1MdfSfsoLvW4p2wC9XuBVuGoTUaUaoR7wqp","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"C4Y2iwVETV4QxvzRiC3hpWumDRYrCwi8sK6yZ2oM6smz","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"A99jUueZu5FSfVixTV7tG86jdb8gSDfAisBcZWB5JX5v"},{"direction":"Left","hash":"HJA4GMFD1NzLJasfXpSM5BFnhA8mXGP89A5SaL6rkLEU"},{"direction":"Left","hash":"HwEAbDK9bdTkdyWAazpVmhZBik8xFGU1yYWBroPYgAq4"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"5130383935839187500"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:3ABZWQDGe7NTdZgFWZXm5ssnGvSmnvY9ZBFA8zXAsGZm"}},"receipt_id":"C4Y2iwVETV4QxvzRiC3hpWumDRYrCwi8sK6yZ2oM6smz","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"4TbBhk5HrKbL7m6Jvkw8R7W6hsx38cGTEqtnbysjwG9t","outcome":{"executor_id":"relay.aurora","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"7vD1QQq3vtMJw4NuDW4G4tzqhaykfuXJf5oxfgj2froh"},{"direction":"Left","hash":"HJA4GMFD1NzLJasfXpSM5BFnhA8mXGP89A5SaL6rkLEU"},{"direction":"Left","hash":"HwEAbDK9bdTkdyWAazpVmhZBik8xFGU1yYWBroPYgAq4"},{"direction":"Right","hash":"7TBcTGGbdbcrbwPN8Ch7YYAYoYHevQv4xUDNapuXuqGT"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"188653474442246325537704"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:DHJZ82oYW3skfV8PJPPGQ583dcrp5Qc6aP6hJYePGWp1"}},"receipt_id":"4TbBhk5HrKbL7m6Jvkw8R7W6hsx38cGTEqtnbysjwG9t","receiver_id":"relay.aurora"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"HaT3ZccHwsEWnRJUBVuHqBetFNj2VkPpN3n3LEqsggBy","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"6XTFHFoiSz8fcErWXHnRQbDdPsL19P8LaBwM9Txh3sUw"},{"direction":"Right","hash":"CaXbHao7W4CPgDb7kfLvP94KypgcXU5TzkEQMECr7YE2"},{"direction":"Left","hash":"CRqTMvXzUoYuQkh5VqwKBty8W8cPc8yAUbVpkWBnVxgc"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"12524843062500000000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"HaT3ZccHwsEWnRJUBVuHqBetFNj2VkPpN3n3LEqsggBy","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","outcome":{"executor_id":"token.sweat","gas_burnt":4035946129711,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"7e887c69ca5edd6eadfe7b87905a1c12d0ea5c8e6e6ae1a9659b74a43490d497\",\"new_owner_id\":\"reward-optin.sweat\",\"amount\":\"100000000000000000\",\"memo\":\"sw:rew:optin:YGM43xyW8P-7e887c69ca5edd6eadfe7b87905a1c12d0ea5c8e6e6ae1a9659b74a43490d497\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4342402239"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"275880000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2816787753"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"48295380"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3955245564"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"579670413336"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"95929977591"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"56047784232"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1378228632"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2128875840"}],"version":3},"receipt_ids":["FpvAgN8LCKcGYwQ2CxxHP4XExLgNjYSUXVCZdBdrv3hY"],"status":{"SuccessValue":""},"tokens_burnt":"403594612971100000000"},"proof":[{"direction":"Left","hash":"AuAPQjLNCa1QpLnEFZts9eRJeYXjgAqJ25Cye3y4Pf9X"},{"direction":"Right","hash":"CaXbHao7W4CPgDb7kfLvP94KypgcXU5TzkEQMECr7YE2"},{"direction":"Left","hash":"CRqTMvXzUoYuQkh5VqwKBty8W8cPc8yAUbVpkWBnVxgc"}]},"receipt":{"predecessor_id":"7e887c69ca5edd6eadfe7b87905a1c12d0ea5c8e6e6ae1a9659b74a43490d497","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46WUdNNDN4eVc4UC03ZTg4N2M2OWNhNWVkZDZlYWRmZTdiODc5MDVhMWMxMmQwZWE1YzhlNmU2YWUxYTk2NTliNzRhNDM0OTBkNDk3In0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"7e887c69ca5edd6eadfe7b87905a1c12d0ea5c8e6e6ae1a9659b74a43490d497","signer_public_key":"ed25519:9Ww5a9UTdpEi1qYVFkv97E2Fvx88gqbVtnNTzCKrqvvJ"}},"receipt_id":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","outcome":{"executor_id":"token.sweat","gas_burnt":3411715482193,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"17f374fb3e1e293f646627b869be7f63b3586ce417947e7f13275195f96cc8af\",\"new_owner_id\":\"reward-optin.sweat\",\"amount\":\"100000000000000000\",\"memo\":\"sw:rew:optin:YGM43xyW8P-17f374fb3e1e293f646627b869be7f63b3586ce417947e7f13275195f96cc8af\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4342402239"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"118560000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2816787753"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"48295380"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3955245564"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"112713691482"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"95929977591"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"56093858568"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1378228632"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2128875840"}],"version":3},"receipt_ids":["AmFPHsoaV3xNn9YAyyJDGtiFvx8n9RSunkEaUuHRignS"],"status":{"SuccessValue":""},"tokens_burnt":"341171548219300000000"},"proof":[{"direction":"Right","hash":"5DTQWcaMq1Jn5dhwQTwDamAQMLoY4jRDj7ecsV9HrE45"},{"direction":"Left","hash":"1h1E65sVAQuaJVhD769zVwG4qRUXzbZFZcweqPyWgXu"},{"direction":"Left","hash":"CRqTMvXzUoYuQkh5VqwKBty8W8cPc8yAUbVpkWBnVxgc"}]},"receipt":{"predecessor_id":"17f374fb3e1e293f646627b869be7f63b3586ce417947e7f13275195f96cc8af","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46WUdNNDN4eVc4UC0xN2YzNzRmYjNlMWUyOTNmNjQ2NjI3Yjg2OWJlN2Y2M2IzNTg2Y2U0MTc5NDdlN2YxMzI3NTE5NWY5NmNjOGFmIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"17f374fb3e1e293f646627b869be7f63b3586ce417947e7f13275195f96cc8af","signer_public_key":"ed25519:2cVh7bm8ibwH4VUoUJqGb1yrckq5HdFHkzHrW8inRBSn"}},"receipt_id":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"9EGASj6bhqjHhCGaRG6u2BkywEBrLzTZSaoh6ECPH2Jo","id":"616WtYRqUTBG1axECm9d2doCxdmiNqGBpGDSWGh7w6ec","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"8tgyZPF5rRjU1wmJNVFhztMvbphcnVQ6AQV7KehthF14"},{"direction":"Left","hash":"1h1E65sVAQuaJVhD769zVwG4qRUXzbZFZcweqPyWgXu"},{"direction":"Left","hash":"CRqTMvXzUoYuQkh5VqwKBty8W8cPc8yAUbVpkWBnVxgc"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"12524843062500000000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:Ed2Qp2whbMphnXayJU94jdSV3KeEejn9wk54FouFxxDZ"}},"receipt_id":"616WtYRqUTBG1axECm9d2doCxdmiNqGBpGDSWGh7w6ec","receiver_id":"sweat_welcome.near"}}],"shard_id":3,"state_changes":[{"cause":{"tx_hash":"72krTmVBGzwqT2VyNaw7NAmybGHr9TaEFgt5r2tg3p9U","type":"transaction_processing"},"change":{"account_id":"learn.sweat","amount":"30099117542978502021678522885","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":428},"type":"account_update"},{"cause":{"receipt_hash":"4TbBhk5HrKbL7m6Jvkw8R7W6hsx38cGTEqtnbysjwG9t","type":"receipt_processing"},"change":{"account_id":"relay.aurora","amount":"3510443757928215044805925599","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":149094},"type":"account_update"},{"cause":{"tx_hash":"9GeEkpJ3L4PC2EU1Pseyc1TfxdJxoQMkNHjtjZ1bSCsw","type":"transaction_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595920925663625528594987164","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"H9SAk6R1uuq7AzSpK9mJ29LRB7dN3MAfsppZPh9nhWqi","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595921275663625528594987164","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"7GAVJSFYbALYWLndUuWnFhYXzuP4gzU5ckwAdGQxL8Vv","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595924857155168552678587632","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"FWBbgZDwWRhCzJSucoXrHtFLMoeq4LQrPYZshotwK7vc","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595925207155168552678587632","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"9eEhPbDep1MdfSfsoLvW4p2wC9XuBVuGoTUaUaoR7wqp","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595928833464234210962188100","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"C4Y2iwVETV4QxvzRiC3hpWumDRYrCwi8sK6yZ2oM6smz","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595928838594618146801375600","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"HaT3ZccHwsEWnRJUBVuHqBetFNj2VkPpN3n3LEqsggBy","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595928851119461209301375600","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"616WtYRqUTBG1axECm9d2doCxdmiNqGBpGDSWGh7w6ec","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"9595928863644304271801375600","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"42378846351006527537475502452","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":1750527028},"type":"account_update"},{"cause":{"receipt_hash":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"42378846399235542775275502452","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":1750527028},"type":"account_update"},{"cause":{"receipt_hash":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"42378846399235542775275502453","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":1750527028},"type":"account_update"},{"cause":{"receipt_hash":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"42378846428737638587475502453","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":1750527028},"type":"account_update"},{"cause":{"tx_hash":"72krTmVBGzwqT2VyNaw7NAmybGHr9TaEFgt5r2tg3p9U","type":"transaction_processing"},"change":{"access_key":{"nonce":79605023186277,"permission":"FullAccess"},"account_id":"learn.sweat","public_key":"ed25519:9wRicBBHSqTtPzooqYTmhijZcQXonJM7FjQxvh6cfKzo"},"type":"access_key_update"},{"cause":{"tx_hash":"9GeEkpJ3L4PC2EU1Pseyc1TfxdJxoQMkNHjtjZ1bSCsw","type":"transaction_processing"},"change":{"access_key":{"nonce":64885790385160,"permission":"FullAccess"},"account_id":"sweat_welcome.near","public_key":"ed25519:4AHsaAFYC2xdLmxHJ4jrD4dYrC1nhSTWA3aUJkGiSHwo"},"type":"access_key_update"},{"cause":{"receipt_hash":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXRuYQUV3fGQ1o6B6EgAAAAAWgAAAAAAAACbrJQMIAMAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXRuYQUV3fGQ1o6B6EgAAAAAWgAAAAAAAACbrJQMIAMAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dACglC/CpWTpUlrfXdnDq1V4xp9895dkoq1najL6P/vm/g==","value_base64":"XEcywPEmdNwAAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAC+WbOiDTgrGUzyuN0KcZDzu9wI324/JhwraZg/XAop3w==","value_base64":"uVN0oH5BwR4YAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"zGuoGbPEvvumUASBeui7VVneDh4Ft2TGaxUPj3mR2eG","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADCUiigKPOTAl1jqrFvCFMV6YPDQuu8kGehwLHx0CgpIw==","value_base64":"AACU+U4hffxfJgIAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Fp8WoevW4UaFfeXV6341E5gcnkvREwjKByUDgvo4PdQy","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADCUiigKPOTAl1jqrFvCFMV6YPDQuu8kGehwLHx0CgpIw==","value_base64":"AAAeV8dm4P1fJgIAAAAAAA=="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503704/block.json b/block-streamer/data/000107503704/block.json new file mode 100644 index 000000000..b4ee4a706 --- /dev/null +++ b/block-streamer/data/000107503704/block.json @@ -0,0 +1 @@ +{"author":"figment.poolv1.near","chunks":[{"balance_burnt":"485659103789000000000","chunk_hash":"BCefp7WdCUm5fc45PxNbiQRzttbkVEj1ot2FosQxeWiv","encoded_length":4346,"encoded_merkle_root":"DmEPex1VR9LfJYJ4ehjiAiwrMq5jYTp6b1gS24YU5Bs5","gas_limit":1000000000000000,"gas_used":13206486412890,"height_created":107503704,"height_included":107503704,"outcome_root":"Gj2qZU1fPQjnQHm5hh1iXfU9jaGWwCvv7ApbPqwsHmBZ","outgoing_receipts_root":"7f8UYyyg2FvUMDAKt2kjsx5o6MEJgLPBZ6nzK8FNmqvZ","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"EJTrqvwLucnmtCcRS5RPffjxR2XTrRBFinG4M5i8Kisq","rent_paid":"0","shard_id":0,"signature":"ed25519:31HVoVGH3Epacxcx6SQ7nAxiAXcDnjD8Z3bgf1yM679MgsQYkVwj22wLtqcyk1aW7WYTtZwu4VybVET3bUhgAjeh","tx_root":"7dSm5ScHumdnTmTA17NYJHzBdUBDETtdpg5ysZX62kaf","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"0","chunk_hash":"FiGBhEdK2uM9KBh7H4dK5YDNzw7RzfpCmd2vZcFNd38R","encoded_length":8,"encoded_merkle_root":"9zYue7drR1rhfzEEoc4WUXzaYRnRNihvRoGt1BgK7Lkk","gas_limit":1000000000000000,"gas_used":0,"height_created":107503704,"height_included":107503704,"outcome_root":"11111111111111111111111111111111","outgoing_receipts_root":"8s41rye686T2ronWmFE38ji19vgeb6uPxjYMPt8y8pSV","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"9L3KFaS1MxkjdCyrsffb5cTgsLsVwD2mUEyDqprRd3Do","rent_paid":"0","shard_id":1,"signature":"ed25519:2ee828NqS9zNAMxNCUDd4mw4oXA7QihA3wC4kZq8uSLq8Ah42xqtB7tY7ZK3vcsAk1qxtm5KRGhdhnvwghXd5tjw","tx_root":"11111111111111111111111111111111","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"1224521732947700000000","chunk_hash":"4g39cKGFVe5xR81id822wq2qcoEpbViM7TNqXzASbZPB","encoded_length":2467,"encoded_merkle_root":"8mMCk5nAxUQW1JDGBehRkXV9dCTj1h6r1DrkyHqrxoSm","gas_limit":1000000000000000,"gas_used":18992367501374,"height_created":107503704,"height_included":107503704,"outcome_root":"7xHggAqQkxaU1oXg71cgj18qHRHj9pvHaF3J6sknTtRh","outgoing_receipts_root":"D5PNEZs3Nc4dFbwTkR5MSqb2MqutkwVxEUtjvci4hhnf","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"4Hz48BMoeHv2KPYxrcxzJ3XPRHNRSX7ph3DC47Gkx3Xj","rent_paid":"0","shard_id":2,"signature":"ed25519:2ZritGWAGrMMugd6KdwNwKss7PfrjMBEZsdtDSoQuM9iphLnuDh5im1gxPgeJSix2JZjh1wiqZauyg66nPQnQj2e","tx_root":"mZznc5c4D8b7jqriQdTENkBajhhUuFZXSK4KK8kpw4R","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"4406677798729500000000","chunk_hash":"4vnvY5qxjwmA4u8eGDjCacBWDQ1UBkFqv69GtBcTA72X","encoded_length":11863,"encoded_merkle_root":"3CEw9qMqbKp34eiiCjzqaBJdoggL1a8zAQVq2XnPuKBR","gas_limit":1000000000000000,"gas_used":47262988974297,"height_created":107503704,"height_included":107503704,"outcome_root":"7ayiPCkrvxeA4sqS4fqKz3M5oi2WZJ2JwYDvFvnxsLaE","outgoing_receipts_root":"Fs2dxiFc8P7RaB1esRfLxVQyahi68VnRxFdfA2oe88yD","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"2xo9ceo19cLwpxMaDU15mDkMDe5Ro8RrJFKFWpqKLyXV","rent_paid":"0","shard_id":3,"signature":"ed25519:2UgJn2DV4a88zeqUXQXAnV3m4P7XbGL1Myy6KvycnhXCaBaoHJ9Npj85jgJMUQUiiSzJN6HYCS1b9zsKZ1dkFNtk","tx_root":"5DR3LHZqv3qnF2FtkV1SJMxS1z7SvZGvF1c71Phkatv","validator_proposals":[],"validator_reward":"0"}],"header":{"approvals":[null,"ed25519:5pSNzbb1cdPH8RQ5FcwRqJeDH7UkRfJMBdSxLoaeRdLDvPhtPjYNbkh4KzWKZ9DWBvz1HTRwuCuTAmgh1r3T94Z1","ed25519:38joihtKvMMaoF62raaNtZQU1QCiEQQVdXTfbNLkpqTCCysMw5fui3qv6faPsYBk4pa8aT9n5xumgMtCfPmFpiPE","ed25519:2sPXkDgufeabUabzqWhnPrz91mkwjTDM8hBMbG562Luu7bK1VpXNJJDF59QGcxcVsPLtfoMfcQtCVDZ47V3DS1YU",null,"ed25519:3hkYP3wqAj8FSm89NfX2wkb7nWTs5qZwcGwMgUQKst89CizqJfNv6J3wKUmXCahb98URZuej54R6VmyVLAM7Pyzg",null,"ed25519:4KM8zuBveCrtZjAWQNGDftyU5gAfignnRktSA3S2sXn9Zxyq9ZS6U7G7rCkc3WHWFasb44o48ARQ2zhL8HTewoEU","ed25519:1fviKwjoZBXrNHKWLMtzZ2hAMniafubpcw4QVmLuSJEsrCYQP6t4uw1uVeVQ8Qu3ChduP64e3dJUdzmW2Vd5kys","ed25519:Bo2NAtcNUQSp4s9CczMhGer57zoodyBfAoD9vvQW44R9tnRGwQKJso3bw6twUBiRKPST999UCmHD8UqpBG5W2Mr","ed25519:3mCXRoE5Tvip1i5Yh5TBSizV1wqr1T5bNc94tazBVPUg5JHP7RrTnccVA53BQSsCdszJG6kPKfdh6jF9gH9awVPW","ed25519:34yRAAQ7MwqHo8HcLC9ajKkTj7GB2t2fCie1cQPS6EiUxN2qNwQPgWNqBTn4DbMLkhg47h5vhcEuVAYiGRTVHdE3","ed25519:3CKLJe1Ythc9fxjvttBxaf9o9nXCnFL6foudQ9sKZZDApVzjFR5jyndNQy8KdYAAKDbJ5wj46nrrTuEbhXkGphD3","ed25519:4y2TgRgC69FUR6pnenG4L6PmoYMAuS8Qvob1BGqn2HYEXyqtmdoRha4KdRBx24rR7ERCmNQa1mDKK8DB7WqWHyoj",null,"ed25519:S2nSUZ5rYfSKXKxR2mJn6afBZWNYqqz4Jh3Xn8HctSZAp41DZXJgyS9oNL3nawi2EYSfH6f86ijAoWy6ULSSF3C","ed25519:2uF1sLBnXWEVkqjABRw74J5TxQ5jt62zxBT7htUNPR5nQpKMFYvp22kL7QNRY9Y7cc3miqbdEVRqbdk4nuL8reFh",null,null,null,"ed25519:XwrSLD9qcpYtRhgHihscb7ynYTjeeTyHvqqTKpmdYDf6Ec7gqPJNhKDcE2a6bx9gEAQsJgudx9z9jFpPo991r1g","ed25519:m35fQwpSAW384z7fV2Bqv53mr4Rw6xyCWM81DbyWGDPiUqiymvHzyJRVKALsNV8fMNVmSsPXz7B2qZEMngR9BKm","ed25519:3x3ctxH1V6s2hpkb68ptMsTRjaYzLxK4tEzgHtjV3BDZJXPC73NbTTTFF3VZpjzNgL8NEhLCHDfXNrbc4BnhQLAV","ed25519:nVA29Kbrc1fSNhMhoyT2jDzHFbycBuzVwnwbAim3oAj5eMUFZCpvEwefAid1F6u6DaBmHpshtDL7AhVFgcqhiLQ",null,null,null,"ed25519:33Xdk71iouHc1HRe7chTJdrVx7FUfNorhGJvQvuED39r1hDiFt93LB8Wb8rPS9baBb9kA2FkPy3zKmcoinYQFy2j","ed25519:4bsjWTRXijoyhD6nLqhuBmocuRD31TiecBx1cPGMiAgHrtWuczUu6bbSxxiUSKCiKVxxKgoTjShhFJYBwc83x5Gt",null,"ed25519:VpdSunfPSCRLqEyKo4XVDWT6qPi6QvXeyUMB227sdAgczxhVN8HKGCdqva3eJM1oJZvxoYRvWGxSFRHzoGUQJ5J","ed25519:3sh3wFnqHx8itYU41NCPSR2ULLLDzb7gvQKSWjj8UMxYo3kbdPKv1m6MhWFGoWTeL92S7saGkF3z9Q24Ruz8xCuA","ed25519:9BAnPwQ7rg6jvX58wbChsDS4zLskBjVc6TwQzy28KgAdLSr4SUviGE667JvnrKNYHHdoY5YDwv6DrLotfzpbAqB",null,null,"ed25519:4kqeRmUbvLxXTkTmkRmnHj9vvxh8xxdPKv63JbwwaVcFMdn9AZGKJYECngsHZGhNzC4fqrUc96uN28VRq4rFBLr","ed25519:63quYdiQpX6Mxwmx94ofzWDMeaEz11hksoWnWehb8JZzGRniYJstKiMRzBZ146wC4dJ3ndB9kXWgQKzKriU7wmLP","ed25519:53aVoSAg5MaKXv6KS6VN6Zh995WVEuLVupckrTQrk57V4pS9g4dXk884dzR48cZVhfY2LPqmy76sxrjjhw4LWMmo","ed25519:5D4a2vL8uUsrMAuvA5qXvJipGLwhcMJZwy9hei39EQqkKKtYamQTRL7PM2CHuiPepbgeyJimtYe1m7vn6YkvXgG7",null,"ed25519:5taApeg4ZF34SrtyxczYo1PJB6rxWxs6wUt1SpDQKj5vppjgyhrFcJGA9vAM9E8kMNTJ2Scfx7m8SCXyyydhcvr3","ed25519:27Zxk5jQAr7y9j89C75pS9dXwun2KKFowaKF422Wgnx82MYfpyw25wW8Xp41KH9kEP3DDqEbHp3BjZLAgFpQZMQv","ed25519:3vWXcXaMSH1KNysBfjngLspjXQSAeMG9mYBcQuyYTg17G6di3oiTu3uc3qadpRtGByB3eSteisRQM7FDXPbUi2h2","ed25519:4DNkakGqALCdvkcwvNLANp24sC6b8b4b6nK25DjPXYriK31tM2gs8dmSdb93Qd49v2yvF8mTa5ndZdg3uRDBnnsr","ed25519:5Fuuc7NXejmiMQuos7knu7ASngXYrztZXUrev2Siq96K6Fvhe5mPv6upMPYxAb6fDa7DiGGiEXVaNaVD57bSKjcG","ed25519:4p19ppVajUUpX7ucRsEU3nDPmRzm9D7c76HBeVnQXwvNbxTHwRogHqdGEjAvooSEKc81TCNA8HJyZM49dVtzogc","ed25519:2kju7tMLWbs2ThzADSiAj5JcnDj4KQmgPPX2x7H1gGgYfeJhxEYx3WRJUXYcNaAPuMffDhqdU8tTF44dK8GyfkLe","ed25519:2dZcmXmMeysYibJcu8YdUJDHGDQBuXCUssLej3hBCYV9ycXsZq24JWHuVJC4NTrDUHX6CvfAv9yu43ZjiVb46Yku","ed25519:2mBJv5SxRv25GvFCKCqTJ2mbAcjYfdCun6BYF2cBJLNPNMnQRvgxdpu5fDV3fVaVifTfxhAWoECUNsTmd6phtkuT","ed25519:4Gvq97Sbp3bDe3ZTzdffKijUBdS8uy2wTiwZxa8o4Xyv6gDmq2QNYkGwEdQQp7VV571QXkwZovaPcLRshFdbEF55","ed25519:4ubA62bsKu7FP9wqx8KVvQYt9XgambsWehYc1N2hjjo34FFDdQSwroKpjQvgtyTuZ7W8Fpkc8MjWi34X6PQzPbuW","ed25519:3Vc8r3DviJYdfFBr7PfaAk7WQTsqsDvZ4sKnFPeqDjne2qXK7Rk3esbAEvAxZG7sHiZXEgS3r44GR5v6M5871CpL","ed25519:342QMRD8UhZ9ua8GmTQuDK3DRF5CWyNhW3HyQUfodUK1Wp2tEHvns4R6StKceqKGC1aKU2q1bTZLhGDWgc9Tgqdo","ed25519:4dFqyhq7ApohiG52GtW7WDYkb7bfuSaDexQ4QEykdqKbGfQhocciXjvE41k613yhADxy9HCWunZyejuwZuxXjwtJ","ed25519:5JmbeUMEv9zfdeCTx4pFeLwkE4KeUbFZ92mvcNqcffhSddpZ4jPUompfTYoKgTd77G4D1RpCjrz7KD6xBaoS6Smu","ed25519:3ricAeTXKt25mnaw5dn7fXDaEKDzHTKLQSB3zeQcyHJsXPGX6pxKauaWskAtk8JKYRd8p2aivRAsLYo1f4nQUt6n",null,null,null,null,"ed25519:7h3zJuYmu3YtnjUdXU1LKQwfwh1mBtjcX2TyrdQk5Nqpbq8JgiCkBAcqrysZAua5mwAy5H5LtANq29ffX7XuwQ2","ed25519:55xwtXdqvKLyH18jGQHJLHyURhC1Ho1cWP7kFBJcFSfpyP2PYiPmByX8g2TCrsnNDK3QmSxsxTnwB5ipr5joqhZ3",null,null,"ed25519:4kBCR9iBJiQ51p2ELYRXAvMG6wfBLcznJq7JkwNrqcyGoNFP1kABK9XJ3o1Q9zGMmxBrRX3QXre98m99JmzzSEjH","ed25519:YmxR9ZFRbuGTAeVXRZ8S7uceeKnuPM3nUVRtbzjfh6ZhUY1WSaRvKETJkLKs7ZfooxCGQWfc7kdj2vpRgk238TZ","ed25519:5vFt9KWmNqWJ8cYFyzyrMuTT2QZcSDAu1YuPBCpfCUnzRKZeUWR3bK4a9kEFem4Jo38yN7aCSHodUhVpTSrxNdFr","ed25519:ZuxDfysmNn4ycGfXf9CuVwucKJn3fkLebu3qXQ6nZCVBHYoGs7U8NjBnUc4EE6Aqa2h8aAKxdK2WaUWZkC6Dhop","ed25519:4cRsnZodnGShFLcmuJwSvvCy59ynB46rzXw27EkZrycPFVzZfwNcr6Qw6iNfXJZUsBKcfhRL87hT4SbfRvtWcWjF",null,"ed25519:B1PnUUo58JmkAY25qLtsD529xvQ78z6r15Cnuoz2Ru7s3enSY1UoD7tY7TyqTerJL9GJwHWRS4U2qXDTyP3Zvjv","ed25519:3xdGUa1kvgc89LfXxTBhowiipysJ4n6f273ip182hPyBrswawn9tWk4rETNeG1RB1xgwu5fmoZk4bnUVhq3DrqH3",null,"ed25519:QdNGQS83YqZAFFom3NSWoLyFzpdmqo7cUKydLphb7YpUDiRwjuv6ByEarQ49B4z68xKGw591nkJLyj7Tt73st7E",null,"ed25519:4XxGU1ppdZ9r1fAhStu3zGAibKrdrLApTeRw2ddZf1eLofWXVY4YNvx2XAkMKTS2MXZrukheqVJey5CmZpvbhDzv","ed25519:3FBRhp4fCVrAvb5GACx3WjkZGa6bxxRangk9v52Sg88wQRSEv7cXy74hMpqTVxLskr2hu9bDD8EjvoLjBoBxfBoM",null,"ed25519:45VMkGadD6PQs923zpBkY25zpbWyqyyzxXbYeYiBqGJQo278X629wdwYacN3TLZaKqERywgkZCVjjg1qsESMM6YD",null,null,"ed25519:VsjeoR9pqr74RiJhb2MtYvmTfgmX2dmFoqGAcX4uBMvaRMV6igyJxD3ypMXJmsSmZmVps2nn8f9hmiiSgNDiGVG","ed25519:2KhHT5ygUAt3Vu1ewkrmxSFM2ReYWu2U6vzF1fX1mYJT37MuEZBPkTmKMh42zYzHVsaX6PyoeJJxUv57tbUe2d8H","ed25519:59aLeTLfetdpcR2JaGP6zKUHcuKYX2dTDbL2aH5XMdKpdL9RfuovVX1FS1DcDp7q8N1EDrnvgiBKu3FQaYSjMgJD","ed25519:5zVRLy5yX8JpTcqVTK6NxXKtJWXghYdAzdn363Xtr6T8MB1BEwwiH49AiXtvEtU2f1YQ5b2cnjQyxg5r9NLCqoAx",null,"ed25519:4bufvT4oGEpR6nNTze1peW3gMPqcW36mVEv6JudcoYJtoFb6Vdc6iCXYBQuFaBpF2qwWsntfoBEi12ziVgd6NYkN","ed25519:3hfBki5To8A2bRs6msMot5SKRRueaete96tCZLbbswV5tSF5ubZ3Grdi6UcrMWumsP9JAiix8exufqB2MP5ahtjG","ed25519:hfrtJf1sJCTLt33LW8D7nssGGbSqs89n8pXbDx9n6dDf9tLLL8qpesMPpXp4oRTKFhDJEUysuvksvmRxm1Ri6ug","ed25519:6zce4u5BhAWK2e5RR9aoGjvDMxTPhNmjysLNs2NnGpTqZPAJeMz2NDzUedGmpt1hRDVMD9KC5SFTPQgwajoSQ7e","ed25519:33iomK9g9GreFsLqK4jtbSTcSBMkvBvEV4ze3Fx3vVCYJbjd5vn5cKbeyPUDqy8rd27t6hec28R8qAz87Pngenbe","ed25519:5cBtQLEHdZDWQDd9y2MjVyguGShmAkB6n7KESWrqFtc4LGzimoi8eR7vjNzsBmmeY1xjD5bNzvjpUgjgDBUmK29g","ed25519:2SMj88RqqkyTJGjGBTMKXUkDgy85u1xGVCMut87sSx6DPAxZwcHwD2dCTmDjYdXLXfayaX1uerRWesweNAZ8EPCs",null,"ed25519:3i1HujsmgA38ff94rNQP9PY3EyHW6fDBb86xcBC6WV96qZzR5SSu7R2D4QuuEghWoWhW5ZYNRZvhgwGmRy1EEVUY","ed25519:4hTw86TkBqDj1LSxNb5QMBDA5Pnr4qiSdU7LdmyW1cnwe9jyRbM8WrFMGYMmADPMXvLqL2vB1WromPVhqSXKUkxk",null,"ed25519:4UYyxms4k5QBJZcKXbxxcGUCv1rGw8Kb4Q3gpN5YeeejLqdXLkkPgGpdVzwV5RRaHjKtdMBRtQQkx2WuYsYYnUq5",null,"ed25519:5haWsrLJY3R1FSD36ZwGahdNsUT9Vj3HC2ux4P8wNKA9yJkeWLD55H9XRUwczKDw6ZkmW5NpGgfwJK8PpqoSgLeP"],"block_body_hash":"65vxErhhX94Tj3KkVjDCBtPg8zjH5GUQ7ppjwKgwv68W","block_merkle_root":"46WUVTnVcBHC1vyeoB22MN5S6NCN3CGzJxFdmqLs9f8j","block_ordinal":97414058,"challenges_result":[],"challenges_root":"11111111111111111111111111111111","chunk_headers_root":"2pjF7XbcicFC1ywCGQa9qFvzn4jWPztP5ZGXNuQSJUiQ","chunk_mask":[true,true,true,true],"chunk_receipts_root":"C45bBCfn9mW9f9CnheQUSHPoMpb7c16DvcpXTvs4fYWb","chunk_tx_root":"6R6JcTMJc8nkgRw3sbks41mx5CJTAXzMDBj6bZU36SRu","chunks_included":4,"epoch_id":"6YX8z84L1o3fAizZC2n77tDF1qdsrqLRyLs8box8iGgQ","epoch_sync_data_hash":null,"gas_price":"100000000","hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","height":107503704,"last_ds_final_block":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","last_final_block":"2kari6daio5cTgF2gp91U8rQxVqwxXRqWFm3vNkzJBrJ","latest_protocol_version":63,"next_bp_hash":"9dUinkGw7AGzXm4mPLNtHjxWDgdExk8n8S5UbmHWrqNw","next_epoch_id":"7VCSxVhcEc696MqbBJK67XAr3E96C1gUpcXHwZH4YDnH","outcome_root":"6hdsmWT9um7bcbDiW3s9U28Q23PFHDFfc2VVYhRNMQhh","prev_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_height":107503703,"prev_state_root":"34aM8BhzEgxQjkhCkoaxNiR5LRbLKTYjsc37MBmCieDu","random_value":"8EbnZwbU15ddB16SyK8fNNBHNNPvM7CMMiDH2JTm7sy5","rent_paid":"0","signature":"ed25519:2KuuHuyCqDqnHCbiMufzHNJEsWA4nmy7kLbjosc4PFp6wEqoLiEywzWDj8y9z54A9uT9Psqbsf6VUHURZKyoKp6L","timestamp":1702111281374650334,"timestamp_nanosec":"1702111281374650334","total_supply":"1166629794050533836369325199584807","validator_proposals":[],"validator_reward":"0"}} \ No newline at end of file diff --git a/block-streamer/data/000107503704/list_objects.xml b/block-streamer/data/000107503704/list_objects.xml new file mode 100644 index 000000000..418c09bef --- /dev/null +++ b/block-streamer/data/000107503704/list_objects.xml @@ -0,0 +1,6 @@ + + + + 000107503704/ + + diff --git a/block-streamer/data/000107503704/shard_0.json b/block-streamer/data/000107503704/shard_0.json new file mode 100644 index 000000000..8cfcafab0 --- /dev/null +++ b/block-streamer/data/000107503704/shard_0.json @@ -0,0 +1 @@ +{"chunk":{"author":"ledgerbyfigment.poolv1.near","header":{"balance_burnt":"485659103789000000000","chunk_hash":"BCefp7WdCUm5fc45PxNbiQRzttbkVEj1ot2FosQxeWiv","encoded_length":4346,"encoded_merkle_root":"DmEPex1VR9LfJYJ4ehjiAiwrMq5jYTp6b1gS24YU5Bs5","gas_limit":1000000000000000,"gas_used":13206486412890,"height_created":107503704,"height_included":107503704,"outcome_root":"Gj2qZU1fPQjnQHm5hh1iXfU9jaGWwCvv7ApbPqwsHmBZ","outgoing_receipts_root":"7f8UYyyg2FvUMDAKt2kjsx5o6MEJgLPBZ6nzK8FNmqvZ","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"EJTrqvwLucnmtCcRS5RPffjxR2XTrRBFinG4M5i8Kisq","rent_paid":"0","shard_id":0,"signature":"ed25519:31HVoVGH3Epacxcx6SQ7nAxiAXcDnjD8Z3bgf1yM679MgsQYkVwj22wLtqcyk1aW7WYTtZwu4VybVET3bUhgAjeh","tx_root":"7dSm5ScHumdnTmTA17NYJHzBdUBDETtdpg5ysZX62kaf","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuY2xhaW1fZmVlKDU5MWRjY2I5MDFhMTg4ODE1ZjMxYmFlMTE5NTk3NmRlODNhZDczNDc3OGVlOTczNjY5OWQ1N2NkNDFlZWEwYmEpIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","signer_public_key":"ed25519:6zse8K7L5Kydn2M8XhPDJAHyp4VSHxbXKVLn3H6PjKmj"}},"receipt_id":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","receiver_id":"token.sweat"},{"predecessor_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46ME9EakdRNVdyWS01Nzc2M2U0NDlkNjYxNTEyOTc5ZDUzOWU2ODBmNjA1NGIyYzhlNWQxYmMwYTJjYTQ4OWYwYzc0MTFlYThjODBiIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","signer_public_key":"ed25519:7pTxN4cYnC38CWxSzyHLvA1Zv6J3X6dipnNVu7zw2az6"}},"receipt_id":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","receiver_id":"token.sweat"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"6Zck9649GMA9j1mvW7wdqBKbPpwbXG6YEV9jEq11o6qy","outcome":{"executor_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","gas_burnt":2428312288450,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS"],"status":{"SuccessReceiptId":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS"},"tokens_burnt":"242831228845000000000"},"proof":[{"direction":"Right","hash":"HtBADxbeLQ9C4MQZQpG4phDrHjoesi4dLP6Kd3Hri4S"},{"direction":"Right","hash":"8vFZLWBzDezQ37FAP9N1whrktXcqWNVGByqxStk3B2u5"},{"direction":"Right","hash":"2ZYy3fLYUZYFLogJdAhUETVVRaaQXXaqEYbKto1NB1vF"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46MDlkVzVRcVdyTS02MjljY2VmNTY1ZjU2YTA2Y2YxZThhNjdjYWMxMTdmZGZiNjhlYjBkMGVmMTJmNmQzYTllZTJmOGEzMDQ0MDU4In0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"6Zck9649GMA9j1mvW7wdqBKbPpwbXG6YEV9jEq11o6qy","nonce":73232851000234,"public_key":"ed25519:7dwdvN5r5p6YqjoeosozcMtDfiFhG3dpeBf5Bcs7bnwR","receiver_id":"token.sweat","signature":"ed25519:3uqhST9eaZ9rpfdHfU1PiKK7P4kF8wRaQfZkw1FmtV9Z1pMdBVKbFY2CDsFvxovCvWtctrFbuwA6ubF7cB5msRWC","signer_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"59vvKUun4e1VZMG1f5hRqQ7N1iquJBPR6ZZpCxjKmVgc","outcome":{"executor_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","gas_burnt":2427936651538,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx"],"status":{"SuccessReceiptId":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx"},"tokens_burnt":"242793665153800000000"},"proof":[{"direction":"Left","hash":"DjQqahCxuKWSY5ha3csP2YAy8XgdkQJKxQmJstHL9poF"},{"direction":"Right","hash":"8vFZLWBzDezQ37FAP9N1whrktXcqWNVGByqxStk3B2u5"},{"direction":"Right","hash":"2ZYy3fLYUZYFLogJdAhUETVVRaaQXXaqEYbKto1NB1vF"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"e30=","deposit":"0","gas":100000000000000,"method_name":"claim"}}],"hash":"59vvKUun4e1VZMG1f5hRqQ7N1iquJBPR6ZZpCxjKmVgc","nonce":65559505000181,"public_key":"ed25519:2mv7FkNM2MriXXkZHNoBHuGAZrn83Cx9iytDFsviXz7T","receiver_id":"tge-lockup.sweat","signature":"ed25519:4aR1q3NyQNsXP3aS2Wty4uGDuuSGzmRGuJ7bsgJzhPz5mokYV5LLmNQHduuwnyf1mTmgEpKPHpisbVaoeQ7Cpj1K","signer_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"9ucRZ9BwkhyujYYTNgAsz4Lw9uYiXK3876ZS382oqkv8","outcome":{"executor_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","gas_burnt":4749197846222,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N"],"status":{"SuccessReceiptId":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N"},"tokens_burnt":"474919784622200000000"},"proof":[{"direction":"Right","hash":"BszFjwKUbdGdTDN8gshrYokaCR3xZ3bWtHJQ2sFF5KMV"},{"direction":"Left","hash":"6shhDR72f1kpdyaVYGe3FJzPNTQEduLDn67vEjCfJggA"},{"direction":"Right","hash":"2ZYy3fLYUZYFLogJdAhUETVVRaaQXXaqEYbKto1NB1vF"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImphcnMuc3dlYXQiLCJhbW91bnQiOiI5MTIwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuc3Rha2VfZmVlKDE2MWRjMzQzMzM3YTFmNzdiNjJmNzZiNGFmNmY4ZTU2MjM2YzU2OTk3MTVhODk2Y2M0N2YxMDllYjY0ZGQ5MDIpIiwibXNnIjoie1widHlwZVwiOlwic3Rha2VcIixcImRhdGFcIjp7XCJ0aWNrZXRcIjp7XCJwcm9kdWN0X2lkXCI6XCIzNjVkXzEyYXB5XCIsXCJ2YWxpZF91bnRpbFwiOlwiMTcwMjExMTM5NDAwMFwifSxcInNpZ25hdHVyZVwiOlwidFY5Z1lHUXVNVEQzUzl1RHBwaDdkUGZTbnVvVTFpcVgxRjFyUWw5MWwycU1ld2ZHYjNDa3BsU0l4cGl1RzF3bEpHdEdVNm5xU1JEREFtQ2JITDJVQlE9PVwiLFwicmVjZWl2ZXJfaWRcIjpcIjE2MWRjMzQzMzM3YTFmNzdiNjJmNzZiNGFmNmY4ZTU2MjM2YzU2OTk3MTVhODk2Y2M0N2YxMDllYjY0ZGQ5MDJcIn19In0=","deposit":"1","gas":32000000000000,"method_name":"ft_transfer_call"}},{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIyNTAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoiamFycy5zdGFrZV9mZWUoMTYxZGMzNDMzMzdhMWY3N2I2MmY3NmI0YWY2ZjhlNTYyMzZjNTY5OTcxNWE4OTZjYzQ3ZjEwOWViNjRkZDkwMikifQ==","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"9ucRZ9BwkhyujYYTNgAsz4Lw9uYiXK3876ZS382oqkv8","nonce":106629890000019,"public_key":"ed25519:AuyeWqLhopHxJQdEL37cQ8eMS4vAAutd5UFcqxvtuF9w","receiver_id":"token.sweat","signature":"ed25519:4Yf4Zgg8Q7Aip2ywX6mjdSrgBJrZ393oNXH7u9wNte1rwMdFNmEWhB27heG9JSCyjPhSTijTFGi5ZpB9dQodTgHY","signer_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"8gvwKvTdNtv84MLkffFg5XZ7EAdVpU8t1PkCjgp7sdWm","outcome":{"executor_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","gas_burnt":2428052920106,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA"],"status":{"SuccessReceiptId":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA"},"tokens_burnt":"242805292010600000000"},"proof":[{"direction":"Left","hash":"52t5hQKJFgnXb4pX773YKGDY7gJuNqSKhGqnVdfcxd1b"},{"direction":"Left","hash":"6shhDR72f1kpdyaVYGe3FJzPNTQEduLDn67vEjCfJggA"},{"direction":"Right","hash":"2ZYy3fLYUZYFLogJdAhUETVVRaaQXXaqEYbKto1NB1vF"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"hash":"8gvwKvTdNtv84MLkffFg5XZ7EAdVpU8t1PkCjgp7sdWm","nonce":107503700000001,"public_key":"ed25519:9YXJX3RM7pWo19DfAnRVfd9jvgm73AW2kt5H4JKeXvuZ","receiver_id":"embr.playember_reserve.near","signature":"ed25519:3CVb39s2Hq2y5wUB9WSnqwi7ViuiaJYRvyPJM1q9oZv68AeSrPJXQ7qHG4iaqWYs1BZwDStNfobVJUuBTqvsTMqA","signer_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"69NL3Y4g9JKZqCWFnFfhVhGpstCJ2w7ctj1jUmHzk3Kg","outcome":{"executor_id":"ann_asian.near","gas_burnt":2428260861968,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896"],"status":{"SuccessReceiptId":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896"},"tokens_burnt":"242826086196800000000"},"proof":[{"direction":"Right","hash":"aWzkKcPLnsnZX2Tz7LTuhdcSmcNpL4Y2qrEVBSkPm2x"},{"direction":"Right","hash":"5mJGh94UMrFDG2Bz63ZHVZ7ehZSHk6BuWLHGjgzeTNPq"},{"direction":"Left","hash":"AVTFUPphbiWch1jszJJ7S3K4QUJE2TpHihwKp7mFtRES"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImFwcHJvdmUiOmZhbHNlLCJyZWplY3Rpb25fcmVhc29uIjoiMtCxIFwi0YPRh9Cw0YHRgtC60L7QvC4uLtC90LAg0LrQvtGC0L7RgNC+0LlcIiDQvdCw0YDRg9GI0LXQvdCwINGB0LLRj9C30Ywg0YHQu9C+0LIifQ==","deposit":"0","gas":80000000000000,"method_name":"submit_review"}}],"hash":"69NL3Y4g9JKZqCWFnFfhVhGpstCJ2w7ctj1jUmHzk3Kg","nonce":107411459000641,"public_key":"ed25519:7ggZXCRZidLYQ4EWUzphoz3hS3veoH2MFSxNqMBddcTf","receiver_id":"app.nearcrowd.near","signature":"ed25519:fgWXdgyYkfTAGmxY6QDAEpieVwS63YbyS16KyGJ3G7oD4pyUnrD9h3pAfUvX9NjDuxfzszQHEwRsVixRAD5NKn2","signer_id":"ann_asian.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"73ssmYqkrPvrRyQjQScFRghpdGreouqek6H4doUc8spN","outcome":{"executor_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","gas_burnt":2428314524384,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46"],"status":{"SuccessReceiptId":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46"},"tokens_burnt":"242831452438400000000"},"proof":[{"direction":"Left","hash":"HkUrsVfHtWQC14HfMDugBWmiSpY4b45Gp1A7qYMBUzuD"},{"direction":"Right","hash":"5mJGh94UMrFDG2Bz63ZHVZ7ehZSHk6BuWLHGjgzeTNPq"},{"direction":"Left","hash":"AVTFUPphbiWch1jszJJ7S3K4QUJE2TpHihwKp7mFtRES"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOlpuUjRwM0RqNnItNzZjOTk2N2NlZmZhMThlOTFhZjM1OTkxYWJmZjllOTlkOGFhZTlkOWY2ZmIxOGZkYjgzNDMzMGY3NWNhNWVmMCJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"73ssmYqkrPvrRyQjQScFRghpdGreouqek6H4doUc8spN","nonce":83530612000095,"public_key":"ed25519:Ha2sdvj2JwCYFGwKCquhz2dQJwvmBQPJupLd1qgCPMAg","receiver_id":"token.sweat","signature":"ed25519:3yHrS86vQxZsCCvkgoqPvPrFL7JJxVSsEzj93xDYTEAyNMnbEr7adxhav5KP1EGp8VB37EezEGryyLgGxcSqjxbZ","signer_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"EXDevHM9yP7nXA1dYnJAm7GukBghNFmPAxMAgav5yP1p","outcome":{"executor_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","gas_burnt":2428133413730,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX"],"status":{"SuccessReceiptId":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX"},"tokens_burnt":"242813341373000000000"},"proof":[{"direction":"Right","hash":"HZnSLx8h6EKXLdkEvApRhft9U1wsVm6PVcfhhhhLb85g"},{"direction":"Left","hash":"MZ78GeYeWs1vyt6eCXp9LFW8BsvwaFQrDo4FmJY6aCN"},{"direction":"Left","hash":"AVTFUPphbiWch1jszJJ7S3K4QUJE2TpHihwKp7mFtRES"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6bzNYNU41V09kbSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"EXDevHM9yP7nXA1dYnJAm7GukBghNFmPAxMAgav5yP1p","nonce":74270803000011,"public_key":"ed25519:ActQJsSyGKNZY3PrA61TH1rpmG5sm9WKsJDWFskHtHGY","receiver_id":"token.sweat","signature":"ed25519:4CEjg3veUJBXTT37hMGBGeep4DtFgx3Xf33t7MeRCzUDN78gaJ1qGbu7ZDRvdwnDjRNeq6HNHf5gXWGA6f7eMAMC","signer_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"D9zNf5BsddCSRDbzdjiMrW6Yqh1zywvHuzMe7a9TnSBs","outcome":{"executor_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","gas_burnt":2428052920106,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf"],"status":{"SuccessReceiptId":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf"},"tokens_burnt":"242805292010600000000"},"proof":[{"direction":"Left","hash":"AwtAoqmXAwzEwYx1yLXnRYjFJfTtNhWTaBZWEUS97q3F"},{"direction":"Left","hash":"MZ78GeYeWs1vyt6eCXp9LFW8BsvwaFQrDo4FmJY6aCN"},{"direction":"Left","hash":"AVTFUPphbiWch1jszJJ7S3K4QUJE2TpHihwKp7mFtRES"},{"direction":"Right","hash":"38NYKFkBBSobmMf6Fn1yi6MAmkSU8WEKgSvoCuaZu4VR"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"hash":"D9zNf5BsddCSRDbzdjiMrW6Yqh1zywvHuzMe7a9TnSBs","nonce":107111165000004,"public_key":"ed25519:BNMbyBGEbs3C5xwRehfjpDuojE8THh52CqB4xx6mdyYn","receiver_id":"embr.playember_reserve.near","signature":"ed25519:jVdUzDTC9HJWU1rjooHfQ9nr9yTDu78H1myMtU18f4QV5nSGgxqo5BhYvba5TiDtUTVdG6xgVfx4mnAbkBNYUK2","signer_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"9k3kTs3ewLdNg12QzrRWDgpjczXXtGJQeuWeUB92ksrt","outcome":{"executor_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"GpqfrmtHj6LXtCwiTuArnyQjGzz9VNhaofCh7XBw5Bqy"},{"direction":"Right","hash":"HXCRZXitoYj9gJFsWUUvRZ9DE73hvd7bsfwx7c6ot5R1"},{"direction":"Right","hash":"DXKxEcAezWiKS8Qa5BHBwhzBYEP8HKpLcTfCV5CFb9D7"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"669992781410873374372"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","signer_public_key":"ed25519:EUo3ZevwMAZEmZVvgkneYVy5MTtf5kggSD7vdp7Pwb3a"}},"receipt_id":"9k3kTs3ewLdNg12QzrRWDgpjczXXtGJQeuWeUB92ksrt","receiver_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","outcome":{"executor_id":"app.nearcrowd.near","gas_burnt":4513417440471,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"11914564995"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"104961404250"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"200640000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"46977537600"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2174362476"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"32723147418"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"85650378"},{"cost":"STORAGE_HAS_KEY_BASE","cost_category":"WASM_HOST_COST","gas_used":"54039896625"},{"cost":"STORAGE_HAS_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"862143660"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"225427383000"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3683351427"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2356622100"},{"cost":"STORAGE_REMOVE_BASE","cost_category":"WASM_HOST_COST","gas_used":"106946061000"},{"cost":"STORAGE_REMOVE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1070170752"},{"cost":"STORAGE_REMOVE_RET_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"761082696"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"320983680000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8061444057"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5286215025"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"9832876863"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"788995840374"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"75310970460"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"39253128054"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2410538220"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"37251792318"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3303559116"}],"version":3},"receipt_ids":["6gAjVzkWiGgk41b1sZbayK3vn1Z3g2FDzugrha4cePMu"],"status":{"SuccessValue":"ZmFsc2U="},"tokens_burnt":"451341744047100000000"},"proof":[{"direction":"Left","hash":"BFYmgpZBjVXbpjvtbTKZeoaMZUXZDgNnhdN6buLX14i4"},{"direction":"Right","hash":"HXCRZXitoYj9gJFsWUUvRZ9DE73hvd7bsfwx7c6ot5R1"},{"direction":"Right","hash":"DXKxEcAezWiKS8Qa5BHBwhzBYEP8HKpLcTfCV5CFb9D7"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"nikitalya1777.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImJpZCI6IjQ5ODAyMjEyODI2NTYxNDg4MDE0NjcyIn0=","deposit":"0","gas":30000000000000,"method_name":"claim_assignment"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"nikitalya1777.near","signer_public_key":"ed25519:2p2EvvBgzMHRHkFBMQN5jSbPzFhz3fkbrGg8YLcdjLvo"}},"receipt_id":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","receiver_id":"app.nearcrowd.near"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"EBZ6LLtVtV9y8hpu1U5e6PDmY47zcCKw6QTM1CWmXaZL","outcome":{"executor_id":"0a5a5180907c50299227d6d00c872fd230599e9fd02fc3a1411ad3dedb7f58e7","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"9ZzWNtArTU5tFNNDofXW4PiKwwk2mCxEHJpqDfgKajKy"},{"direction":"Left","hash":"87mBFHVncmouqW3BNfp6v7hN25cpFMTmr2fvrteUFg5y"},{"direction":"Right","hash":"DXKxEcAezWiKS8Qa5BHBwhzBYEP8HKpLcTfCV5CFb9D7"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1446040177136210315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"0a5a5180907c50299227d6d00c872fd230599e9fd02fc3a1411ad3dedb7f58e7","signer_public_key":"ed25519:3BWHGuV4LdiJMceMkE2RQS9V1cFnNs3JDN1uPQFZoHJr"}},"receipt_id":"EBZ6LLtVtV9y8hpu1U5e6PDmY47zcCKw6QTM1CWmXaZL","receiver_id":"0a5a5180907c50299227d6d00c872fd230599e9fd02fc3a1411ad3dedb7f58e7"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"13CZZWeurGYbApuUifopzFfEgNyPaqBuoCYrtag5E7t3","outcome":{"executor_id":"66b5f475a9c47c75556a6fc0a9da5aba037deadcf8af20dbe905015f2793b702","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"61A1dd5bqAmFQxdBGEFVmQTdkZZVLmRyCNZmK7sWJyZ9"},{"direction":"Left","hash":"87mBFHVncmouqW3BNfp6v7hN25cpFMTmr2fvrteUFg5y"},{"direction":"Right","hash":"DXKxEcAezWiKS8Qa5BHBwhzBYEP8HKpLcTfCV5CFb9D7"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1464149690732594171000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"66b5f475a9c47c75556a6fc0a9da5aba037deadcf8af20dbe905015f2793b702","signer_public_key":"ed25519:FdyxjCxEBcTcs5UWWQLqaPTHrCnjEnWo7GYD3kB6jyRs"}},"receipt_id":"13CZZWeurGYbApuUifopzFfEgNyPaqBuoCYrtag5E7t3","receiver_id":"66b5f475a9c47c75556a6fc0a9da5aba037deadcf8af20dbe905015f2793b702"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"3aSCd6sFUmGBGr7cDiY56JCVA6nmBXt6pVEPYNcX2sNN","outcome":{"executor_id":"60ce5d802b33fdcad96f5cf1432bffb4baac0ea1b34c751fa2b668ea815d62d9","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"8799dt8uT1GaUfYYxKAz1qLiN1Z1UyZreDNS7XABeKcq"},{"direction":"Right","hash":"DtLKDbgbFEZCA1SNSPzAwKgYDvLJNXoha5Jjo7i8x2LT"},{"direction":"Left","hash":"7JXcFeQPzBGwvfR6FXdBLDUBfNVZvbKZ9LyAndGP7wFX"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1460951274535010315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"60ce5d802b33fdcad96f5cf1432bffb4baac0ea1b34c751fa2b668ea815d62d9","signer_public_key":"ed25519:7Wtefjrv1QL3LZp3GKpzLbU9ZgkEacnBJJ4w5FbbLLs2"}},"receipt_id":"3aSCd6sFUmGBGr7cDiY56JCVA6nmBXt6pVEPYNcX2sNN","receiver_id":"60ce5d802b33fdcad96f5cf1432bffb4baac0ea1b34c751fa2b668ea815d62d9"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"DUt3SUSyWRJE8qLJvwyopXyFtAv2U43BxLMfHwnRWB6P","outcome":{"executor_id":"a491964e370a17971491a8639ff2ab85b13a1174a8a3270973e61990bdc0d59e","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"EnCHCtBpGJnfE7bYVpV3yeGK6sGzKX7XWG22gUZzRgrP"},{"direction":"Right","hash":"DtLKDbgbFEZCA1SNSPzAwKgYDvLJNXoha5Jjo7i8x2LT"},{"direction":"Left","hash":"7JXcFeQPzBGwvfR6FXdBLDUBfNVZvbKZ9LyAndGP7wFX"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1461170717872610315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"a491964e370a17971491a8639ff2ab85b13a1174a8a3270973e61990bdc0d59e","signer_public_key":"ed25519:8zdzfCpu3rkhGnyhR5JBStERS3jNj2neKmcUMVJ4vdRe"}},"receipt_id":"DUt3SUSyWRJE8qLJvwyopXyFtAv2U43BxLMfHwnRWB6P","receiver_id":"a491964e370a17971491a8639ff2ab85b13a1174a8a3270973e61990bdc0d59e"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"3Emhdu5BRXeuZwp1bgKyRazAr32AUJMWBYJ2LdMSim4w","outcome":{"executor_id":"29bfbe7592f79b87dbf032198752abb2bc28a46056ee2d7fc4d988ef7690494e","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"6dtNnJvAfA5DoPrZzSVEUcityAnQaNJE1Lq9CCa2WVkH"},{"direction":"Left","hash":"7JXcFeQPzBGwvfR6FXdBLDUBfNVZvbKZ9LyAndGP7wFX"},{"direction":"Left","hash":"EywnpkQY79ysyrNfT6P4Yq8njYJZm1AY445GYGmBUqMx"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1459564471508810315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"29bfbe7592f79b87dbf032198752abb2bc28a46056ee2d7fc4d988ef7690494e","signer_public_key":"ed25519:3oyJ7EkSnbAyDUQ52KG1Dq36VBk9pEfRoWDZEeVvXAN9"}},"receipt_id":"3Emhdu5BRXeuZwp1bgKyRazAr32AUJMWBYJ2LdMSim4w","receiver_id":"29bfbe7592f79b87dbf032198752abb2bc28a46056ee2d7fc4d988ef7690494e"}}],"shard_id":0,"state_changes":[{"cause":{"receipt_hash":"EBZ6LLtVtV9y8hpu1U5e6PDmY47zcCKw6QTM1CWmXaZL","type":"receipt_processing"},"change":{"account_id":"0a5a5180907c50299227d6d00c872fd230599e9fd02fc3a1411ad3dedb7f58e7","amount":"122909744050840199999961","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"9ucRZ9BwkhyujYYTNgAsz4Lw9uYiXK3876ZS382oqkv8","type":"transaction_processing"},"change":{"account_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","amount":"53259242364010360072566","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":592},"type":"account_update"},{"cause":{"tx_hash":"59vvKUun4e1VZMG1f5hRqQ7N1iquJBPR6ZZpCxjKmVgc","type":"transaction_processing"},"change":{"account_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","amount":"56382708892602250993454","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"3Emhdu5BRXeuZwp1bgKyRazAr32AUJMWBYJ2LdMSim4w","type":"receipt_processing"},"change":{"account_id":"29bfbe7592f79b87dbf032198752abb2bc28a46056ee2d7fc4d988ef7690494e","amount":"106446821252213472744255","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":376},"type":"account_update"},{"cause":{"receipt_hash":"9k3kTs3ewLdNg12QzrRWDgpjczXXtGJQeuWeUB92ksrt","type":"receipt_processing"},"change":{"account_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","amount":"196287072822112006369624","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":376},"type":"account_update"},{"cause":{"receipt_hash":"3aSCd6sFUmGBGr7cDiY56JCVA6nmBXt6pVEPYNcX2sNN","type":"receipt_processing"},"change":{"account_id":"60ce5d802b33fdcad96f5cf1432bffb4baac0ea1b34c751fa2b668ea815d62d9","amount":"26145924760786799999996","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"6Zck9649GMA9j1mvW7wdqBKbPpwbXG6YEV9jEq11o6qy","type":"transaction_processing"},"change":{"account_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","amount":"4971750157182228889684794","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"13CZZWeurGYbApuUifopzFfEgNyPaqBuoCYrtag5E7t3","type":"receipt_processing"},"change":{"account_id":"66b5f475a9c47c75556a6fc0a9da5aba037deadcf8af20dbe905015f2793b702","amount":"20864095963644139473945","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"73ssmYqkrPvrRyQjQScFRghpdGreouqek6H4doUc8spN","type":"transaction_processing"},"change":{"account_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","amount":"22629710127462744483105","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"8gvwKvTdNtv84MLkffFg5XZ7EAdVpU8t1PkCjgp7sdWm","type":"transaction_processing"},"change":{"account_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","amount":"119875109666533093800","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"EXDevHM9yP7nXA1dYnJAm7GukBghNFmPAxMAgav5yP1p","type":"transaction_processing"},"change":{"account_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","amount":"24385044703799605828994","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":376},"type":"account_update"},{"cause":{"tx_hash":"D9zNf5BsddCSRDbzdjiMrW6Yqh1zywvHuzMe7a9TnSBs","type":"transaction_processing"},"change":{"account_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","amount":"715043722620600000000","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"DUt3SUSyWRJE8qLJvwyopXyFtAv2U43BxLMfHwnRWB6P","type":"receipt_processing"},"change":{"account_id":"a491964e370a17971491a8639ff2ab85b13a1174a8a3270973e61990bdc0d59e","amount":"23223517649469014494265","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"69NL3Y4g9JKZqCWFnFfhVhGpstCJ2w7ctj1jUmHzk3Kg","type":"transaction_processing"},"change":{"account_id":"ann_asian.near","amount":"252179372227536552167321","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":6174},"type":"account_update"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","amount":"4948982653724554655454114155","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":3508854},"type":"account_update"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"action_receipt_gas_reward"},"change":{"account_id":"app.nearcrowd.near","amount":"4948982716285020720254114155","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":3508854},"type":"account_update"},{"cause":{"tx_hash":"9ucRZ9BwkhyujYYTNgAsz4Lw9uYiXK3876ZS382oqkv8","type":"transaction_processing"},"change":{"access_key":{"nonce":106629890000019,"permission":"FullAccess"},"account_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","public_key":"ed25519:AuyeWqLhopHxJQdEL37cQ8eMS4vAAutd5UFcqxvtuF9w"},"type":"access_key_update"},{"cause":{"tx_hash":"59vvKUun4e1VZMG1f5hRqQ7N1iquJBPR6ZZpCxjKmVgc","type":"transaction_processing"},"change":{"access_key":{"nonce":65559505000181,"permission":"FullAccess"},"account_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","public_key":"ed25519:2mv7FkNM2MriXXkZHNoBHuGAZrn83Cx9iytDFsviXz7T"},"type":"access_key_update"},{"cause":{"tx_hash":"6Zck9649GMA9j1mvW7wdqBKbPpwbXG6YEV9jEq11o6qy","type":"transaction_processing"},"change":{"access_key":{"nonce":73232851000234,"permission":"FullAccess"},"account_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","public_key":"ed25519:7dwdvN5r5p6YqjoeosozcMtDfiFhG3dpeBf5Bcs7bnwR"},"type":"access_key_update"},{"cause":{"tx_hash":"73ssmYqkrPvrRyQjQScFRghpdGreouqek6H4doUc8spN","type":"transaction_processing"},"change":{"access_key":{"nonce":83530612000095,"permission":"FullAccess"},"account_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","public_key":"ed25519:Ha2sdvj2JwCYFGwKCquhz2dQJwvmBQPJupLd1qgCPMAg"},"type":"access_key_update"},{"cause":{"tx_hash":"8gvwKvTdNtv84MLkffFg5XZ7EAdVpU8t1PkCjgp7sdWm","type":"transaction_processing"},"change":{"access_key":{"nonce":107503700000001,"permission":"FullAccess"},"account_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","public_key":"ed25519:9YXJX3RM7pWo19DfAnRVfd9jvgm73AW2kt5H4JKeXvuZ"},"type":"access_key_update"},{"cause":{"tx_hash":"EXDevHM9yP7nXA1dYnJAm7GukBghNFmPAxMAgav5yP1p","type":"transaction_processing"},"change":{"access_key":{"nonce":74270803000011,"permission":"FullAccess"},"account_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","public_key":"ed25519:ActQJsSyGKNZY3PrA61TH1rpmG5sm9WKsJDWFskHtHGY"},"type":"access_key_update"},{"cause":{"tx_hash":"D9zNf5BsddCSRDbzdjiMrW6Yqh1zywvHuzMe7a9TnSBs","type":"transaction_processing"},"change":{"access_key":{"nonce":107111165000004,"permission":"FullAccess"},"account_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","public_key":"ed25519:BNMbyBGEbs3C5xwRehfjpDuojE8THh52CqB4xx6mdyYn"},"type":"access_key_update"},{"cause":{"tx_hash":"69NL3Y4g9JKZqCWFnFfhVhGpstCJ2w7ctj1jUmHzk3Kg","type":"transaction_processing"},"change":{"access_key":{"nonce":107411459000641,"permission":{"FunctionCall":{"allowance":"41127228371010282544448","method_names":[],"receiver_id":"app.nearcrowd.near"}}},"account_id":"ann_asian.near","public_key":"ed25519:7ggZXCRZidLYQ4EWUzphoz3hS3veoH2MFSxNqMBddcTf"},"type":"access_key_update"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"cAEAAAA=","value_base64":"AABAe6XwY4GWCgAAAAAAAAAA9ESCkWNFAAAAAAAAAAAsAQAAAAAAAAAAQHul8GOBlgoAAAAAAABGjzaTNR2fF8rE0QAAAAAABgAAAHQBAAAAYp3z0QAAAAAABgAAAHQBAAAAYiwAAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA=="},"type":"data_update"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABjBAAAAAAAAAA=","value_base64":"HZknByL0Y+VwLnkzZn2jFinD4wTYdTM4eAJ0QMDOq10B"},"type":"data_update"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABjDQAAAAAAAAA=","value_base64":"/cJAFTkbpkUrbrAWAJVaiIqFijAnkz/g5gwzBgH2tbAE"},"type":"data_update"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABjLAAAAAAAAAA="},"type":"data_deletion"},{"cause":{"receipt_hash":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABnEgAAAG5pa2l0YWx5YTE3NzcubmVhcg==","value_base64":"AzpzVmg2aqJCggRl0VGFx60WZ7ZbfuTWqv/4BIXZ6bAvAd5fhTYxHZ8XqGYVqClfReRFBQAAAAAAAA=="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503704/shard_1.json b/block-streamer/data/000107503704/shard_1.json new file mode 100644 index 000000000..69513d3b6 --- /dev/null +++ b/block-streamer/data/000107503704/shard_1.json @@ -0,0 +1 @@ +{"chunk":{"author":"sumerian.poolv1.near","header":{"balance_burnt":"0","chunk_hash":"FiGBhEdK2uM9KBh7H4dK5YDNzw7RzfpCmd2vZcFNd38R","encoded_length":8,"encoded_merkle_root":"9zYue7drR1rhfzEEoc4WUXzaYRnRNihvRoGt1BgK7Lkk","gas_limit":1000000000000000,"gas_used":0,"height_created":107503704,"height_included":107503704,"outcome_root":"11111111111111111111111111111111","outgoing_receipts_root":"8s41rye686T2ronWmFE38ji19vgeb6uPxjYMPt8y8pSV","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"9L3KFaS1MxkjdCyrsffb5cTgsLsVwD2mUEyDqprRd3Do","rent_paid":"0","shard_id":1,"signature":"ed25519:2ee828NqS9zNAMxNCUDd4mw4oXA7QihA3wC4kZq8uSLq8Ah42xqtB7tY7ZK3vcsAk1qxtm5KRGhdhnvwghXd5tjw","tx_root":"11111111111111111111111111111111","validator_proposals":[],"validator_reward":"0"},"receipts":[],"transactions":[]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"BZDV6HVpNPeCQCByp56CyULNKgSbC1zgPMK4hoMjVFqG","outcome":{"executor_id":"aurora","gas_burnt":3644983855043,"logs":["signer_address Address(0x87fc8535095140dbfea8e12559094c2e7c3140a8)"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"6883970886"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"266000151750"},{"cost":"ECRECOVER_BASE","cost_category":"WASM_HOST_COST","gas_used":"278821988457"},{"cost":"KECCAK256_BASE","cost_category":"WASM_HOST_COST","gas_used":"17638473825"},{"cost":"KECCAK256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"17176884000"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"871120206"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"28708495200"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3755717004"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"25171651860"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"109108134"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"281784228750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2321439975"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"791151705"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"6223558122"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"23618018799"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"190894201608"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"25234153749"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2840894196"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"28655224860"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4208331348"}],"version":3},"receipt_ids":["73vU6LfRvB4zF3xdLwFjmnMkPXuYkbLzFNifYdMtFp19"],"status":{"Failure":{"ActionError":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: ERR_OUT_OF_FUND"}}}}},"tokens_burnt":"364498385504300000000"},"proof":[]},"receipt":{"predecessor_id":"relay.aurora","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"+QMRgxitZIQELB2Agww1AJSQVQb22oFec8oTVHtF0ZmIZxBLIoC5AqS/zVdxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQDkxODYyNjcyMTk3M2U5MGE2MzgzYjYzOWQyNzQwOTcwMzIwNDA5ZDRmMjM0M2JmMjU5NDFlN2I1YzAyZWRjOGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwDg2YjMwNzRjMGI3ZDYwYmIwNTM4ZTRkYzQ4ZGUwMDBmMWI4MzVjNjVjOGUzYWJhNDA5ZGUwNTc0YTg4ZDkzY2Q0ODVkNjA5YjUxMjdlYjI0OGU0YTlhZTY0YWQzNGY0ODE1MDMxNTdhZWU4MDgzNmNlODllNzU5OTNkOGI3NDE1Mzc2YTZlNTA0NzUwMDEyNzU0M2ZhYWE3ZmVkNmJiODU1MjVjZDg5YzI4OGRmNDk3OTQ0MjJjMjNiNmM1YTc1ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOTA2OWI4YTk1MThlM2VkZGY5OGE4NDYxYmI3YzhmYmQ0YTJkZWIyMjFlZTYwMzM1M2Y0YWI4NDc2OGI0NzM2Y2EyZDA3ZjJkN2FkMWI2MTE0YWRhMjY5YzU5ODQ3Nzc2MTE1MGMxNzJjMjRjMDYxYTA3Mzg2Njk3YjMyM2E3ZDQyYTdmZjllZmNlYWNjN2Y5ZTFjZjQ5MmNmNDU1OTNjYjQzZTdmMWYzMjk5NDMyZGQ3MWEyMmIwMmZhZTdhMTE1hJyKgseg2erFo8Pm7XNclhAO+D3PDifOegR1y2SKq5903JSCg9qgJfbqandMbJ8xC/KOeT6ns+AUjnhEkhVqXMZX6pUVuxc=","deposit":"0","gas":300000000000000,"method_name":"submit"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:BYcLvGJ8p3LSHkQyazPoRnLt1ktC9apopqe5MFzbqbUr"}},"receipt_id":"BZDV6HVpNPeCQCByp56CyULNKgSbC1zgPMK4hoMjVFqG","receiver_id":"aurora"}}],"shard_id":1,"state_changes":[{"cause":{"receipt_hash":"BZDV6HVpNPeCQCByp56CyULNKgSbC1zgPMK4hoMjVFqG","type":"action_receipt_gas_reward"},"change":{"account_id":"aurora","amount":"78818990514632675991073978615","code_hash":"bJYSHkDgzpvE6VZEn3uPZXCsyKiFHUwLta6XCPGkvx8","locked":"0","storage_paid_at":0,"storage_usage":7830467908},"type":"account_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503704/shard_2.json b/block-streamer/data/000107503704/shard_2.json new file mode 100644 index 000000000..2077da779 --- /dev/null +++ b/block-streamer/data/000107503704/shard_2.json @@ -0,0 +1 @@ +{"chunk":{"author":"blockdaemon.poolv1.near","header":{"balance_burnt":"1224521732947700000000","chunk_hash":"4g39cKGFVe5xR81id822wq2qcoEpbViM7TNqXzASbZPB","encoded_length":2467,"encoded_merkle_root":"8mMCk5nAxUQW1JDGBehRkXV9dCTj1h6r1DrkyHqrxoSm","gas_limit":1000000000000000,"gas_used":18992367501374,"height_created":107503704,"height_included":107503704,"outcome_root":"7xHggAqQkxaU1oXg71cgj18qHRHj9pvHaF3J6sknTtRh","outgoing_receipts_root":"D5PNEZs3Nc4dFbwTkR5MSqb2MqutkwVxEUtjvci4hhnf","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"4Hz48BMoeHv2KPYxrcxzJ3XPRHNRSX7ph3DC47Gkx3Xj","rent_paid":"0","shard_id":2,"signature":"ed25519:2ZritGWAGrMMugd6KdwNwKss7PfrjMBEZsdtDSoQuM9iphLnuDh5im1gxPgeJSix2JZjh1wiqZauyg66nPQnQj2e","tx_root":"mZznc5c4D8b7jqriQdTENkBajhhUuFZXSK4KK8kpw4R","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJkZXRhaWxlZCI6dHJ1ZX0=","deposit":"0","gas":50000000000000,"method_name":"claim_total"}}],"gas_price":"138423388","input_data_ids":[],"output_data_receivers":[],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","receiver_id":"jars.sweat"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"669992781410873374372"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","signer_public_key":"ed25519:EUo3ZevwMAZEmZVvgkneYVy5MTtf5kggSD7vdp7Pwb3a"}},"receipt_id":"9k3kTs3ewLdNg12QzrRWDgpjczXXtGJQeuWeUB92ksrt","receiver_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7"},{"predecessor_id":"jars.sweat","receipt":{"Data":{"data":"IjAi","data_id":"URG8yX9XnvfgWkXDDKkPfMLxh9S8qpp8pYgX1W9fLiY"}},"receipt_id":"9FjQ288XgChHMriKnckRnA9cEUKufhJv7Yvb3gCvS1dB","receiver_id":"token.sweat"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1140404795717766906200"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"d2327b1dde257907758426205db404c5bb977919f51cb25c9967290cde663796","signer_public_key":"ed25519:F9XGCkroLz4XGRo1FgJP8DoNmbEAX32qfyK8rkrqcSpM"}},"receipt_id":"FqLdbwDr7xJELHASV6czPRkuKm9dvW3T7m373jpbSGrG","receiver_id":"d2327b1dde257907758426205db404c5bb977919f51cb25c9967290cde663796"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"6z8Mnw1cZ8W8612ZYn56acEsAWJ7kZJQvfuSWFafqJ2g","outcome":{"executor_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","gas_burnt":2428052920106,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7"],"status":{"SuccessReceiptId":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7"},"tokens_burnt":"242805292010600000000"},"proof":[{"direction":"Right","hash":"H1E1h91r13CRZ5kbohuoACV4YmbL1crJ9HYSit3bL2kQ"},{"direction":"Right","hash":"Bvshgd2EjQ1Pe2XRX4vX6ZiX5W1VoPYAq1PNdzifU8r9"},{"direction":"Right","hash":"2DBKXDNM6jaCZjoKGJ5pSnSgLN7F5EBhe9wGct3Uh6qf"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"hash":"6z8Mnw1cZ8W8612ZYn56acEsAWJ7kZJQvfuSWFafqJ2g","nonce":107326051000003,"public_key":"ed25519:HRCXJHmLG9AmUEWiiTUVh4ezFgboh5gmhb3cAwh7vvkK","receiver_id":"embr.playember_reserve.near","signature":"ed25519:5j5HTqbViXVdiEkAtLR1g2qmjProSDgfAGqfRtL46CMdQcAERC89UGFX4Wrt73nh9PyjnSetPnZi6wzBLocNrsrE","signer_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"ATDaLwkAVMiZ8WZBacQw9MuvvStSSL3WoWPAfxaEghjx","outcome":{"executor_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","gas_burnt":2428314524384,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke"],"status":{"SuccessReceiptId":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke"},"tokens_burnt":"242831452438400000000"},"proof":[{"direction":"Left","hash":"41a558PEbxPDbLsGwC2MeVWSiALKG6G6xrpZirstPccz"},{"direction":"Right","hash":"Bvshgd2EjQ1Pe2XRX4vX6ZiX5W1VoPYAq1PNdzifU8r9"},{"direction":"Right","hash":"2DBKXDNM6jaCZjoKGJ5pSnSgLN7F5EBhe9wGct3Uh6qf"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOlpuUjRwM0RqNnItZDI3MmE4NjQwMjBiZTdhMTQzNmZiZjljNmExNGY3OTBmMjQ5OTE1ZjEyZmNiOTNhZmE1MGRiN2JmMDFhMTI0YSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"ATDaLwkAVMiZ8WZBacQw9MuvvStSSL3WoWPAfxaEghjx","nonce":82783414000334,"public_key":"ed25519:DoHwEXU2hqGAEafZdvEkJAkagQjtiVZKh8WH6Msefcx1","receiver_id":"token.sweat","signature":"ed25519:49uZTc8UkG19i1Xnm2kvxJj2J7j7nUNc8nvRY5w29BKVHUTaMeKDNhbxo8dwQDberBfDTTGFQJneQJffMLUYunP3","signer_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"Bmtu2Nt6To1BG6ndCnTuAEaApmwVfvg91jNWANaVeh1Q","outcome":{"executor_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","gas_burnt":2428278749440,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA"],"status":{"SuccessReceiptId":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA"},"tokens_burnt":"242827874944000000000"},"proof":[{"direction":"Right","hash":"2PQyLCovBnK5miroWJiAbnweh2AAg3FLNK7hpsG3Agso"},{"direction":"Left","hash":"GPPZD6pynyDME6y4esWAJrdRQ8h8DmkCQrfSMzfRtnVe"},{"direction":"Right","hash":"2DBKXDNM6jaCZjoKGJ5pSnSgLN7F5EBhe9wGct3Uh6qf"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuY2xhaW1fZmVlKGQ5MjY1NDE1OGE1ZjVhNzdjODJkZjY3ZDAxODkzNTg2ODY0YWE0OWQ4YjQyNzM4NzY0ODAzNWYzZTdjZjQzYmQpIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"Bmtu2Nt6To1BG6ndCnTuAEaApmwVfvg91jNWANaVeh1Q","nonce":67291571000016,"public_key":"ed25519:FcfNMwNTVhQRmPCABfpyyev7vz98hENwnBz46fPigsKz","receiver_id":"token.sweat","signature":"ed25519:ioBpeDFyRSfsQR1eB9fyFqE2TpX5auHnWk6jk8S72LoKSpbowBaacDjrQ4XnUJYftwNbe7S6tuFbZR67BfNH159","signer_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"12hbgt4k6wyDYiKP2expkwMgvqeJR9Vhgx9Z5368XG2B","outcome":{"executor_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","gas_burnt":2428133413730,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p"],"status":{"SuccessReceiptId":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p"},"tokens_burnt":"242813341373000000000"},"proof":[{"direction":"Left","hash":"84cNVBgVGv39XH2AZmF7TK2YzWpZbFMYHsSQgN5Fr4h8"},{"direction":"Left","hash":"GPPZD6pynyDME6y4esWAJrdRQ8h8DmkCQrfSMzfRtnVe"},{"direction":"Right","hash":"2DBKXDNM6jaCZjoKGJ5pSnSgLN7F5EBhe9wGct3Uh6qf"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6OGF4QWtBRFl3TCJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"12hbgt4k6wyDYiKP2expkwMgvqeJR9Vhgx9Z5368XG2B","nonce":106215107000014,"public_key":"ed25519:Dj7a7yHTXxaG8NKiusLZwj8jrMf9adEJacBANCdany4i","receiver_id":"token.sweat","signature":"ed25519:x48FPkr7gfsuScjX4rAapTYCAW3UECSEZKvJ4NWFRck51f6f44c5EEXp6beRrRpF5MGwMTzREToS4VTrhEU4x7j","signer_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","outcome":{"executor_id":"jars.sweat","gas_burnt":8762887472004,"logs":[],"metadata":{"gas_profile":[{"cost":"FUNCTION_CALL_BASE","cost_category":"ACTION_COST","gas_used":"4639723000000"},{"cost":"FUNCTION_CALL_BYTE","cost_category":"ACTION_COST","gas_used":"3277879244"},{"cost":"NEW_ACTION_RECEIPT","cost_category":"ACTION_COST","gas_used":"289092464624"},{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"9531651996"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"122876442000"},{"cost":"PROMISE_RETURN","cost_category":"WASM_HOST_COST","gas_used":"560152386"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"29640000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"49587400800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8887516554"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"25171651860"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"99350496"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"9081940500"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1061163444"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"225427383000"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4271449554"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4427082945"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"17182759245"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5215732158"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"17339363301"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"402548898150"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"6223558122"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6123190059"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"255241948368"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"30841743471"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2789142528"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5865813252"}],"version":3},"receipt_ids":["3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","C7xhY7M47MgT9wGoSL8un3dgVFSBfDbcraKZmuavX5Dg","GNWxnAjv9vwuoAK3sDMU9XsUkvi1Lnjq1iBZms8tcfkT"],"status":{"SuccessReceiptId":"C7xhY7M47MgT9wGoSL8un3dgVFSBfDbcraKZmuavX5Dg"},"tokens_burnt":"876288747200400000000"},"proof":[{"direction":"Right","hash":"95pHr5CDPTUP2yPQmqNwwfmCjLz4qPVhbi5iDKgG7uvX"},{"direction":"Right","hash":"8twMHwBbJTKti7X4z8adrX4ztyY6Bh9PzLskWJT51xKa"},{"direction":"Left","hash":"2SWkwWSHxKWndXrXEAikqAY7VPCi98gV9qiCZ4EfwyUH"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":{"predecessor_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJkZXRhaWxlZCI6dHJ1ZX0=","deposit":"0","gas":50000000000000,"method_name":"claim_total"}}],"gas_price":"138423388","input_data_ids":[],"output_data_receivers":[],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","receiver_id":"jars.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"FqLdbwDr7xJELHASV6czPRkuKm9dvW3T7m373jpbSGrG","outcome":{"executor_id":"d2327b1dde257907758426205db404c5bb977919f51cb25c9967290cde663796","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"AbBQpNh6R1Xyby8eRezyHxdpQ27mNYTzh7357sQRHcfx"},{"direction":"Right","hash":"8twMHwBbJTKti7X4z8adrX4ztyY6Bh9PzLskWJT51xKa"},{"direction":"Left","hash":"2SWkwWSHxKWndXrXEAikqAY7VPCi98gV9qiCZ4EfwyUH"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1140404795717766906200"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"d2327b1dde257907758426205db404c5bb977919f51cb25c9967290cde663796","signer_public_key":"ed25519:F9XGCkroLz4XGRo1FgJP8DoNmbEAX32qfyK8rkrqcSpM"}},"receipt_id":"FqLdbwDr7xJELHASV6czPRkuKm9dvW3T7m373jpbSGrG","receiver_id":"d2327b1dde257907758426205db404c5bb977919f51cb25c9967290cde663796"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"8EyhgzvmT8WWNDC86BzCm5yhX1mMG1wTgK7bqjBKxEMR","outcome":{"executor_id":"hotwallet.kaiching","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"Exfw54Hrummpqpydv8nsGhCZfza1qfD1wSJB9ycPXznv"},{"direction":"Left","hash":"99qTxd3pRLirVEGgBxkgUnZzYVSwARhayuRbwmPwd9vv"},{"direction":"Left","hash":"2SWkwWSHxKWndXrXEAikqAY7VPCi98gV9qiCZ4EfwyUH"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"18718896921452826626320"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"hotwallet.kaiching","signer_public_key":"ed25519:2WfxMbrWmEnMVZPjYkhmt7cLGtSxb3N5C2fCfPVpcQh1"}},"receipt_id":"8EyhgzvmT8WWNDC86BzCm5yhX1mMG1wTgK7bqjBKxEMR","receiver_id":"hotwallet.kaiching"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"EuWN5hzPQVtjeNsrmQANsQo2cJ5MCBbNJnmxZDSBFPNa","outcome":{"executor_id":"hotwallet.kaiching","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"h9s6mFUhGz1seUTDsFRY4DcKzyUppvocJsSgXpB3Hhg"},{"direction":"Left","hash":"99qTxd3pRLirVEGgBxkgUnZzYVSwARhayuRbwmPwd9vv"},{"direction":"Left","hash":"2SWkwWSHxKWndXrXEAikqAY7VPCi98gV9qiCZ4EfwyUH"},{"direction":"Right","hash":"DSfJUqtQsTCZfBaBfwJev2uKR86C4rqy7Npd4N7Nhups"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"8606988820765617774146"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"hotwallet.kaiching","signer_public_key":"ed25519:3Mz2ccM1tKwHLYS1rCkkJVrocVDkZR5oNHp6SmbHfhA5"}},"receipt_id":"EuWN5hzPQVtjeNsrmQANsQo2cJ5MCBbNJnmxZDSBFPNa","receiver_id":"hotwallet.kaiching"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"5JcV4KedwctgBFww8QChQNv1gsHAn5wcqpWFXuc3BRTU","outcome":{"executor_id":"executor.v1.corn-staging.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"C7jjPz15J3hW3waeNdoa8dbeWYSsQsoR1bCx2nxp5WPP"},{"direction":"Left","hash":"2fAV6AV3eLo6XgaxV1XuVrynPbGnf6yLYTguGBXT87N4"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"2369678213461307586050"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"executor.v1.corn-staging.near","signer_public_key":"ed25519:9qKfeRCVgqpWmKiVv4K5S7ukyq7q9hY1QckVqdZyuVMA"}},"receipt_id":"5JcV4KedwctgBFww8QChQNv1gsHAn5wcqpWFXuc3BRTU","receiver_id":"executor.v1.corn-staging.near"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"34Bstf8ZpJt4DLk16s4ckTKrVRgZpue5b3gKvVQSVw4B","outcome":{"executor_id":"corn.v1.corn-staging.near","gas_burnt":2912112909417,"logs":["Epoch@1265 bonder supply growth is 0"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"5560130331"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"117054753750"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"475156476"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"10439452800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"319311972"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"15102991116"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"90775602"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"112713691500"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"185715198"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3871593450"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"6223558122"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"22743277362"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"142563868656"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"19626564027"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2552174364"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"17193134916"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3501240444"}],"version":3},"receipt_ids":["6a5Y1jQny2gNUYy4vphdGaVwu5RGcZbZW8aoe2wvDTyP"],"status":{"Failure":{"ActionError":{"index":0,"kind":{"FunctionCallError":{"ExecutionError":"Smart contract panicked: Distribution amount exceeds total mintable"}}}}},"tokens_burnt":"291211290941700000000"},"proof":[{"direction":"Left","hash":"5v4xn19gumaJtcTUVTWwqVtGNt64xyNP7TSXCWEtLfJ"},{"direction":"Left","hash":"2fAV6AV3eLo6XgaxV1XuVrynPbGnf6yLYTguGBXT87N4"}]},"receipt":{"predecessor_id":"corn.v1.corn-staging.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzdGFraW5nX21pbnRfYW1vdW50IjoiMzI3MzU2NjY3Mzk3NDEzNjkwMTIzMiIsInhjb3JuX3RvdGFsX3N1cHBseSI6IjE1NDkzNTMxODQyNjk4NDM1NDk4OTg4IiwiZXBvY2giOnsiaGVpZ2h0IjoxMjY1LCJsZW5ndGgiOjI4ODAwMDAwLCJlbmQiOjE3MDIxMzc2MDAwMDB9fQ==","deposit":"0","gas":73123966279788,"method_name":"on_get_locked_amount"}}],"gas_price":"250008035","input_data_ids":["CS7n8Q8tEKhbWygXcbfa3kXws5m3Hv9VKos2XLqXBVSa"],"output_data_receivers":[{"data_id":"FvhnXQ66YFQYVkKqtz9BynzYVGCXS1ZMEPhdGS38Lpa2","receiver_id":"xcorn.v1.corn-staging.near"}],"signer_id":"executor.v1.corn-staging.near","signer_public_key":"ed25519:9qKfeRCVgqpWmKiVv4K5S7ukyq7q9hY1QckVqdZyuVMA"}},"receipt_id":"34Bstf8ZpJt4DLk16s4ckTKrVRgZpue5b3gKvVQSVw4B","receiver_id":"corn.v1.corn-staging.near"}}],"shard_id":2,"state_changes":[{"cause":{"tx_hash":"12hbgt4k6wyDYiKP2expkwMgvqeJR9Vhgx9Z5368XG2B","type":"transaction_processing"},"change":{"account_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","amount":"20944964025133102421804","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"34Bstf8ZpJt4DLk16s4ckTKrVRgZpue5b3gKvVQSVw4B","type":"action_receipt_gas_reward"},"change":{"account_id":"corn.v1.corn-staging.near","amount":"6518159774242482001138998","code_hash":"D9D9rw3S5ge5LfXy89X2Ux4rQ7ie68bbTnDFMYjHcr3E","locked":"0","storage_paid_at":0,"storage_usage":560895},"type":"account_update"},{"cause":{"receipt_hash":"FqLdbwDr7xJELHASV6czPRkuKm9dvW3T7m373jpbSGrG","type":"receipt_processing"},"change":{"account_id":"d2327b1dde257907758426205db404c5bb977919f51cb25c9967290cde663796","amount":"2515031028398200000000","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"ATDaLwkAVMiZ8WZBacQw9MuvvStSSL3WoWPAfxaEghjx","type":"transaction_processing"},"change":{"account_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","amount":"1609016870824772663983544","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":346},"type":"account_update"},{"cause":{"tx_hash":"Bmtu2Nt6To1BG6ndCnTuAEaApmwVfvg91jNWANaVeh1Q","type":"transaction_processing"},"change":{"account_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","amount":"30870257858998367711988","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"5JcV4KedwctgBFww8QChQNv1gsHAn5wcqpWFXuc3BRTU","type":"receipt_processing"},"change":{"account_id":"executor.v1.corn-staging.near","amount":"1596939047975131247281249","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"6z8Mnw1cZ8W8612ZYn56acEsAWJ7kZJQvfuSWFafqJ2g","type":"transaction_processing"},"change":{"account_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","amount":"1244751123013900000000","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"8EyhgzvmT8WWNDC86BzCm5yhX1mMG1wTgK7bqjBKxEMR","type":"receipt_processing"},"change":{"account_id":"hotwallet.kaiching","amount":"9697601620205221864080859676","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":32982},"type":"account_update"},{"cause":{"receipt_hash":"EuWN5hzPQVtjeNsrmQANsQo2cJ5MCBbNJnmxZDSBFPNa","type":"receipt_processing"},"change":{"account_id":"hotwallet.kaiching","amount":"9697610227194042629698633822","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":32982},"type":"account_update"},{"cause":{"receipt_hash":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","type":"receipt_processing"},"change":{"account_id":"jars.sweat","amount":"3249445586223539158796071414","code_hash":"8F9f1oPTfWYcsfpHPFxVyMRKhdxNfZeTqNVPXc32582J","locked":"0","storage_paid_at":0,"storage_usage":193784607},"type":"account_update"},{"cause":{"receipt_hash":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","type":"action_receipt_gas_reward"},"change":{"account_id":"jars.sweat","amount":"3249445776270655134296071414","code_hash":"8F9f1oPTfWYcsfpHPFxVyMRKhdxNfZeTqNVPXc32582J","locked":"0","storage_paid_at":0,"storage_usage":193784607},"type":"account_update"},{"cause":{"tx_hash":"12hbgt4k6wyDYiKP2expkwMgvqeJR9Vhgx9Z5368XG2B","type":"transaction_processing"},"change":{"access_key":{"nonce":106215107000014,"permission":"FullAccess"},"account_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","public_key":"ed25519:Dj7a7yHTXxaG8NKiusLZwj8jrMf9adEJacBANCdany4i"},"type":"access_key_update"},{"cause":{"tx_hash":"ATDaLwkAVMiZ8WZBacQw9MuvvStSSL3WoWPAfxaEghjx","type":"transaction_processing"},"change":{"access_key":{"nonce":82783414000334,"permission":"FullAccess"},"account_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","public_key":"ed25519:DoHwEXU2hqGAEafZdvEkJAkagQjtiVZKh8WH6Msefcx1"},"type":"access_key_update"},{"cause":{"tx_hash":"Bmtu2Nt6To1BG6ndCnTuAEaApmwVfvg91jNWANaVeh1Q","type":"transaction_processing"},"change":{"access_key":{"nonce":67291571000016,"permission":"FullAccess"},"account_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","public_key":"ed25519:FcfNMwNTVhQRmPCABfpyyev7vz98hENwnBz46fPigsKz"},"type":"access_key_update"},{"cause":{"tx_hash":"6z8Mnw1cZ8W8612ZYn56acEsAWJ7kZJQvfuSWFafqJ2g","type":"transaction_processing"},"change":{"access_key":{"nonce":107326051000003,"permission":"FullAccess"},"account_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","public_key":"ed25519:HRCXJHmLG9AmUEWiiTUVh4ezFgboh5gmhb3cAwh7vvkK"},"type":"access_key_update"},{"cause":{"receipt_hash":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","type":"receipt_processing"},"change":{"account_id":"jars.sweat","key_base64":"AUAAAABkMmEzNTU1NmQyNzYxMjRkYzZmZDA4MDhlMmRkYzY1ZjQ1OGM3NTdiMWY2YjQ1NWQ0ZmM1ZmM5OTIzNDhiM2Nj","value_base64":"ESwIAAMAAADvMQAAQAAAAGQyYTM1NTU2ZDI3NjEyNGRjNmZkMDgwOGUyZGRjNjVmNDU4Yzc1N2IxZjZiNDU1ZDRmYzVmYzk5MjM0OGIzY2MKAAAAMzY1ZF8xMmFweTTxyD6LAQAAAABIL5/mhC0AAAAAAAAAAAHeAL1NjAEAAAAAAAAAAAAAAAAAAAAAAABJ9EuFl5HJAAAAAAAAAAAAAQAX6gEAQAAAAGQyYTM1NTU2ZDI3NjEyNGRjNmZkMDgwOGUyZGRjNjVmNDU4Yzc1N2IxZjZiNDU1ZDRmYzVmYzk5MjM0OGIzY2MKAAAAMzY1ZF8xMmFweRBplVKLAQAAAADJd+M2hWQBAAAAAAAAAAHeAL1NjAEAAAAAAAAAAAAAAAAAAAAAAACPTgIz2GO3BQAAAAAAAAAAAQARLAgAQAAAAGQyYTM1NTU2ZDI3NjEyNGRjNmZkMDgwOGUyZGRjNjVmNDU4Yzc1N2IxZjZiNDU1ZDRmYzVmYzk5MjM0OGIzY2MWAAAAMzY1ZF8yNGFweV9hbm5pdmVyc2FyeRJpZraLAQAAAADJuewS0f8GAAAAAAAAAAHeAL1NjAEAAAAAAAAAAAAAAAAAAAAAAAC5adVaEYifIgAAAAAAAAAAAQA="},"type":"data_update"},{"cause":{"receipt_hash":"5TLEaedPSYTiCGdqRhvbLDBvYc3iAfMRorbp1csypWJx","type":"receipt_processing"},"change":{"account_id":"jars.sweat","key_base64":"U1RBVEU=","value_base64":"CwAAAHRva2VuLnN3ZWF0CgAAAGZlZXMuc3dlYXQRAAAAamFycy1vcmFjbGUuc3dlYXQACgAAAAoAAAACAAAAAHYCAAAAAG1Fxg4AAQAAAAE="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503704/shard_3.json b/block-streamer/data/000107503704/shard_3.json new file mode 100644 index 000000000..418ad9451 --- /dev/null +++ b/block-streamer/data/000107503704/shard_3.json @@ -0,0 +1 @@ +{"chunk":{"author":"rekt.poolv1.near","header":{"balance_burnt":"4406677798729500000000","chunk_hash":"4vnvY5qxjwmA4u8eGDjCacBWDQ1UBkFqv69GtBcTA72X","encoded_length":11863,"encoded_merkle_root":"3CEw9qMqbKp34eiiCjzqaBJdoggL1a8zAQVq2XnPuKBR","gas_limit":1000000000000000,"gas_used":47262988974297,"height_created":107503704,"height_included":107503704,"outcome_root":"7ayiPCkrvxeA4sqS4fqKz3M5oi2WZJ2JwYDvFvnxsLaE","outgoing_receipts_root":"Fs2dxiFc8P7RaB1esRfLxVQyahi68VnRxFdfA2oe88yD","prev_block_hash":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","prev_state_root":"2xo9ceo19cLwpxMaDU15mDkMDe5Ro8RrJFKFWpqKLyXV","rent_paid":"0","shard_id":3,"signature":"ed25519:2UgJn2DV4a88zeqUXQXAnV3m4P7XbGL1Myy6KvycnhXCaBaoHJ9Npj85jgJMUQUiiSzJN6HYCS1b9zsKZ1dkFNtk","tx_root":"5DR3LHZqv3qnF2FtkV1SJMxS1z7SvZGvF1c71Phkatv","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"nikitalya1777.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImJpZCI6IjQ5ODAyMjEyODI2NTYxNDg4MDE0NjcyIn0=","deposit":"0","gas":30000000000000,"method_name":"claim_assignment"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"nikitalya1777.near","signer_public_key":"ed25519:2p2EvvBgzMHRHkFBMQN5jSbPzFhz3fkbrGg8YLcdjLvo"}},"receipt_id":"4qf4q7hmrf4j8MzwbCAzx4Bp9UNKMQ1VCSWxN6D9MpGg","receiver_id":"app.nearcrowd.near"},{"predecessor_id":"spin.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjEzMTk4MTFjNWZiNjVlNGRlN2U3YjRhZmNlZDUzNmM4ZDMwNjc2MDU4NGY2OTVlYWM4NzRiZGM0NjJhNWUwYmMiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3Omx3Ok9kOHkyeVpxYUIifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:H7NMW2sQFG3gYTNPykTXJZDhUhppA4MmDoR4hvYjt3c6"}},"receipt_id":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","receiver_id":"token.sweat"},{"predecessor_id":"learn.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjE3NjIwY2E4MzZhNjZiMTE4NDVkYzVhYzBkMDg5ZDFkMWUxMjBlYTM1NTljOGI2NjJmNWU2MmJkNjViNTE1ODQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3OnRyOjd4UEdWMU9tS28ifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"learn.sweat","signer_public_key":"ed25519:3RdonD1M2qviB9A9nnRfTCkbg4kbTeuDzkYXbirmkxy3"}},"receipt_id":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","receiver_id":"token.sweat"},{"predecessor_id":"relay.aurora","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"+QMRgxitZIQELB2Agww1AJSQVQb22oFec8oTVHtF0ZmIZxBLIoC5AqS/zVdxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2QqgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQDkxODYyNjcyMTk3M2U5MGE2MzgzYjYzOWQyNzQwOTcwMzIwNDA5ZDRmMjM0M2JmMjU5NDFlN2I1YzAyZWRjOGIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwDg2YjMwNzRjMGI3ZDYwYmIwNTM4ZTRkYzQ4ZGUwMDBmMWI4MzVjNjVjOGUzYWJhNDA5ZGUwNTc0YTg4ZDkzY2Q0ODVkNjA5YjUxMjdlYjI0OGU0YTlhZTY0YWQzNGY0ODE1MDMxNTdhZWU4MDgzNmNlODllNzU5OTNkOGI3NDE1Mzc2YTZlNTA0NzUwMDEyNzU0M2ZhYWE3ZmVkNmJiODU1MjVjZDg5YzI4OGRmNDk3OTQ0MjJjMjNiNmM1YTc1ZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAOTA2OWI4YTk1MThlM2VkZGY5OGE4NDYxYmI3YzhmYmQ0YTJkZWIyMjFlZTYwMzM1M2Y0YWI4NDc2OGI0NzM2Y2EyZDA3ZjJkN2FkMWI2MTE0YWRhMjY5YzU5ODQ3Nzc2MTE1MGMxNzJjMjRjMDYxYTA3Mzg2Njk3YjMyM2E3ZDQyYTdmZjllZmNlYWNjN2Y5ZTFjZjQ5MmNmNDU1OTNjYjQzZTdmMWYzMjk5NDMyZGQ3MWEyMmIwMmZhZTdhMTE1hJyKgseg2erFo8Pm7XNclhAO+D3PDifOegR1y2SKq5903JSCg9qgJfbqandMbJ8xC/KOeT6ns+AUjnhEkhVqXMZX6pUVuxc=","deposit":"0","gas":300000000000000,"method_name":"submit"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:BYcLvGJ8p3LSHkQyazPoRnLt1ktC9apopqe5MFzbqbUr"}},"receipt_id":"BZDV6HVpNPeCQCByp56CyULNKgSbC1zgPMK4hoMjVFqG","receiver_id":"aurora"},{"predecessor_id":"users.kaiching","receipt":{"Action":{"actions":["CreateAccount",{"AddKey":{"access_key":{"nonce":0,"permission":"FullAccess"},"public_key":"ed25519:2cjDsUp9qKPTUjLSqTbhB7Cci3aEYcjv6eyoUaqRiBWS"}},{"Transfer":{"deposit":"10000000000000000000000"}}],"gas_price":"103000000","input_data_ids":[],"output_data_receivers":[],"signer_id":"users.kaiching","signer_public_key":"ed25519:CrPVX2eXCyqQX7oVcUF6AbakYpQifD4Y3u6agWXYzLNW"}},"receipt_id":"92nz2arX34dfkJvvRdD4sCE8fygyL13JVzn6Ugnfm1Nz","receiver_id":"lb2oyd4yvviz.users.kaiching"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3605833482718851668700"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:syYPxRG9YkUd6NN8aKtbfcXyxd9ggGgdUgu7j24Zi25"}},"receipt_id":"3iPY7af1bfMGUnwEGQ2LkUef2SpZ2eyZFMiXvm5PTVPa","receiver_id":"spin.sweat"},{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"350000000000000000000"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"4tA2xd6NVknZ8uV6VeSa3sWnx9wdpquVKeNAJAyCkLHS","receiver_id":"sweat_welcome.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3628691617889883600468"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"8HC4wjuh3m6wdx7rfm35J4Utzdk7hRDaZ8tZQLcX4YKZ","receiver_id":"sweat_welcome.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"18718896921452826626320"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"hotwallet.kaiching","signer_public_key":"ed25519:2WfxMbrWmEnMVZPjYkhmt7cLGtSxb3N5C2fCfPVpcQh1"}},"receipt_id":"8EyhgzvmT8WWNDC86BzCm5yhX1mMG1wTgK7bqjBKxEMR","receiver_id":"hotwallet.kaiching"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"8606988820765617774146"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"hotwallet.kaiching","signer_public_key":"ed25519:3Mz2ccM1tKwHLYS1rCkkJVrocVDkZR5oNHp6SmbHfhA5"}},"receipt_id":"EuWN5hzPQVtjeNsrmQANsQo2cJ5MCBbNJnmxZDSBFPNa","receiver_id":"hotwallet.kaiching"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"2369678213461307586050"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"executor.v1.corn-staging.near","signer_public_key":"ed25519:9qKfeRCVgqpWmKiVv4K5S7ukyq7q9hY1QckVqdZyuVMA"}},"receipt_id":"5JcV4KedwctgBFww8QChQNv1gsHAn5wcqpWFXuc3BRTU","receiver_id":"executor.v1.corn-staging.near"},{"predecessor_id":"vecorn.v1.corn-staging.near","receipt":{"Data":{"data":"IjEwMDc1NTA1MzY1MTY0NTQ5MDk1OTki","data_id":"CS7n8Q8tEKhbWygXcbfa3kXws5m3Hv9VKos2XLqXBVSa"}},"receipt_id":"cBinrpPnDxekTTUoWGLaM1wGKLEiCMKWKTWKrRRFpsQ","receiver_id":"corn.v1.corn-staging.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1446040177136210315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"0a5a5180907c50299227d6d00c872fd230599e9fd02fc3a1411ad3dedb7f58e7","signer_public_key":"ed25519:3BWHGuV4LdiJMceMkE2RQS9V1cFnNs3JDN1uPQFZoHJr"}},"receipt_id":"EBZ6LLtVtV9y8hpu1U5e6PDmY47zcCKw6QTM1CWmXaZL","receiver_id":"0a5a5180907c50299227d6d00c872fd230599e9fd02fc3a1411ad3dedb7f58e7"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1464149690732594171000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"66b5f475a9c47c75556a6fc0a9da5aba037deadcf8af20dbe905015f2793b702","signer_public_key":"ed25519:FdyxjCxEBcTcs5UWWQLqaPTHrCnjEnWo7GYD3kB6jyRs"}},"receipt_id":"13CZZWeurGYbApuUifopzFfEgNyPaqBuoCYrtag5E7t3","receiver_id":"66b5f475a9c47c75556a6fc0a9da5aba037deadcf8af20dbe905015f2793b702"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1460951274535010315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"60ce5d802b33fdcad96f5cf1432bffb4baac0ea1b34c751fa2b668ea815d62d9","signer_public_key":"ed25519:7Wtefjrv1QL3LZp3GKpzLbU9ZgkEacnBJJ4w5FbbLLs2"}},"receipt_id":"3aSCd6sFUmGBGr7cDiY56JCVA6nmBXt6pVEPYNcX2sNN","receiver_id":"60ce5d802b33fdcad96f5cf1432bffb4baac0ea1b34c751fa2b668ea815d62d9"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1461170717872610315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"a491964e370a17971491a8639ff2ab85b13a1174a8a3270973e61990bdc0d59e","signer_public_key":"ed25519:8zdzfCpu3rkhGnyhR5JBStERS3jNj2neKmcUMVJ4vdRe"}},"receipt_id":"DUt3SUSyWRJE8qLJvwyopXyFtAv2U43BxLMfHwnRWB6P","receiver_id":"a491964e370a17971491a8639ff2ab85b13a1174a8a3270973e61990bdc0d59e"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1459564471508810315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"29bfbe7592f79b87dbf032198752abb2bc28a46056ee2d7fc4d988ef7690494e","signer_public_key":"ed25519:3oyJ7EkSnbAyDUQ52KG1Dq36VBk9pEfRoWDZEeVvXAN9"}},"receipt_id":"3Emhdu5BRXeuZwp1bgKyRazAr32AUJMWBYJ2LdMSim4w","receiver_id":"29bfbe7592f79b87dbf032198752abb2bc28a46056ee2d7fc4d988ef7690494e"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"4BsQfHbUWd78m6KtcSXEpqrKGpeM2R3t5gUyXXsK53Px","outcome":{"executor_id":"npo-aurora.near","gas_burnt":2430353696192,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN"],"status":{"SuccessReceiptId":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN"},"tokens_burnt":"243035369619200000000"},"proof":[{"direction":"Right","hash":"GmERjhFZXbh1mKK3u1T4ngmiSzCA4yafPoWbJ3zo3xRZ"},{"direction":"Right","hash":"85h7KUaBEXp8xUqmrceepGPQQLYXuHbRh3C7Pfg1ZYgX"},{"direction":"Right","hash":"65Tzd486Ehp1UmCxxykuYTNQpLYSVraRwcKbwpH1Seff"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJwcmljZXMiOlt7ImFzc2V0X2lkIjoiYXVyb3JhIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjIzNzE1MiIsImRlY2ltYWxzIjoyMH19LHsiYXNzZXRfaWQiOiJkYWMxN2Y5NThkMmVlNTIzYTIyMDYyMDY5OTQ1OTdjMTNkODMxZWM3LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5OSIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiJhMGI4Njk5MWM2MjE4YjM2YzFkMTlkNGEyZTllYjBjZTM2MDZlYjQ4LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5NyIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiI2YjE3NTQ3NGU4OTA5NGM0NGRhOThiOTU0ZWVkZWFjNDk1MjcxZDBmLmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5OCIsImRlY2ltYWxzIjoyMn19LHsiYXNzZXRfaWQiOiIyMjYwZmFjNWU1NTQyYTc3M2FhNDRmYmNmZWRmN2MxOTNiYzJjNTk5LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiNDM5MjE1MiIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiJhYWFhYWEyMGQ5ZTBlMjQ2MTY5Nzc4MmVmMTE2NzVmNjY4MjA3OTYxLmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiMzM3NzAiLCJkZWNpbWFscyI6MjN9fSx7ImFzc2V0X2lkIjoiNDY5MTkzN2E3NTA4ODYwZjg3NmM5YzBhMmE2MTdlN2Q5ZTk0NWQ0Yi5mYWN0b3J5LmJyaWRnZS5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjI1MDI5NSIsImRlY2ltYWxzIjoyNH19LHsiYXNzZXRfaWQiOiJ1c24iLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk1OSIsImRlY2ltYWxzIjoyMn19LHsiYXNzZXRfaWQiOiJ1c2R0LnRldGhlci10b2tlbi5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6Ijk5OTkiLCJkZWNpbWFscyI6MTB9fSx7ImFzc2V0X2lkIjoiMTcyMDg2MjhmODRmNWQ2YWQzM2YwZGEzYmJiZWIyN2ZmY2IzOThlYWM1MDFhMzFiZDZhZDIwMTFlMzYxMzNhMSIsInByaWNlIjp7Im11bHRpcGxpZXIiOiI5OTk3IiwiZGVjaW1hbHMiOjEwfX1dfQ==","deposit":"0","gas":50000000000000,"method_name":"report_prices"}}],"hash":"4BsQfHbUWd78m6KtcSXEpqrKGpeM2R3t5gUyXXsK53Px","nonce":62486061135948,"public_key":"ed25519:DtsWNKcf5mc64RKYvsL56pW1ixJDsSgrQQnG9dfeiEmj","receiver_id":"priceoracle.near","signature":"ed25519:2C19AJQHegPLAHa9SiLESRVvfn6UKZQgj6kXfTUh2boHVP1ZxR2PchjNzxrdvxXntGr3bKWG84bBAGTECGFgmdCn","signer_id":"npo-aurora.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"DsHPk9NavGSJb2Fcnunu6H8uYKeiQiQ8RBSBJ2fBik8j","outcome":{"executor_id":"operator.orderly-network.near","gas_burnt":2429591242698,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW"],"status":{"SuccessReceiptId":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW"},"tokens_burnt":"242959124269800000000"},"proof":[{"direction":"Left","hash":"6Tu2tZfiytyQYQ14gFWdzRhqEPBSA2NYPPEmZSWj1wsz"},{"direction":"Right","hash":"85h7KUaBEXp8xUqmrceepGPQQLYXuHbRh3C7Pfg1ZYgX"},{"direction":"Right","hash":"65Tzd486Ehp1UmCxxykuYTNQpLYSVraRwcKbwpH1Seff"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJzaWduYXR1cmVfdmVyaWZpZWRfZGF0YSI6eyJvcGVyYXRvcl9hY3Rpb25fZGF0YSI6eyJQZXJwTWFya2V0SW5mbyI6eyJpbmZvIjp7IlBlcnBQcmljZSI6eyJtYXhfdGltZXN0YW1wIjoxNzAyMTExMjc4MDAwLCJwZXJwX3ByaWNlcyI6W3siaW5kZXhfcHJpY2UiOiIyMzcxNzIwMDAwMDAiLCJtYXJrX3ByaWNlIjoiMjM3MzQyMDAwMDAwIiwic3ltYm9sIjoiUEVSUF9FVEhfVVNEQy5lIiwidGltZXN0YW1wIjoxNzAyMTExMjc3MDAwfSx7ImluZGV4X3ByaWNlIjoiMjUxODAwMDAwIiwibWFya19wcmljZSI6IjI1MjE3MDAwMCIsInN5bWJvbCI6IlBFUlBfTkVBUl9VU0RDLmUiLCJ0aW1lc3RhbXAiOjE3MDIxMTEyNzcwMDB9LHsiaW5kZXhfcHJpY2UiOiIyNTAzNzAwMCIsIm1hcmtfcHJpY2UiOiIyNTA2NTAwMCIsInN5bWJvbCI6IlBFUlBfV09PX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3NzAwMH0seyJpbmRleF9wcmljZSI6IjQzOTMwMzMwMDAwMDAiLCJtYXJrX3ByaWNlIjoiNDM5NTg0MDAwMDAwMCIsInN5bWJvbCI6IlBFUlBfQlRDX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3ODAwMH1dfX19fSwic2lnbmF0dXJlIjoiMjZlMjJmY2YyMGVlM2M1MzgxODFjMTgzOWNhM2VmYjNhMjFhZTA4NDA1NTY0MmVmMmQwNTE3MDU5MTlkY2U5MjZkYWE5NDYyYzRiMzllNjljYWUzODIzNzhlNzYzNjVkODZkZTMyNjZmMWU4ZDBlZmRlM2YyN2I1ZWVhYzY1NGIwMSJ9fQ==","deposit":"0","gas":300000000000000,"method_name":"operator_execute_action"}}],"hash":"DsHPk9NavGSJb2Fcnunu6H8uYKeiQiQ8RBSBJ2fBik8j","nonce":106907854103193,"public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP","receiver_id":"asset-manager.orderly-network.near","signature":"ed25519:4ffLnRC6ufjFjRjMtzh9T1vwboZfXB9V8pzNSzcTs2pEnHLP6AcxPcJLgBZj91UUAL4W1Wzb1GBuB6DAznGUvGSb","signer_id":"operator.orderly-network.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"GjkAsS2FTEu1gwgez2RNy855p4maRWiimEzvD7HVDr89","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":2428135649664,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm"],"status":{"SuccessReceiptId":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm"},"tokens_burnt":"242813564966400000000"},"proof":[{"direction":"Right","hash":"AEU9hUFwbmbRRTGmNXvNAXpJ7NcrbgnuzxfvEBu9RKsb"},{"direction":"Left","hash":"BWErjkcZnVwACjtAVPtHesnsDFjQbQdASEv92P8ofz69"},{"direction":"Right","hash":"65Tzd486Ehp1UmCxxykuYTNQpLYSVraRwcKbwpH1Seff"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiMDc0ODRjMzZmMTRlOTdlOTRlMzI4YzQxNmE0ZWZkZDE5MGUyMDRmMDAyZTZlYzE2YmQ0NjFjODBiNDZjZmM3ZiJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"hash":"GjkAsS2FTEu1gwgez2RNy855p4maRWiimEzvD7HVDr89","nonce":64885790491715,"public_key":"ed25519:2zZW3xeqAiKCiH1KbcrXWcNdkQXUrMUYHPYkZWiWfxtV","receiver_id":"token.sweat","signature":"ed25519:65DQE1WnzUbSSrS9aPAUMB4HaJqUKvMMRjLmBcsmyz4iFZ8CHfKaD7KGxzXMPums4sDdHi2xUm63apic9KuYCfP7","signer_id":"sweat_welcome.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"EKfvBswdJXfUzJj1vaN2vn5bCTeiHGvioVvTBBGuvywC","outcome":{"executor_id":"summer5.near","gas_burnt":2428021617030,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa"],"status":{"SuccessReceiptId":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa"},"tokens_burnt":"242802161703000000000"},"proof":[{"direction":"Left","hash":"AKnp1Ds77wEP9CnM3PVg6bEDQJ2gSWgsy2pBH1jLx9DY"},{"direction":"Left","hash":"BWErjkcZnVwACjtAVPtHesnsDFjQbQdASEv92P8ofz69"},{"direction":"Right","hash":"65Tzd486Ehp1UmCxxykuYTNQpLYSVraRwcKbwpH1Seff"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJzdGFraW5nX3BhY2thZ2VfaWQiOjQ2MTh9","deposit":"1","gas":60000000000000,"method_name":"claim_stake_reward"}}],"hash":"EKfvBswdJXfUzJj1vaN2vn5bCTeiHGvioVvTBBGuvywC","nonce":102571812000261,"public_key":"ed25519:EVXXZVycps4xQgrJMd3m88pwbimVT5iHibefN8H7JLJC","receiver_id":"staking-pool.sweatmint.near","signature":"ed25519:5VvMerst8yBhNJcR8PDbgLwC7Jp6q1o9W41LAKfe9ottgoG1KYBBeosv9EdVvaE61P8p2KEF59KQML45pb4TEiCz","signer_id":"summer5.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"BpoRax4dyMgtS2yfNg8go71mnR72baEx2GxbGood7wgH","outcome":{"executor_id":"roshaan.near","gas_burnt":2433074827870,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M"],"status":{"SuccessReceiptId":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M"},"tokens_burnt":"243307482787000000000"},"proof":[{"direction":"Right","hash":"3FSWLi7LQ4W7G6HWsf76cAysvvwqHfReBFzgY5cBXkXU"},{"direction":"Right","hash":"66d9LxuTQNzRfwfq92bjc8CkBvqn3pvcz2hM8ERgm542"},{"direction":"Left","hash":"AyWuiM59tdMfH5tkT9vfWunb7xrcSKzTWMmiyJaMwE1m"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJmdW5jdGlvbl9uYW1lIjoicXVlc3RfMTA1Nzc5MF9hc3Ryb2Rhb19uZWFyX2pvaW5fZGFvIiwiY29kZSI6IiBjb25zdCBEQU9fQUNDT1VOVF9JRCA9IFwib25ib2FyZGRhby5zcHV0bmlrLWRhby5uZWFyXCI7XG4gIGNvbnN0IEdST1VQID0gXCJkYW9cIjtcblxuICBmdW5jdGlvbiBiYXNlNjRkZWNvZGUoZW5jb2RlZFZhbHVlKSB7XG4gICAgbGV0IGJ1ZmYgPSBCdWZmZXIuZnJvbShlbmNvZGVkVmFsdWUsIFwiYmFzZTY0XCIpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGJ1ZmYudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG4gIH1cbiAgY29uc3QgaCA9IGJsb2NrLmhlYWRlcigpLmhlaWdodDtcbiAgY29uc3QgdHhzID0gYmxvY2tcbiAgICAuYWN0aW9ucygpXG4gICAgLmZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24ucmVjZWl2ZXJJZC5pbmNsdWRlcyhEQU9fQUNDT1VOVF9JRCkpXG4gICAgLmZsYXRNYXAoKGFjdGlvbikgPT5cbiAgICAgIGFjdGlvbi5vcGVyYXRpb25zXG4gICAgICAgIC5tYXAoKG9wZXJhdGlvbikgPT4gb3BlcmF0aW9uW1wiRnVuY3Rpb25DYWxsXCJdKVxuICAgICAgICAuZmlsdGVyKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbj8ubWV0aG9kTmFtZSA9PT0gXCJhZGRfcHJvcG9zYWxcIilcbiAgICAgICAgLm1hcCgoZnVuY3Rpb25DYWxsT3BlcmF0aW9uKSA9PiAoe1xuICAgICAgICAgIC4uLmZ1bmN0aW9uQ2FsbE9wZXJhdGlvbixcbiAgICAgICAgICBhcmdzOiBiYXNlNjRkZWNvZGUoZnVuY3Rpb25DYWxsT3BlcmF0aW9uLmFyZ3MpLFxuICAgICAgICAgIHJlY2VpcHRJZDogYWN0aW9uLnJlY2VpcHRJZCwgLy8gcHJvdmlkaW5nIHJlY2VpcHRJZCBhcyB3ZSBuZWVkIGl0XG4gICAgICAgIH0pKVxuICAgICk7XG5cbiAgaWYgKHR4cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coXCJGb3VuZCBEQU8gVHhzIGluIEJsb2NrLi4uXCIpO1xuICAgIGNvbnN0IGJsb2NrSGVpZ2h0ID0gYmxvY2suYmxvY2tIZWlnaHQ7XG4gICAgY29uc3QgYmxvY2tUaW1lc3RhbXAgPSBibG9jay5oZWFkZXIoKS50aW1lc3RhbXBOYW5vc2VjO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdHhzLm1hcChhc3luYyAoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGFjdGlvbik7XG4gICAgICAgIGNvbnN0IGFkZE1lbWJlckFyZ3MgPSBhY3Rpb24/LnByb3Bvc2FsPy5raW5kPy5BZGRNZW1iZXJUb1JvbGU7XG5cbiAgICAgICAgLy8gaWYgY3JlYXRlcyBhIHBvc3RcbiAgICAgICAgaWYgKGFkZE1lbWJlckFyZ3Mucm9sZSA9PSBHUk9VUCkge1xuICAgICAgICAgIGNvbnRleHQuZGIuUXVlc3RUcmFja2VyLmluc2VydCh7XG4gICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCxcbiAgICAgICAgICAgIGJsb2NrX2hlaWdodDogYmxvY2tIZWlnaHQsXG4gICAgICAgICAgICBpc19jb21wbGV0ZWQ6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGV4dC5kYi5EZXRhaWxzLmluc2VydCh7XG4gICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCxcbiAgICAgICAgICAgIHByb3Bvc2FsX2lkOiAwLFxuICAgICAgICAgICAgcmVjZWlwdDogYWN0aW9uLnJlY2VpcHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuIiwic2NoZW1hIjoiQ1JFQVRFIFRBQkxFXG4gIHF1ZXN0X3RyYWNrZXIgKFxuICAgIGlkIFNFUklBTCBQUklNQVJZIEtFWSxcbiAgICBhY2NvdW50X2lkIFZBUkNIQVIgTk9UIE5VTEwsXG4gICAgaXNfY29tcGxldGVkIEJPT0xFQU4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSxcbiAgICBibG9ja19oZWlnaHQgREVDSU1BTCg1OCwgMCkgTk9UIE5VTExcbiAgKTtcblxuQ1JFQVRFIFRBQkxFXG4gIGRldGFpbHMgKFxuICAgIFwiYWNjb3VudF9pZFwiIFZBUkNIQVIgTk9UIE5VTEwsXG4gICAgXCJwcm9wb3NhbF9pZFwiIERFQ0lNQUwoNTgsIDApIE5PVCBOVUxMLFxuICAgIFwicmVjZWlwdFwiIFZBUkNIQVIgTk9UIE5VTExcbiAgKTtcblxuQ1JFQVRFIElOREVYXG4gIGlkeF9hY2NvdW50X2lkIE9OIHF1ZXN0X3RyYWNrZXIgKGFjY291bnRfaWQpO1xuIiwiZmlsdGVyX2pzb24iOiJ7XCJpbmRleGVyX3J1bGVfa2luZFwiOlwiQWN0aW9uXCIsXCJtYXRjaGluZ19ydWxlXCI6e1wicnVsZVwiOlwiQUNUSU9OX0FOWVwiLFwiYWZmZWN0ZWRfYWNjb3VudF9pZFwiOlwic29jaWFsLm5lYXJcIixcInN0YXR1c1wiOlwiU1VDQ0VTU1wifX0iLCJzdGFydF9ibG9ja19oZWlnaHQiOm51bGx9","deposit":"0","gas":200000000000000,"method_name":"register_indexer_function"}}],"hash":"BpoRax4dyMgtS2yfNg8go71mnR72baEx2GxbGood7wgH","nonce":69731409000395,"public_key":"ed25519:CjFXVJF5L43JwYxR9Px8w5udkdEJ19mWXXHSKY1KPyBW","receiver_id":"queryapi.dataplatform.near","signature":"ed25519:2xwsFrZqDxshoYFsiquQooDcvWDU2KChw1B9eWxV1fztZhe1QkCeLvn1aCghy9bETmq7VuPcbheBWdVd2CC1CdrB","signer_id":"roshaan.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"H4ZRkJib2biPo4Uwo17koFs9SfrovBmcEHeWFKb5aoX3","outcome":{"executor_id":"thelittles.near","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["J5Ck6x2uBGVD1RbiuiVeNvMvSuna3tjU7crTmieeP7ek"],"status":{"SuccessReceiptId":"J5Ck6x2uBGVD1RbiuiVeNvMvSuna3tjU7crTmieeP7ek"},"tokens_burnt":"417494768750000000000"},"proof":[{"direction":"Left","hash":"J4Z4zKVuSyb6bhucttEXqAQfEvMLddVVjp3r63wyTeXF"},{"direction":"Right","hash":"66d9LxuTQNzRfwfq92bjc8CkBvqn3pvcz2hM8ERgm542"},{"direction":"Left","hash":"AyWuiM59tdMfH5tkT9vfWunb7xrcSKzTWMmiyJaMwE1m"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":["CreateAccount",{"AddKey":{"access_key":{"nonce":0,"permission":"FullAccess"},"public_key":"ed25519:67Qw3zVFf8MGUzwVanax4s3RNn8GZc1Cdtr5ejMmEa8n"}},{"Transfer":{"deposit":"1000000000000000000000000"}}],"hash":"H4ZRkJib2biPo4Uwo17koFs9SfrovBmcEHeWFKb5aoX3","nonce":90584438144516,"public_key":"ed25519:8AKi9nyQvtqNG4hjb4BqosnfGQdudwtHUYohqgpLNxwy","receiver_id":"b22c27d0-8ffe-11ee-8380-67b092434091.thelittles.near","signature":"ed25519:58Y8RhtWpWoyCodpLzgYBdiCBKPi7L2oXHg5PQ7rf1VyGM9HA5eHSfk4GbHUeLrTPehmUBjFJ543BokgJG6GZiNr","signer_id":"thelittles.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"8fFGGAwxhk6hm5pA3HYgmo3j5vHZ6ajx7mCQQWaPAPhF","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":2428135649664,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb"],"status":{"SuccessReceiptId":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb"},"tokens_burnt":"242813564966400000000"},"proof":[{"direction":"Right","hash":"8TZ9E3vFu9rCSnEGZW2nCUyQSrcZNBGHR7YW5JaaNUzy"},{"direction":"Left","hash":"5MsbzEvuL1UGqB1hwt8tA4DkG66K4vNgvMHE8wTWTSVs"},{"direction":"Left","hash":"AyWuiM59tdMfH5tkT9vfWunb7xrcSKzTWMmiyJaMwE1m"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiZTM1YjM0ZjYyOGE1NmY0NTA4ZTMyMmM5YTUxMzA3MjhmMzdhZjlhNTNiNTNkOGIwMDQ2OGVmYTExNzVmYzNiMyJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"hash":"8fFGGAwxhk6hm5pA3HYgmo3j5vHZ6ajx7mCQQWaPAPhF","nonce":64986136385108,"public_key":"ed25519:5CPsg5DVUMeh2mSqGbEZxcRn1feCMkBLmth1E8ND8gBu","receiver_id":"token.sweat","signature":"ed25519:RZgRFz71ihVM1aGxUtXuL6KmBgZHHHvrjGwZK55vMVfawd9KJcFde9hXS81R96iaW4VzeDv9NP3Hvykyks9hVna","signer_id":"sweat_welcome.near"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"6y5cyfDriti1ZWnP7jkaaKfRWh74NDp9Qwn2yvWAuUqy","outcome":{"executor_id":"spin.sweat","gas_burnt":2428256390100,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh"],"status":{"SuccessReceiptId":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh"},"tokens_burnt":"242825639010000000000"},"proof":[{"direction":"Left","hash":"6ajidh6qkLwpo1uyqQwkYBfAmzK7DPi32hpsUdkJRyaH"},{"direction":"Left","hash":"5MsbzEvuL1UGqB1hwt8tA4DkG66K4vNgvMHE8wTWTSVs"},{"direction":"Left","hash":"AyWuiM59tdMfH5tkT9vfWunb7xrcSKzTWMmiyJaMwE1m"},{"direction":"Right","hash":"J5hm55gQ3pgdGoqVTjMpp5aV85pXpE1ZuYcT1FLqRgp3"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjliZjNmNDhhMGU3YjFjYzgyODliYzA2NmU1NWRkYWVhZmRmMmVkZmVlMTc1OTdhMjA5NzFhNjk3NDY3MjY1MTQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3Omx3Om8zWDVONUVPZG0ifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"hash":"6y5cyfDriti1ZWnP7jkaaKfRWh74NDp9Qwn2yvWAuUqy","nonce":100151817209227,"public_key":"ed25519:3MRyMM8nR2b6aED5NSvZK7CPkzvVtNYZYFYPiGUZoiWL","receiver_id":"token.sweat","signature":"ed25519:4HqFhuFXKXcU9oNUPQkEYs6AMZWFxQxSbznTX3FQWf7xBH8TRt4Bh5cJFkvPBnX6mc5GaDLpWbEr6VraAz2VKzmP","signer_id":"spin.sweat"}},{"outcome":{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"FM3xssPVrUQ6opWWLdQCEAf79BgKJsuQrDZ11UuxfYiU","outcome":{"executor_id":"operator.orderly-network.near","gas_burnt":2429591242698,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp"],"status":{"SuccessReceiptId":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp"},"tokens_burnt":"242959124269800000000"},"proof":[{"direction":"Right","hash":"EtFPJVNA6GcnDg8z5siTjf2bGFKkdX78JYoRFtXBmVay"},{"direction":"Right","hash":"9smJVQznM2apJuL3ghLayrPDWcSyAfehwo2Qu9q2VFnV"},{"direction":"Right","hash":"H1nPyYXmjUhEmd4UhV1JHMPpe4wWUdvPfiDYz8DZXRHR"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJzaWduYXR1cmVfdmVyaWZpZWRfZGF0YSI6eyJvcGVyYXRvcl9hY3Rpb25fZGF0YSI6eyJQZXJwTWFya2V0SW5mbyI6eyJpbmZvIjp7IlBlcnBQcmljZSI6eyJtYXhfdGltZXN0YW1wIjoxNzAyMTExMjc4MDAwLCJwZXJwX3ByaWNlcyI6W3siaW5kZXhfcHJpY2UiOiIyMzcxNzIwMDAwMDAiLCJtYXJrX3ByaWNlIjoiMjM3MzQyMDAwMDAwIiwic3ltYm9sIjoiUEVSUF9FVEhfVVNEQy5lIiwidGltZXN0YW1wIjoxNzAyMTExMjc3MDAwfSx7ImluZGV4X3ByaWNlIjoiMjUxODAwMDAwIiwibWFya19wcmljZSI6IjI1MjE3MDAwMCIsInN5bWJvbCI6IlBFUlBfTkVBUl9VU0RDLmUiLCJ0aW1lc3RhbXAiOjE3MDIxMTEyNzcwMDB9LHsiaW5kZXhfcHJpY2UiOiIyNTAzNzAwMCIsIm1hcmtfcHJpY2UiOiIyNTA2NTAwMCIsInN5bWJvbCI6IlBFUlBfV09PX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3NzAwMH0seyJpbmRleF9wcmljZSI6IjQzOTMwMzMwMDAwMDAiLCJtYXJrX3ByaWNlIjoiNDM5NTg0MDAwMDAwMCIsInN5bWJvbCI6IlBFUlBfQlRDX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3ODAwMH1dfX19fSwic2lnbmF0dXJlIjoiMjZlMjJmY2YyMGVlM2M1MzgxODFjMTgzOWNhM2VmYjNhMjFhZTA4NDA1NTY0MmVmMmQwNTE3MDU5MTlkY2U5MjZkYWE5NDYyYzRiMzllNjljYWUzODIzNzhlNzYzNjVkODZkZTMyNjZmMWU4ZDBlZmRlM2YyN2I1ZWVhYzY1NGIwMSJ9fQ==","deposit":"0","gas":300000000000000,"method_name":"operator_execute_action"}}],"hash":"FM3xssPVrUQ6opWWLdQCEAf79BgKJsuQrDZ11UuxfYiU","nonce":106907854103194,"public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP","receiver_id":"asset-manager.orderly-network.near","signature":"ed25519:5mya8fsSLYviCqjTQKrhGzHxxvTesyQkJUTFn78RCXsPfFxfGtThBdh64kYU91XX9gv7kkCKvF5yECGUWAetQTy3","signer_id":"operator.orderly-network.near"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","outcome":{"executor_id":"token.sweat","gas_burnt":3880892861272,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba\",\"new_owner_id\":\"fees.sweat\",\"amount\":\"1000000000000000000\",\"memo\":\"jars.claim_fee(591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba)\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4144420374"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"100320000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2698946430"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"46816950"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"595772369262"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"91556270406"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"65660865336"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1337372052"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2071852380"}],"version":3},"receipt_ids":["472dKMTuMdutLPgrqGXGerntv32sBzCAnQEjKfXVn9V3"],"status":{"SuccessValue":""},"tokens_burnt":"388089286127200000000"},"proof":[{"direction":"Left","hash":"8bPKXE8mkn48jZ8rnsaxjSWHynbXu4LNSW8nwubMGuUj"},{"direction":"Right","hash":"9smJVQznM2apJuL3ghLayrPDWcSyAfehwo2Qu9q2VFnV"},{"direction":"Right","hash":"H1nPyYXmjUhEmd4UhV1JHMPpe4wWUdvPfiDYz8DZXRHR"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuY2xhaW1fZmVlKDU5MWRjY2I5MDFhMTg4ODE1ZjMxYmFlMTE5NTk3NmRlODNhZDczNDc3OGVlOTczNjY5OWQ1N2NkNDFlZWEwYmEpIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","signer_public_key":"ed25519:6zse8K7L5Kydn2M8XhPDJAHyp4VSHxbXKVLn3H6PjKmj"}},"receipt_id":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","outcome":{"executor_id":"token.sweat","gas_burnt":3521195706607,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b\",\"new_owner_id\":\"reward-optin.sweat\",\"amount\":\"100000000000000000\",\"memo\":\"sw:rew:optin:0ODjGQ5WrY-57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4342402239"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"104880000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2816787753"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"48295380"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3955245564"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"225427382964"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"95929977591"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"66540391500"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1378228632"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2128875840"}],"version":3},"receipt_ids":["QANFa4RhJwsgCBTjunWknihGrfxyEUSy7ggpJcdDmUL"],"status":{"SuccessValue":""},"tokens_burnt":"352119570660700000000"},"proof":[{"direction":"Right","hash":"47uA8NcSY4zEa6KHzcd4TcWFwmcLk9JagJ5PgJCvKbZL"},{"direction":"Left","hash":"7Cp11tSZJNkhVyZQ4TwVrpsy5HWpgeeVHTK673ofYnti"},{"direction":"Right","hash":"H1nPyYXmjUhEmd4UhV1JHMPpe4wWUdvPfiDYz8DZXRHR"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46ME9EakdRNVdyWS01Nzc2M2U0NDlkNjYxNTEyOTc5ZDUzOWU2ODBmNjA1NGIyYzhlNWQxYmMwYTJjYTQ4OWYwYzc0MTFlYThjODBiIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","signer_public_key":"ed25519:7pTxN4cYnC38CWxSzyHLvA1Zv6J3X6dipnNVu7zw2az6"}},"receipt_id":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"DZYk46E7Trg6zBLv8uw6Ya2rUCnd8Xv4nCK5sRo8oUnp","outcome":{"executor_id":"token.sweat","gas_burnt":2694312833945,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"4765825998"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"10439452800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"387735966"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"12585825930"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"23063508"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"392770350"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"64196736000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2248211490"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"352414335"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2171297730"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"31244159100"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"16822769166"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"680943000"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"17193134916"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1155675456"}],"version":3},"receipt_ids":["T8t8JdjnSESC4vcBZFJLDixmoM2eBpD1WBaH7TUfEfx"],"status":{"SuccessValue":"IjEwMDAwMDAwMDAwMDAwMDAwMDAwIg=="},"tokens_burnt":"269431283394500000000"},"proof":[{"direction":"Left","hash":"bNGXqimgyfa1WdZWLjsnMMkCY4GmBBPy53ZPAwdasYS"},{"direction":"Left","hash":"7Cp11tSZJNkhVyZQ4TwVrpsy5HWpgeeVHTK673ofYnti"},{"direction":"Right","hash":"H1nPyYXmjUhEmd4UhV1JHMPpe4wWUdvPfiDYz8DZXRHR"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzZW5kZXJfaWQiOiI0NjYwODFjMjgxYzg5ZDA4OTBlN2Y4YTkzMDNlMjFiZWY2ZWVhNmRiOGI2OGY2ZjFkNTQwMjcyYTMxNTQ3YmY3IiwicmVjZWl2ZXJfaWQiOiJqYXJzLnN3ZWF0IiwiYW1vdW50IjoiMTAwMDAwMDAwMDAwMDAwMDAwMDAifQ==","deposit":"0","gas":12010695244604,"method_name":"ft_resolve_transfer"}}],"gas_price":"134391638","input_data_ids":["URG8yX9XnvfgWkXDDKkPfMLxh9S8qpp8pYgX1W9fLiY"],"output_data_receivers":[],"signer_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","signer_public_key":"ed25519:EUo3ZevwMAZEmZVvgkneYVy5MTtf5kggSD7vdp7Pwb3a"}},"receipt_id":"DZYk46E7Trg6zBLv8uw6Ya2rUCnd8Xv4nCK5sRo8oUnp","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","outcome":{"executor_id":"token.sweat","gas_burnt":3474614416044,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"spin.sweat\",\"new_owner_id\":\"1319811c5fb65e4de7e7b4afced536c8d306760584f695eac874bdc462a5e0bc\",\"amount\":\"1000000000000000000\",\"memo\":\"sw:lw:Od8y2yZqaB\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3299697750"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"104880000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2455661118"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"40508982"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"209325427038"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"72895119750"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"61464809736"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1163050644"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1828552284"}],"version":3},"receipt_ids":["8Sey1q3rFju47U27r9ej1JLDzmkXhCnHQem2kex6vTmc"],"status":{"SuccessValue":""},"tokens_burnt":"347461441604400000000"},"proof":[{"direction":"Right","hash":"Ci2S9VhpdzfGqcxNjZ3Sntjy4inTbSGk7TVJ9t7nwjVN"},{"direction":"Right","hash":"ERGXNaWE6482YUyaU21amgQVSdbWvMpKyLfZzK9osdmf"},{"direction":"Left","hash":"Eq5v34KrnqxYDfLNMzSc8hRiUNQAxx6qVzCYas6eSHsT"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"spin.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjEzMTk4MTFjNWZiNjVlNGRlN2U3YjRhZmNlZDUzNmM4ZDMwNjc2MDU4NGY2OTVlYWM4NzRiZGM0NjJhNWUwYmMiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3Omx3Ok9kOHkyeVpxYUIifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:H7NMW2sQFG3gYTNPykTXJZDhUhppA4MmDoR4hvYjt3c6"}},"receipt_id":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","outcome":{"executor_id":"token.sweat","gas_burnt":3477306595713,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"learn.sweat\",\"new_owner_id\":\"17620ca836a66b11845dc5ac0d089d1d1e120ea3559c8b662f5e62bd65b51584\",\"amount\":\"1000000000000000000\",\"memo\":\"sw:tr:7xPGV1OmKo\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3312896541"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"107160000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2467065117"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"40607544"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3617602650"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"209325427038"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"73186700229"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"61505947536"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1165774416"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1832353848"}],"version":3},"receipt_ids":["9Lgif5yFWUzuPaSJtBw24fNFHA7Z9BssSprD7q2hzypL"],"status":{"SuccessValue":""},"tokens_burnt":"347730659571300000000"},"proof":[{"direction":"Left","hash":"2aVrLm6PHRVCuJ8KLAcZx5Ei9PNfzC8NbTe7AbPF1C8b"},{"direction":"Right","hash":"ERGXNaWE6482YUyaU21amgQVSdbWvMpKyLfZzK9osdmf"},{"direction":"Left","hash":"Eq5v34KrnqxYDfLNMzSc8hRiUNQAxx6qVzCYas6eSHsT"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"learn.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjE3NjIwY2E4MzZhNjZiMTE4NDVkYzVhYzBkMDg5ZDFkMWUxMjBlYTM1NTljOGI2NjJmNWU2MmJkNjViNTE1ODQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3OnRyOjd4UEdWMU9tS28ifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"learn.sweat","signer_public_key":"ed25519:3RdonD1M2qviB9A9nnRfTCkbg4kbTeuDzkYXbirmkxy3"}},"receipt_id":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"92nz2arX34dfkJvvRdD4sCE8fygyL13JVzn6Ugnfm1Nz","outcome":{"executor_id":"lb2oyd4yvviz.users.kaiching","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":["GzkctRCMQeGxgypefKQmCDnABEUifK6Fu1cjUec7kF2A"],"status":{"SuccessValue":""},"tokens_burnt":"417494768750000000000"},"proof":[{"direction":"Right","hash":"FJadWEy6hAZCcnCjEeXCY9228nvpk5TVgBD5D7R9Z9Kx"},{"direction":"Left","hash":"wcaxXnfHbWYYEAazBMvMHneAht7FcqAFiDnRhiXFhe5"},{"direction":"Left","hash":"Eq5v34KrnqxYDfLNMzSc8hRiUNQAxx6qVzCYas6eSHsT"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"users.kaiching","receipt":{"Action":{"actions":["CreateAccount",{"AddKey":{"access_key":{"nonce":0,"permission":"FullAccess"},"public_key":"ed25519:2cjDsUp9qKPTUjLSqTbhB7Cci3aEYcjv6eyoUaqRiBWS"}},{"Transfer":{"deposit":"10000000000000000000000"}}],"gas_price":"103000000","input_data_ids":[],"output_data_receivers":[],"signer_id":"users.kaiching","signer_public_key":"ed25519:CrPVX2eXCyqQX7oVcUF6AbakYpQifD4Y3u6agWXYzLNW"}},"receipt_id":"92nz2arX34dfkJvvRdD4sCE8fygyL13JVzn6Ugnfm1Nz","receiver_id":"lb2oyd4yvviz.users.kaiching"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"3iPY7af1bfMGUnwEGQ2LkUef2SpZ2eyZFMiXvm5PTVPa","outcome":{"executor_id":"spin.sweat","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"J4UzwV6yzFHoW7yWAtG9jRd7To7mHKxq6QeTWa7cVAtN"},{"direction":"Left","hash":"wcaxXnfHbWYYEAazBMvMHneAht7FcqAFiDnRhiXFhe5"},{"direction":"Left","hash":"Eq5v34KrnqxYDfLNMzSc8hRiUNQAxx6qVzCYas6eSHsT"},{"direction":"Left","hash":"xe7eTW9U4bx1waENRmt1vf5yYhDXf3XqGmqxLiPq2dh"},{"direction":"Right","hash":"7LssS3geoAuQr4AZCHMvjnqzqoJxsBqoN3rai2of79Ew"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3605833482718851668700"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:syYPxRG9YkUd6NN8aKtbfcXyxd9ggGgdUgu7j24Zi25"}},"receipt_id":"3iPY7af1bfMGUnwEGQ2LkUef2SpZ2eyZFMiXvm5PTVPa","receiver_id":"spin.sweat"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"4tA2xd6NVknZ8uV6VeSa3sWnx9wdpquVKeNAJAyCkLHS","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":["FA5XdXrVqm894n1UrFqUMJ7U4GxysRqFEeenDENYdoXP"],"status":{"SuccessValue":""},"tokens_burnt":"22318256250000000000"},"proof":[{"direction":"Right","hash":"7Gy3WWpTa4VCHxdUv28UWC6AkNjQQCGRm7uug6XDF5qd"},{"direction":"Left","hash":"8ffHjQneQG5LWMpcpREMeXxmQ1no4AiarRyqGWuXCRSG"}]},"receipt":{"predecessor_id":"token.sweat","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"350000000000000000000"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"4tA2xd6NVknZ8uV6VeSa3sWnx9wdpquVKeNAJAyCkLHS","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","id":"8HC4wjuh3m6wdx7rfm35J4Utzdk7hRDaZ8tZQLcX4YKZ","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"5GfCfyTMjsqyTfza8cLbJHsAJ5k6K3o5yUmJMnM2vMoT"},{"direction":"Left","hash":"8ffHjQneQG5LWMpcpREMeXxmQ1no4AiarRyqGWuXCRSG"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3628691617889883600468"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"8HC4wjuh3m6wdx7rfm35J4Utzdk7hRDaZ8tZQLcX4YKZ","receiver_id":"sweat_welcome.near"}}],"shard_id":3,"state_changes":[{"cause":{"receipt_hash":"92nz2arX34dfkJvvRdD4sCE8fygyL13JVzn6Ugnfm1Nz","type":"receipt_processing"},"change":{"account_id":"lb2oyd4yvviz.users.kaiching","amount":"10000000000000000000000","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"4BsQfHbUWd78m6KtcSXEpqrKGpeM2R3t5gUyXXsK53Px","type":"transaction_processing"},"change":{"account_id":"npo-aurora.near","amount":"932388113525202620021900189","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1638},"type":"account_update"},{"cause":{"tx_hash":"DsHPk9NavGSJb2Fcnunu6H8uYKeiQiQ8RBSBJ2fBik8j","type":"transaction_processing"},"change":{"account_id":"operator.orderly-network.near","amount":"3083354936402726868427820423","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":710},"type":"account_update"},{"cause":{"tx_hash":"FM3xssPVrUQ6opWWLdQCEAf79BgKJsuQrDZ11UuxfYiU","type":"transaction_processing"},"change":{"account_id":"operator.orderly-network.near","amount":"3083165662799269513793670971","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":710},"type":"account_update"},{"cause":{"tx_hash":"BpoRax4dyMgtS2yfNg8go71mnR72baEx2GxbGood7wgH","type":"transaction_processing"},"change":{"account_id":"roshaan.near","amount":"6651424316237969201746792896","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":16990},"type":"account_update"},{"cause":{"tx_hash":"6y5cyfDriti1ZWnP7jkaaKfRWh74NDp9Qwn2yvWAuUqy","type":"transaction_processing"},"change":{"account_id":"spin.sweat","amount":"1304683384359746072036285613","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1740},"type":"account_update"},{"cause":{"receipt_hash":"3iPY7af1bfMGUnwEGQ2LkUef2SpZ2eyZFMiXvm5PTVPa","type":"receipt_processing"},"change":{"account_id":"spin.sweat","amount":"1304686990193228790887954313","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1740},"type":"account_update"},{"cause":{"tx_hash":"EKfvBswdJXfUzJj1vaN2vn5bCTeiHGvioVvTBBGuvywC","type":"transaction_processing"},"change":{"account_id":"summer5.near","amount":"31617814329713900403840793","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":9108},"type":"account_update"},{"cause":{"tx_hash":"GjkAsS2FTEu1gwgez2RNy855p4maRWiimEzvD7HVDr89","type":"transaction_processing"},"change":{"account_id":"sweat_welcome.near","amount":"12207485625808966492643020807","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"tx_hash":"8fFGGAwxhk6hm5pA3HYgmo3j5vHZ6ajx7mCQQWaPAPhF","type":"transaction_processing"},"change":{"account_id":"sweat_welcome.near","amount":"12207480144743732692520232839","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"4tA2xd6NVknZ8uV6VeSa3sWnx9wdpquVKeNAJAyCkLHS","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"12207480494743732692520232839","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"8HC4wjuh3m6wdx7rfm35J4Utzdk7hRDaZ8tZQLcX4YKZ","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"12207484123435350582403833307","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"tx_hash":"H4ZRkJib2biPo4Uwo17koFs9SfrovBmcEHeWFKb5aoX3","type":"transaction_processing"},"change":{"account_id":"thelittles.near","amount":"484414819296869977486999997","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":511},"type":"account_update"},{"cause":{"receipt_hash":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412548260570795601906471","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412591838994150501906471","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412591838994150501906472","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412624625496695201906472","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"DZYk46E7Trg6zBLv8uw6Ya2rUCnd8Xv4nCK5sRo8oUnp","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412624625496695201906472","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"DZYk46E7Trg6zBLv8uw6Ya2rUCnd8Xv4nCK5sRo8oUnp","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412632606653386301906472","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412632606653386301906473","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412663997394164601906473","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412663997394164601906474","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412695468900332901906474","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"92nz2arX34dfkJvvRdD4sCE8fygyL13JVzn6Ugnfm1Nz","type":"receipt_processing"},"change":{"access_key":{"nonce":107503703000000,"permission":"FullAccess"},"account_id":"lb2oyd4yvviz.users.kaiching","public_key":"ed25519:2cjDsUp9qKPTUjLSqTbhB7Cci3aEYcjv6eyoUaqRiBWS"},"type":"access_key_update"},{"cause":{"tx_hash":"4BsQfHbUWd78m6KtcSXEpqrKGpeM2R3t5gUyXXsK53Px","type":"transaction_processing"},"change":{"access_key":{"nonce":62486061135948,"permission":"FullAccess"},"account_id":"npo-aurora.near","public_key":"ed25519:DtsWNKcf5mc64RKYvsL56pW1ixJDsSgrQQnG9dfeiEmj"},"type":"access_key_update"},{"cause":{"tx_hash":"DsHPk9NavGSJb2Fcnunu6H8uYKeiQiQ8RBSBJ2fBik8j","type":"transaction_processing"},"change":{"access_key":{"nonce":106907854103193,"permission":{"FunctionCall":{"allowance":"11433779712699492484614629772","method_names":["operator_ping","operator_execute_action"],"receiver_id":"asset-manager.orderly-network.near"}}},"account_id":"operator.orderly-network.near","public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP"},"type":"access_key_update"},{"cause":{"tx_hash":"FM3xssPVrUQ6opWWLdQCEAf79BgKJsuQrDZ11UuxfYiU","type":"transaction_processing"},"change":{"access_key":{"nonce":106907854103194,"permission":{"FunctionCall":{"allowance":"11433590439096035129980480320","method_names":["operator_ping","operator_execute_action"],"receiver_id":"asset-manager.orderly-network.near"}}},"account_id":"operator.orderly-network.near","public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP"},"type":"access_key_update"},{"cause":{"tx_hash":"BpoRax4dyMgtS2yfNg8go71mnR72baEx2GxbGood7wgH","type":"transaction_processing"},"change":{"access_key":{"nonce":69731409000395,"permission":"FullAccess"},"account_id":"roshaan.near","public_key":"ed25519:CjFXVJF5L43JwYxR9Px8w5udkdEJ19mWXXHSKY1KPyBW"},"type":"access_key_update"},{"cause":{"tx_hash":"6y5cyfDriti1ZWnP7jkaaKfRWh74NDp9Qwn2yvWAuUqy","type":"transaction_processing"},"change":{"access_key":{"nonce":100151817209227,"permission":"FullAccess"},"account_id":"spin.sweat","public_key":"ed25519:3MRyMM8nR2b6aED5NSvZK7CPkzvVtNYZYFYPiGUZoiWL"},"type":"access_key_update"},{"cause":{"tx_hash":"EKfvBswdJXfUzJj1vaN2vn5bCTeiHGvioVvTBBGuvywC","type":"transaction_processing"},"change":{"access_key":{"nonce":102571812000261,"permission":"FullAccess"},"account_id":"summer5.near","public_key":"ed25519:EVXXZVycps4xQgrJMd3m88pwbimVT5iHibefN8H7JLJC"},"type":"access_key_update"},{"cause":{"tx_hash":"GjkAsS2FTEu1gwgez2RNy855p4maRWiimEzvD7HVDr89","type":"transaction_processing"},"change":{"access_key":{"nonce":64885790491715,"permission":"FullAccess"},"account_id":"sweat_welcome.near","public_key":"ed25519:2zZW3xeqAiKCiH1KbcrXWcNdkQXUrMUYHPYkZWiWfxtV"},"type":"access_key_update"},{"cause":{"tx_hash":"8fFGGAwxhk6hm5pA3HYgmo3j5vHZ6ajx7mCQQWaPAPhF","type":"transaction_processing"},"change":{"access_key":{"nonce":64986136385108,"permission":"FullAccess"},"account_id":"sweat_welcome.near","public_key":"ed25519:5CPsg5DVUMeh2mSqGbEZxcRn1feCMkBLmth1E8ND8gBu"},"type":"access_key_update"},{"cause":{"tx_hash":"H4ZRkJib2biPo4Uwo17koFs9SfrovBmcEHeWFKb5aoX3","type":"transaction_processing"},"change":{"access_key":{"nonce":90584438144516,"permission":"FullAccess"},"account_id":"thelittles.near","public_key":"ed25519:8AKi9nyQvtqNG4hjb4BqosnfGQdudwtHUYohqgpLNxwy"},"type":"access_key_update"},{"cause":{"receipt_hash":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"DZYk46E7Trg6zBLv8uw6Ya2rUCnd8Xv4nCK5sRo8oUnp","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAAwvZVGr7Y5nUN4uzcD3KoMNfBYcW75Gjw2rL89wJRO2Q==","value_base64":"vFhoGiJJm7f2KAEAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dABbzzA9zVWYjAM39EE2Uu19LZx2MbV1B68gxvYZ4nACGw==","value_base64":"ADVv5xUkaN/jGQQAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dABjxnCmpez7n1WPfwt67BermjeLQHWG18+T1lIqua4+2Q==","value_base64":"AACg1QWF710ZFgAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5sLStrJZRkxposFSNuhriCcqbGGGg56Dbc2zFq1rfPX4","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dACChZKL5qHUgePkn+cgZfs6XAn3p6Ai5mbF7vkDN7b83Q==","value_base64":"5DsU5M0jsew3AAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADCUiigKPOTAl1jqrFvCFMV6YPDQuu8kGehwLHx0CgpIw==","value_base64":"9aGxNvP8lyhx9AkAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Hyub7MSn3yjADPnevQViW35Zx3a1yntxYzLziWW3yW4o","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADOBQ/7xTeNzBibHifI5eAku2Dw8Q9u82Il2lkxzD9Sig==","value_base64":"1WfTve9JgQABAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"HfjZ9qaDmRcVWUbeZPSCzw1u1Mk89hkHPrSa8Fzc852F","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADkNNLlfaap53+DLRq2+ahc1CTxA22g6IKX7K5oEDGERg==","value_base64":"ZXVLO3yxC9AEAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"4PcZuJXHoQ7TLe6BeE92ssL8YSqZRkJKhS3AERY7bWBg","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAD3fQJSPAA0k/fUxA9+fLrfmRXsuWzfqj8Qc4sLjGpDhg==","value_base64":"+vd9fwvKKX4DAAAAAAAAAA=="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503705/block.json b/block-streamer/data/000107503705/block.json new file mode 100644 index 000000000..450aea483 --- /dev/null +++ b/block-streamer/data/000107503705/block.json @@ -0,0 +1 @@ +{"author":"astro-stakers.poolv1.near","chunks":[{"balance_burnt":"2563407420632700000000","chunk_hash":"GocKzEHhqht5SS2o8S5KzdfogcpciuaE5DjytW6e8wTY","encoded_length":4327,"encoded_merkle_root":"A5rfafUW76VWfutztRHbTWv8tuE8E9eyLngNvTb5RM8t","gas_limit":1000000000000000,"gas_used":51309364991975,"height_created":107503705,"height_included":107503705,"outcome_root":"CAzqwoJkRPAeQ2Bqu9mMchBzu7GBCtjdBXhJ1X4gW67k","outgoing_receipts_root":"7283KJohsC41ejT9C9XmThWUdxyTW6u6F6YqR9PDNjDK","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"9VCMkYWH8i7aJ83xDuCoDySzVwsFE3HCjFpFeguLYa3N","rent_paid":"0","shard_id":0,"signature":"ed25519:4DEbUgteNrs5EL6111jPTFQ4nFjcx1GoEFCg8JyrTiKFfdSgZmLR4oh75ULv2gvHPkGkHKWVNzjkFsgRBCAJ8keB","tx_root":"AbPBp7CbBrcJ4QCrkTCxKTu25Yttnrbdb9UQmqjJtYxo","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"328039759800900000000","chunk_hash":"CBQ7Q5RkW3v3Jozd2esXjqWrtRFjEU9piEoMetJmBiPV","encoded_length":161,"encoded_merkle_root":"BRcT52UdJ6nqfcoKyBQ6Keda4dhGZhhqrXbPnX73XDVW","gas_limit":1000000000000000,"gas_used":3644983855043,"height_created":107503705,"height_included":107503705,"outcome_root":"EeguCoRrCzd8zGoAKzCyJxAAUMQcLSy3Y1FovqpAmvqQ","outgoing_receipts_root":"DN7QhC5dcBjKSz771NhCWpvZyCAnK2YmVcJWyDvkiKy8","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"5xhpLgxiNn1vRsNbkVwZ3oFJfJgXywBaqffNmm8aLcH7","rent_paid":"0","shard_id":1,"signature":"ed25519:2BoGwm2mBDt2Dw2s5p1kyFBFDboWZCDR2nyAoQUfF8v8gcW2FCS1wq4TZajdVR4mr6Ru4625mfrefMAEP3EEKPMk","tx_root":"11111111111111111111111111111111","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"1934216998459700000000","chunk_hash":"JVUxEXM7cDS5F2SadFhE8sGENceNfgByXGpoABkwycS","encoded_length":4782,"encoded_merkle_root":"BUL5yrr4c96CwSBXyS5B2eo7m3AGqoJoDXLime2AZTiA","gas_limit":1000000000000000,"gas_used":26232275364081,"height_created":107503705,"height_included":107503705,"outcome_root":"34hNCYf9eA9X2uPNmvswjirxZ8h918fJNXsyA5EevKaZ","outgoing_receipts_root":"5Py777coKphZ12EUnxsg2wjrWLbQc6rcbwKPjeA3MimK","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"4da6GG1g7z8eUCB9e3h61Rg68XirNofRGg6d3sKEwwdr","rent_paid":"0","shard_id":2,"signature":"ed25519:LB9XVrk8JmYbJr8eeRo8ttv2DqHWyDA7KWqUn9n3YFMttcRAM5aDtyjkeUsw3C9XDjbJ1Eho27VKLd9Lb9t6Zep","tx_root":"4gX8CX7B95i3jEZfUTtqojf8GxAh2ZsuNREjpCzHgV1P","validator_proposals":[],"validator_reward":"0"},{"balance_burnt":"4358447737162400000000","chunk_hash":"2Wn5h4dEowWFaDLJoT47a2wyoDxSV7PKXSifmcSxQoUg","encoded_length":9453,"encoded_merkle_root":"Fk3o19LMnGWGP7TUVqS2PhmSuBCy52W3haQN5gM8rVna","gas_limit":1000000000000000,"gas_used":45502925791997,"height_created":107503705,"height_included":107503705,"outcome_root":"AC3ST5CXqqmASbnBLKvAoCMZvxRbHfyMMwPmDSDQwFJK","outgoing_receipts_root":"GZUvrgefcFecf2k7hJKD5Ci3zyjPwHCPGGZKJAnyu5xH","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"41Vg5K4oYFjrJ1bJcTqQyrKpJJGjcZ3p4WZVmCd2BNM7","rent_paid":"0","shard_id":3,"signature":"ed25519:4khmuSFjf2rWUcxxp2nyLrJ3cbATfGcZpasGipCEnKdk8csw3gujesMDvi3vYyBxhruFqk93ZRy4vpdy2XhgkMzm","tx_root":"7FGUqdYg6UE3qUKt7dFpSSzzJM3iMcyWtn781SgiHatt","validator_proposals":[],"validator_reward":"0"}],"header":{"approvals":[null,"ed25519:rKbdti3XqjTJspnp1isgRdzghUufY9BfhPbHTtq52kuLmfhHJ7bTSDaVt8hfUmJXvetmruagep5uTeTQhmeHFKi",null,"ed25519:5gmji5L9oUM2DkiaTAJNKfmvaVtiSK6Px4igaUSnCuZWywqUgpjU6DDf564nR31nfyTzkAUFHiUEm8YS5z6vEGUF","ed25519:5sVmJX4BQsgJ7SJHm6LPxwA8CoN6RkSUK5uR94VJSP9bNMk3MQ1Mp91jBpxb1aUsP1wnHxbsDv3TMTNffzuPH7oc","ed25519:5xtE8jjsRQWSASP2hRp5HuqLcdDNm3c9fQQcJkWmAQtWL7QXVXSDaKthJgn5CqmDPwv7eiW1MrSuVBBYZPjfJr2g","ed25519:26bvmvf6ns2QW5WhGFty1BeKgn67h9Q3RWCJ8yLCetyiy4NEbgpCQuq8YMTesL5diKywBnpoLobd2XoWqd3sBJy1","ed25519:2ndP6XQYxgVbiHzVaMQTh5KkzdDms1WsF1VHt9HFSzrj5canB1oPXtUqapvJ6QT9Hme1bUEJm25zZqAASKLsCPdP","ed25519:4ERABeZb2rB6bUkQsxfcEHK2SUUX9pbAfFtsumqH2rr4QZCTx8PSdcA31VV8QSGUbgUd2Tt3nQErBc3yFL2gLHEJ","ed25519:opyCbtK41zafzqzsLABKQFNF2LqAtiohkP3JAWGFfiLbCyQUtRXGKu4ofoyyfv2dsKYZFSL425YZbwAfWobVAFW","ed25519:2q3YYH82qhfiDs9gnxn35aE7N46F493Yr8ryom47oYuSw3uoxxnEc5DEydwLRLjhTPE4FZGEaRHLFKaVGj74AHZs","ed25519:4uAhrB8oCBfbhVHCMUK2hznVDD9vyfCT1cKjz7PpyjCfadzogoWoxgUi9jPPiP7TnUUMgNXLQ7qJbGipoFs21qLc","ed25519:3TxPyNFNAEJ8DegHvMFkZ7DdHjz6ZToj7S7zP8Vb7X3fbKDVRW9XBKFFev61weZDGciWnDvLkVgaKG6swC5PBRBu","ed25519:VWFZaFsJtrEYNccnUsX6TMRXbhrp7X61KpBHyweZMmgvgGncEVxo7BpFurihc4zj7YY4LN9GSoMYt185vQ8ryim","ed25519:3EJjJq29o4pC5yKLBBTBHuEkwepr7Ki6Wvhm1muJQ6mV3QK3hELKbjgAPvP18gwn7bmxNV1ceNNG1QCq7zDHkwXg","ed25519:5JkQuFHA8hinZmB2caRCKWt6WYAtYCSDGKQgy2gv73719aBac5W2Mh7KxTdSRZHJJSfCMSZK7quAdayWcy5eiPhp","ed25519:qgyTHhzrQUpsj1g4d9B5WTrwc78vaGCzbthbsYN3vRZVNx4G5nz1mR9yc77fcUcPGPMxEqNMmksTFhnjpY4jezC",null,"ed25519:4CWf3Hz3ekAr6YzBvLVPqASm2UnNpay658aNvsotWXnxvbcgbLb2cYjHQVziwYt1pBhUqoYybHyeEXrbzWAsmv6P","ed25519:uDxF5WASKwpFbifCZYLFyDY3vB1tjemK2djSpQctbSsRwegxK4UUVeMUmSLxa7wuwzsCPbWuuJeNv4QzwyjWTUP","ed25519:4FNk3vAQMeb2Hn8EWm475azkeEwDxMkGkvCHnirWtGQDv6oqdSSML6Zsryh2R5q1ozbu99mSbmujSAduzGDoMNnZ","ed25519:39gvVD2r4G9yoHhrGrhzqpXmaQUzjz6QcggDqntoWseW4m1XyJYzM9ux7jSoFXp5ZVoEuVau3wojDtCuPurDbGrV","ed25519:3NGHaaFhAk82WZ4D7Py8QJkexaTZpv6bpt4PYAmyK14LD6Tdt2K42RTLnA75BLr3SjzEiXPhfEStnk26ftRVw3NF","ed25519:4oNoJFWn1Zj2aQGLWDwm4crMz1r38WyWGbEpStcE1xfyF4E6FuqRBivg5iHtAMRqRmCo5nnb7Z9aeo7ghaAawFao","ed25519:24W3mXp4pqcwTHbViqP4iEadqMcPSn3Jy6tEje8fdRQhrJmkVma6McJpp2b2fa6UyaDiQMmf8vdERf6hwZCRGRkx",null,"ed25519:MPEa2Gg7jHkyy9v9DwU2qbq38mpZAgSP7qXXB55rPyBJmUiDoH8aEXiKTA9p6N7FJnqxGev7f7wkaFZF98XK8qU",null,null,"ed25519:CzRb99dX9ZryRRXtvcDvnqrTKK3GWVYvPQwqug276TJm88xVS2Cd4L9N8QGqo3LPemfEfZjXCnhiq2uf5k2Eub6",null,null,null,null,null,"ed25519:Mpv9W3viYhHKugxTzZXXveFwN7qcwpnGLSpWYmQCN8KYZoP1iM23ux57jKnw4NmhtzLikboMVh8U5zJbz1ip2pM","ed25519:5nqFbyBSm7B6zdo911eoj9WbbpicSkATwMFdzDCFBcRLkU8y4vPK2nUaQqoYLdtxgKvHrNUgpnG1zPANSEmiXrje","ed25519:5dARnGviTE8YHoDyDnxCPJmYg7s4FoneivCsJabrTE2vDDgtVDQi8JQHVBdaRY9jmaKJ6KaE1EDzFBjoiisPMZv5","ed25519:g88DVPrvHbULtpj1cT3hQCMdyw53h7Q8kXBWVPokxvzgS3FsisKynhCHtqpcZRqkvbBT4uCDWPQg7AyWci1SNKv",null,null,"ed25519:5mxymMTzuB4jkwUzbHenG4eUWdKRL1Hy6Kaki4MCcxy8ba13PfR2UC7e42kyzDQ8zpkusAYRTQZbKYRcZFR6HGjQ","ed25519:EMkuFMXi1huVz3TMKD74eodoeQJrJJaJUHxadALNZyRSaspZpPRDCLsuuSLpekZcaZNhSLPJk4znHSYpPCircTg",null,null,"ed25519:2bGFwRiuDsAfzNFZ7C65a3W1Bg5bTXb7gKNtKTv25PNn39MbMbc2HxivGXe4hCtkrkaGoBQ9vi6qP11s68Y9F61C","ed25519:2qC3z7k12buHBbqdy75YvKTJjf216WHZHDX7e5DaAJPt31E2Xocah4T7pgJNuArngixcwanaeemsfuZmZcyH7Xzw",null,"ed25519:3YMJq7KxTpHgLX4uhGo8GLjwtEHnauZQwXeJ3uedQspLazcNFCS84kTk9zLSDcWokJ63PspN2gKY2D6rxJN7mgZt","ed25519:2XDv1faXAvm2gEFupfVNeuFZhTBNXpNcnec1q9MgbzGuCkJxDXcugnMGS1yT8DqEKKdzvtYkMFVvaiSkRo4WRYMs","ed25519:ANLzz2K4PvvkMG98J4XY4GzmjyejLxoYENEzJrC8uvGUBd4w9pkQCrxzLnL8dzt2p4hAjzS7gEG3fY7QQkF1fp4","ed25519:36zSLsY68ehzSPMfBsKQ4VBpVkWV6Up6LeGV5ybdKYsyXgGk3npnKx1GvUysG5D6sezcUyYnKpQqN4wthXViCDPS","ed25519:mNann2pXDuFiQm8YHndZbMYjqaDcE1vDxqcNg2iuSFcqF5SndZodSBuAQdv7NiH7seP9TjFQLSrweY22R2ZKHkW",null,null,"ed25519:3Yj7qwYECBC2SpERfHy9MhD6a9nU3cV96otjW5UXPAiJcGymBGZijQ4UbyExfsYgXfiHx7MNeYEPKExNXEUgeBrs","ed25519:3vzFrKm3dpzTDPkRv7LatmoktKrfQyzZWU6GxY541DQtZejf99GGAwpG27g171jmFQ8pBF4Qm5sAQrdRwPJSaYY","ed25519:2zKXsWcPSpn5m8rwGH5UfH5E2JKM1hAkv99hjeJ7gsNBKYrxXUCpzkwomdAzAbjbyANd1Sf4QJ8ozfCwCUb6WWoo","ed25519:F957JJkJqNbxixUs3pciVYj5BoBw2astpyQmM4m43Yp3SqNc8mFDSiZnRHESbqaMZfxH4LZtm9yLVwHiYEeS9Qa","ed25519:67dwqbpD4CAYsbVL1PBarSUQDQjQ6rdQgu9StRSD7rTu214P7po82v1mJqVnfAcnVamEs5Dk4yFfPLEE9c52meHA","ed25519:4iRUi9GWPEVyZktndo29StXBB7gPEjSGo8Nsf7DmGdibfGu6NiLaiFQKjaEHahSo3GzEXR6oWXx1BgxpUHs4QDbc","ed25519:JDZUvAQ3USv8Ef3ZLkoihX17AxBUFq9ATtGTvYjssxecSobEqiXYpVCLGVDkMCbWa6Vkruyb61bkEwmYpEGEXGN","ed25519:4GGqLkML3o3QXLYJBmERBRd5mTgH11dZpzm1pGKU7GipmjoZ1HbwvRVbXJeJmfU9BUVmuowjcKfWr5cnqsvXU9Yo","ed25519:5kEPw73NiwCYQcy8mfarr6Lyk6eoG8CFr81BTRZVEsngLCiDcBodH2B6T9HGx2UQgAkfEuGVmu2XnUt5x6i88RWi",null,"ed25519:45yPwT3z7gRB69JqsJuwCuHcYUWEJNkjn3p5C76BGJSJJQpNKJJNo5icqZdY8m3CgTbQpXoEywiq4gg2LvxCb5s9","ed25519:4aTe68HQnhoFwbHR3BjEDn8RWkAY5apUiddevJzW9tZZQYHYe8GdantCeHzHpcyJ9z7w1uXe7ga2ip1SRfjbALzf","ed25519:D9cHjUWMo8zxZ7ytivFz7GzaRvdgvEFDrBaNHC3oKzvS3XAZnYkp7xPSA1YPea15NxnVYckt9LzaPNmpE83DUKF","ed25519:3BwzFd8AGzVso9y4SJthZawtrm2aXCdELRgZs6eVr7ZdJqs4hxzyq2fWGnTuMKzyQtxujXMvZ8XLwtae8xzTzw9q",null,"ed25519:4gnHanANnEwTvbeGiqhnXBmVgi61iReeumhUPPNAEpZgN9RJLbDmGRL8kfjtJoK6QUL6SjMuVQMNbnmw9sZfmDGo","ed25519:3s1dvAV1MvkVgYT9s27H7hLJpDHnRpG5RjGHtz44L1aHe1Yd3Aj6Vi7hMhafuBAbBoH4HuiFZUfnA9rjjpRR9hJL",null,"ed25519:2fQPwmoL7i2HvC4K3gt5zQhkjD6anmEeGMYPfcPFBgNjnRk9oD53CirAM6s792y4jx2R93je8sDGLm8iC5brSAYC","ed25519:2WdkMi7zhka4v1o9x65xhtPCx8ruTCBKaJnNqugZvgMXzHU5i33f3EYV4suZfGcCvrC2UKP57g71sivGY7DXVFZF","ed25519:3q4megZqru4BV3AgLNwa9zye8MGLnnPmWMNKBpaPShX6HTax3Me47Q15DFh4QwsHJq4TAGbUk5KorkfpctuEaa3w",null,null,"ed25519:31BDYbtj7RczcSqMtJbsvRruNYTh3hwmDrhoL1hjD8RWBqQqBoxenmM2sJQqmChCdeoghTaThBp6RM1H5S17fRTr","ed25519:43tbC856GDERGZRNmJkHy5ssiubBHp85rYpCDSP12XHj89NQBTtVvB6p3npzUyPuJvddf7gTYTXr6toYzQv6fDpB","ed25519:2omYByvHX3jDQPtfM6kM2d5f6HhxWSXUf4oCWbfEia9psrHCxDgtZzTgZS9ZtR76U27ynCDf9NhzsGnHVZocm9AM","ed25519:V4TQsuUccqGdAWLrnRJu7drY9MddjrxWuxAjtpVpEmTKa1SvJiRwX7HPeRFSyyS65ALADEe6qXVue8vDS9CDXJf","ed25519:d76WdJC7pDKN2ER9ac62UCtft2up72fqEKyaJiAycA5baCCMrDcuXLmgCZKMN8oTf8fkiXj9sfjnAQXKqkorEya",null,"ed25519:2USy6YQHoJ3DaG24D6qdEFU1EqvwiTqNu5ZgnRgvEobRTz6rNWrvkLADU5fsp9ZUh32BzsXVsbSD2SryVBbRfFJ9",null,null,"ed25519:3JXxRNnTwcMHYe6ZdLUT7LdGTTzDJA3peRqbr9PL88VmbJ4byLhn9daPhu537Nd12iKgCp31R37UvZUf2gx5cP3c",null,"ed25519:5zAg9hP5odhwLctuPSDRuXzHRFG6HFm6BXxFovRLyNN66eBuSDDZ2RZpapGXRBhf7zfaP1kUiyhdtdkj31ihsgxj","ed25519:3j1Wq1YnMmeqCgDoHBTWnAgxzfy9Whe34FQLcDnmU4dTn9qt78HrCmUzqQGuv8yVsHAYuyN3idfBiJGZNCmBfeea","ed25519:XLPnCubVHF1NycvLsbTiozGTGPASMeJwL9DgDA8cy2AD2Y46fkZUVHvCVhKR5J1X2GFYSzn9AtqAs5f1odF7Nhm","ed25519:41SUBRsct3AuWWz8AtBoDNEEin9NN5nad24eVRZXGJssvv2ymDWuinNuNNZNTeAeeAHNUM1RsPThZ762cnPMomJF",null,"ed25519:4DkBY3PEAdT723ao7BJ3gyLR35HPKuctpRCUnekvp71K6FxBpNPDRgXpX17RoCN9Zj7NgwTaBxbTMpGAFEz8QQNT","ed25519:4xCaQyXSbizR8yqpBnXneDozJMHLM8mLN1Qt68BHpNFyTzkFxqAyt4qYN1111TykYhZErr3fGn59qdHMkhWCsxAd",null,null,"ed25519:h4Zn3t6B55RqxfpmeqAHQT67ZKgpiwyMNgU6EjsMSKXEHKzzCStseef6i325HNWQdr9KEQSywiYBrc7WiShmZ8p",null],"block_body_hash":"G6RK5LFFyPe34UnGPjnsBVeFogrGFxxe8cthsrtKTRmc","block_merkle_root":"2B7bYHmWqWr5S8CjS8dQxa4dX2DdT8Ys9XdQPgnkVp76","block_ordinal":97414059,"challenges_result":[],"challenges_root":"11111111111111111111111111111111","chunk_headers_root":"EiwEibXCgm8kHZ1qcgqKnMJRkup66UVCosrt2VemwZCv","chunk_mask":[true,true,true,true],"chunk_receipts_root":"AReTjrPmBpgsqD7Yy2WBMHGVenvJHQ5sM2Chb4wM2gic","chunk_tx_root":"FxJgV3BtBNKfKzS2ofHCHhvYkpwbsudvKYPgJYWPnzeh","chunks_included":4,"epoch_id":"6YX8z84L1o3fAizZC2n77tDF1qdsrqLRyLs8box8iGgQ","epoch_sync_data_hash":null,"gas_price":"100000000","hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","height":107503705,"last_ds_final_block":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","last_final_block":"Fihd6P9B7N593FFKboRZrPLihiVWDkw7c4erMV2qE6ej","latest_protocol_version":63,"next_bp_hash":"9dUinkGw7AGzXm4mPLNtHjxWDgdExk8n8S5UbmHWrqNw","next_epoch_id":"7VCSxVhcEc696MqbBJK67XAr3E96C1gUpcXHwZH4YDnH","outcome_root":"9U83kgG3WFzZMRLpiL2vFoMsQv8qbNQQbaHFHiMtWhVQ","prev_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_height":107503704,"prev_state_root":"BarkWWz8PJKgYMtiVkVwR6EV9vqgnUnpoCPVmp3DNP7N","random_value":"AfDZ8tJm45VaL354zs7fCioqH5h2LrFEyu9MeCBW6A7a","rent_paid":"0","signature":"ed25519:xm1iYbGihGAuaW9uz4ux5ZYzy8LbuCv5FvzocuNzUupzMLkajdG1HUJVGMPB2ojfAJEfu42TRHPVRQBoHr5n7nW","timestamp":1702111282193899818,"timestamp_nanosec":"1702111282193899818","total_supply":"1166629794041349724453269499584807","validator_proposals":[],"validator_reward":"0"}} \ No newline at end of file diff --git a/block-streamer/data/000107503705/list_objects.xml b/block-streamer/data/000107503705/list_objects.xml new file mode 100644 index 000000000..7b87fb33d --- /dev/null +++ b/block-streamer/data/000107503705/list_objects.xml @@ -0,0 +1,6 @@ + + + + 000107503705/ + + diff --git a/block-streamer/data/000107503705/shard_0.json b/block-streamer/data/000107503705/shard_0.json new file mode 100644 index 000000000..42149f2d7 --- /dev/null +++ b/block-streamer/data/000107503705/shard_0.json @@ -0,0 +1 @@ +{"chunk":{"author":"ledgerbyfigment.poolv1.near","header":{"balance_burnt":"2563407420632700000000","chunk_hash":"GocKzEHhqht5SS2o8S5KzdfogcpciuaE5DjytW6e8wTY","encoded_length":4327,"encoded_merkle_root":"A5rfafUW76VWfutztRHbTWv8tuE8E9eyLngNvTb5RM8t","gas_limit":1000000000000000,"gas_used":51309364991975,"height_created":107503705,"height_included":107503705,"outcome_root":"CAzqwoJkRPAeQ2Bqu9mMchBzu7GBCtjdBXhJ1X4gW67k","outgoing_receipts_root":"7283KJohsC41ejT9C9XmThWUdxyTW6u6F6YqR9PDNjDK","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"9VCMkYWH8i7aJ83xDuCoDySzVwsFE3HCjFpFeguLYa3N","rent_paid":"0","shard_id":0,"signature":"ed25519:4DEbUgteNrs5EL6111jPTFQ4nFjcx1GoEFCg8JyrTiKFfdSgZmLR4oh75ULv2gvHPkGkHKWVNzjkFsgRBCAJ8keB","tx_root":"AbPBp7CbBrcJ4QCrkTCxKTu25Yttnrbdb9UQmqjJtYxo","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46MDlkVzVRcVdyTS02MjljY2VmNTY1ZjU2YTA2Y2YxZThhNjdjYWMxMTdmZGZiNjhlYjBkMGVmMTJmNmQzYTllZTJmOGEzMDQ0MDU4In0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","signer_public_key":"ed25519:7dwdvN5r5p6YqjoeosozcMtDfiFhG3dpeBf5Bcs7bnwR"}},"receipt_id":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","receiver_id":"token.sweat"},{"predecessor_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"e30=","deposit":"0","gas":100000000000000,"method_name":"claim"}}],"gas_price":"186029458","input_data_ids":[],"output_data_receivers":[],"signer_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","signer_public_key":"ed25519:2mv7FkNM2MriXXkZHNoBHuGAZrn83Cx9iytDFsviXz7T"}},"receipt_id":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","receiver_id":"tge-lockup.sweat"},{"predecessor_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImphcnMuc3dlYXQiLCJhbW91bnQiOiI5MTIwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuc3Rha2VfZmVlKDE2MWRjMzQzMzM3YTFmNzdiNjJmNzZiNGFmNmY4ZTU2MjM2YzU2OTk3MTVhODk2Y2M0N2YxMDllYjY0ZGQ5MDIpIiwibXNnIjoie1widHlwZVwiOlwic3Rha2VcIixcImRhdGFcIjp7XCJ0aWNrZXRcIjp7XCJwcm9kdWN0X2lkXCI6XCIzNjVkXzEyYXB5XCIsXCJ2YWxpZF91bnRpbFwiOlwiMTcwMjExMTM5NDAwMFwifSxcInNpZ25hdHVyZVwiOlwidFY5Z1lHUXVNVEQzUzl1RHBwaDdkUGZTbnVvVTFpcVgxRjFyUWw5MWwycU1ld2ZHYjNDa3BsU0l4cGl1RzF3bEpHdEdVNm5xU1JEREFtQ2JITDJVQlE9PVwiLFwicmVjZWl2ZXJfaWRcIjpcIjE2MWRjMzQzMzM3YTFmNzdiNjJmNzZiNGFmNmY4ZTU2MjM2YzU2OTk3MTVhODk2Y2M0N2YxMDllYjY0ZGQ5MDJcIn19In0=","deposit":"1","gas":32000000000000,"method_name":"ft_transfer_call"}},{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIyNTAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoiamFycy5zdGFrZV9mZWUoMTYxZGMzNDMzMzdhMWY3N2I2MmY3NmI0YWY2ZjhlNTYyMzZjNTY5OTcxNWE4OTZjYzQ3ZjEwOWViNjRkZDkwMikifQ==","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"134391638","input_data_ids":[],"output_data_receivers":[],"signer_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","signer_public_key":"ed25519:AuyeWqLhopHxJQdEL37cQ8eMS4vAAutd5UFcqxvtuF9w"}},"receipt_id":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","receiver_id":"token.sweat"},{"predecessor_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","signer_public_key":"ed25519:9YXJX3RM7pWo19DfAnRVfd9jvgm73AW2kt5H4JKeXvuZ"}},"receipt_id":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA","receiver_id":"embr.playember_reserve.near"},{"predecessor_id":"ann_asian.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImFwcHJvdmUiOmZhbHNlLCJyZWplY3Rpb25fcmVhc29uIjoiMtCxIFwi0YPRh9Cw0YHRgtC60L7QvC4uLtC90LAg0LrQvtGC0L7RgNC+0LlcIiDQvdCw0YDRg9GI0LXQvdCwINGB0LLRj9C30Ywg0YHQu9C+0LIifQ==","deposit":"0","gas":80000000000000,"method_name":"submit_review"}}],"gas_price":"165284764","input_data_ids":[],"output_data_receivers":[],"signer_id":"ann_asian.near","signer_public_key":"ed25519:7ggZXCRZidLYQ4EWUzphoz3hS3veoH2MFSxNqMBddcTf"}},"receipt_id":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","receiver_id":"app.nearcrowd.near"},{"predecessor_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOlpuUjRwM0RqNnItNzZjOTk2N2NlZmZhMThlOTFhZjM1OTkxYWJmZjllOTlkOGFhZTlkOWY2ZmIxOGZkYjgzNDMzMGY3NWNhNWVmMCJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","signer_public_key":"ed25519:Ha2sdvj2JwCYFGwKCquhz2dQJwvmBQPJupLd1qgCPMAg"}},"receipt_id":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","receiver_id":"token.sweat"},{"predecessor_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6bzNYNU41V09kbSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","signer_public_key":"ed25519:ActQJsSyGKNZY3PrA61TH1rpmG5sm9WKsJDWFskHtHGY"}},"receipt_id":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","receiver_id":"token.sweat"},{"predecessor_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","signer_public_key":"ed25519:BNMbyBGEbs3C5xwRehfjpDuojE8THh52CqB4xx6mdyYn"}},"receipt_id":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf","receiver_id":"embr.playember_reserve.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3536901675036217854228"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"nikitalya1777.near","signer_public_key":"ed25519:2p2EvvBgzMHRHkFBMQN5jSbPzFhz3fkbrGg8YLcdjLvo"}},"receipt_id":"6gAjVzkWiGgk41b1sZbayK3vn1Z3g2FDzugrha4cePMu","receiver_id":"nikitalya1777.near"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"68yX3noDvm5vPxTuSVdbF3JRPCsJTUayPFYJnKxUZ9f1","outcome":{"executor_id":"5e6b096f0cd106944810a97b5351422b6c6942861feab485062bc0347360da6b","gas_burnt":2428133413730,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["4fD5argmV9FZM14xCL3drm6uidkTGmeDEYWKUTWK99nd"],"status":{"SuccessReceiptId":"4fD5argmV9FZM14xCL3drm6uidkTGmeDEYWKUTWK99nd"},"tokens_burnt":"242813341373000000000"},"proof":[{"direction":"Right","hash":"96PU68p3odZy5Dfa2qaqG6TRBcGxy1imx9QVmrSSWiAe"},{"direction":"Right","hash":"CEwYCx3cHGRwEe39jfqEg75Bg63AEDNRSCTm7yJXa8Yg"},{"direction":"Right","hash":"5z4r959tUjGU1DjZkcYRN7uifWfUFydqqwdykv94iXyk"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6TWR6MWsxREczQSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"68yX3noDvm5vPxTuSVdbF3JRPCsJTUayPFYJnKxUZ9f1","nonce":63368528000146,"public_key":"ed25519:7MZzH2aeYQKE5H7ZR851Hu2LDmQjK4EGSBfwDttPa5jp","receiver_id":"token.sweat","signature":"ed25519:4AxxSmqMABB7DuRLATd1rt9GGPs326qejdDzKokZdHfw4X14GcQebMKiuoiCokdF2MAVR3hmg3Pv58mkzc1FFJL9","signer_id":"5e6b096f0cd106944810a97b5351422b6c6942861feab485062bc0347360da6b"}},{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"EXRamEVYAYRgc4VXSXbe85Xbspk6JY55wiMRF7R356tJ","outcome":{"executor_id":"alex11.near","gas_burnt":2427992549888,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["2zq8G1Brmpg57Kd5md9C4zLNvKnHUP16wzXLbwJ7y1F4"],"status":{"SuccessReceiptId":"2zq8G1Brmpg57Kd5md9C4zLNvKnHUP16wzXLbwJ7y1F4"},"tokens_burnt":"242799254988800000000"},"proof":[{"direction":"Left","hash":"7ofTvt6P8unHmaBcAVU2vwsoKeTMK9McSTU7mnGp1HkR"},{"direction":"Right","hash":"CEwYCx3cHGRwEe39jfqEg75Bg63AEDNRSCTm7yJXa8Yg"},{"direction":"Right","hash":"5z4r959tUjGU1DjZkcYRN7uifWfUFydqqwdykv94iXyk"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJuZXdfdGFza19vcmQiOjF9","deposit":"0","gas":30000000000000,"method_name":"change_taskset"}}],"hash":"EXRamEVYAYRgc4VXSXbe85Xbspk6JY55wiMRF7R356tJ","nonce":107501958000025,"public_key":"ed25519:HurzQ8QGWKcYCXQ4qD8QmTEVpkHZZkojq9qQsykiHG3E","receiver_id":"app.nearcrowd.near","signature":"ed25519:5UwRvDNyXwhtct5KX3WAVevmAiF52Zaf8iAsHms8rALK8M7GT2ZRGSp1HHwjEMfMDoLnzMU2uMFHhSMi8yukm2dg","signer_id":"alex11.near"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","outcome":{"executor_id":"app.nearcrowd.near","gas_burnt":4134605122715,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"8472579552"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"104961404250"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"134520000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"28708495200"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1722003849"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"22654486674"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"67712094"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1919057046"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1256865120"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"256786944000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"9057080574"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6061526562"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"9460654395"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"821199752226"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"72035578824"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"28037948610"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1914811716"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"25789702374"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2611674468"}],"version":3},"receipt_ids":["EtgSP3vf8V2Dyo5YmfvAUyHZSQb2a71eWG4s2mRut3be"],"status":{"SuccessValue":""},"tokens_burnt":"413460512271500000000"},"proof":[{"direction":"Right","hash":"CHj9iRL4Bb6HyNtQwwthTFGvvg4oBsHH24jEBSvUsjib"},{"direction":"Left","hash":"4RxAus6HRFedVxgLiSNjrXLwtURXW4jYeLCtKwjkc8nR"},{"direction":"Right","hash":"5z4r959tUjGU1DjZkcYRN7uifWfUFydqqwdykv94iXyk"}]},"receipt":{"predecessor_id":"ann_asian.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJ0YXNrX29yZGluYWwiOjEsImFwcHJvdmUiOmZhbHNlLCJyZWplY3Rpb25fcmVhc29uIjoiMtCxIFwi0YPRh9Cw0YHRgtC60L7QvC4uLtC90LAg0LrQvtGC0L7RgNC+0LlcIiDQvdCw0YDRg9GI0LXQvdCwINGB0LLRj9C30Ywg0YHQu9C+0LIifQ==","deposit":"0","gas":80000000000000,"method_name":"submit_review"}}],"gas_price":"165284764","input_data_ids":[],"output_data_receivers":[],"signer_id":"ann_asian.near","signer_public_key":"ed25519:7ggZXCRZidLYQ4EWUzphoz3hS3veoH2MFSxNqMBddcTf"}},"receipt_id":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","receiver_id":"app.nearcrowd.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","outcome":{"executor_id":"asset-manager.orderly-network.near","gas_burnt":9217607048004,"logs":["{\"MarketData\":{\"max_timestamp\":1702111278000}}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"62485274196"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"289550472750"},{"cost":"ECRECOVER_BASE","cost_category":"WASM_HOST_COST","gas_used":"278821988457"},{"cost":"KECCAK256_BASE","cost_category":"WASM_HOST_COST","gas_used":"5879491275"},{"cost":"KECCAK256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8588442000"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"607144386"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"182400000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"219228508800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8533992585"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"193821719322"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"212499672"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"3888622356750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"20490576846"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5695170075"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"320983680000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"30543558957"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6061526562"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"29498630589"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"370344986298"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"13412702034"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"386718357168"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"218695999158"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5916032784"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"223510753908"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"10701402660"}],"version":3},"receipt_ids":["BBUzGAPwLaHLDk51V2ZQv2GeLHFqFaXgAihYFk6K5ZK4"],"status":{"SuccessValue":"bnVsbA=="},"tokens_burnt":"921760704800400000000"},"proof":[{"direction":"Left","hash":"5XuXFzpNhFz9cGUAzZ1Gq9ctRiBy6sqpMjMwmuvFSRGA"},{"direction":"Left","hash":"4RxAus6HRFedVxgLiSNjrXLwtURXW4jYeLCtKwjkc8nR"},{"direction":"Right","hash":"5z4r959tUjGU1DjZkcYRN7uifWfUFydqqwdykv94iXyk"}]},"receipt":{"predecessor_id":"operator.orderly-network.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzaWduYXR1cmVfdmVyaWZpZWRfZGF0YSI6eyJvcGVyYXRvcl9hY3Rpb25fZGF0YSI6eyJQZXJwTWFya2V0SW5mbyI6eyJpbmZvIjp7IlBlcnBQcmljZSI6eyJtYXhfdGltZXN0YW1wIjoxNzAyMTExMjc4MDAwLCJwZXJwX3ByaWNlcyI6W3siaW5kZXhfcHJpY2UiOiIyMzcxNzIwMDAwMDAiLCJtYXJrX3ByaWNlIjoiMjM3MzQyMDAwMDAwIiwic3ltYm9sIjoiUEVSUF9FVEhfVVNEQy5lIiwidGltZXN0YW1wIjoxNzAyMTExMjc3MDAwfSx7ImluZGV4X3ByaWNlIjoiMjUxODAwMDAwIiwibWFya19wcmljZSI6IjI1MjE3MDAwMCIsInN5bWJvbCI6IlBFUlBfTkVBUl9VU0RDLmUiLCJ0aW1lc3RhbXAiOjE3MDIxMTEyNzcwMDB9LHsiaW5kZXhfcHJpY2UiOiIyNTAzNzAwMCIsIm1hcmtfcHJpY2UiOiIyNTA2NTAwMCIsInN5bWJvbCI6IlBFUlBfV09PX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3NzAwMH0seyJpbmRleF9wcmljZSI6IjQzOTMwMzMwMDAwMDAiLCJtYXJrX3ByaWNlIjoiNDM5NTg0MDAwMDAwMCIsInN5bWJvbCI6IlBFUlBfQlRDX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3ODAwMH1dfX19fSwic2lnbmF0dXJlIjoiMjZlMjJmY2YyMGVlM2M1MzgxODFjMTgzOWNhM2VmYjNhMjFhZTA4NDA1NTY0MmVmMmQwNTE3MDU5MTlkY2U5MjZkYWE5NDYyYzRiMzllNjljYWUzODIzNzhlNzYzNjVkODZkZTMyNjZmMWU4ZDBlZmRlM2YyN2I1ZWVhYzY1NGIwMSJ9fQ==","deposit":"0","gas":300000000000000,"method_name":"operator_execute_action"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"operator.orderly-network.near","signer_public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP"}},"receipt_id":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","receiver_id":"asset-manager.orderly-network.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","outcome":{"executor_id":"asset-manager.orderly-network.near","gas_burnt":8664862061706,"logs":["{\"MarketData\":{\"max_timestamp\":1702111278000}}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"62485274196"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"289550472750"},{"cost":"ECRECOVER_BASE","cost_category":"WASM_HOST_COST","gas_used":"278821988457"},{"cost":"KECCAK256_BASE","cost_category":"WASM_HOST_COST","gas_used":"5879491275"},{"cost":"KECCAK256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8588442000"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"607144386"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"219228508800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8533992585"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"193821719322"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"212499672"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"3888622356750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"20490576846"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5695170075"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"320983680000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"30543558957"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6061526562"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"29498630589"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"13412702034"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"386718357168"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"218695999158"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5916032784"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"223510753908"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"10701402660"}],"version":3},"receipt_ids":["Ezuus5x5xKCUa2Cp6ieiNryhWrZpEPadEqt8JkAT1jwT"],"status":{"SuccessValue":"bnVsbA=="},"tokens_burnt":"866486206170600000000"},"proof":[{"direction":"Right","hash":"EQd3ZypGPEJ8YxujE8q4hhdCZQN4nwytaJmRxzPwV8du"},{"direction":"Right","hash":"ABnNFvKqVc8qdUMZo2E1CbNQAid4rsK1MawHBn8DbBgm"},{"direction":"Left","hash":"6JvkkVnTTVGUDaYXc7oU8JovEiTo2eBagYUoZcin5JRh"}]},"receipt":{"predecessor_id":"operator.orderly-network.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzaWduYXR1cmVfdmVyaWZpZWRfZGF0YSI6eyJvcGVyYXRvcl9hY3Rpb25fZGF0YSI6eyJQZXJwTWFya2V0SW5mbyI6eyJpbmZvIjp7IlBlcnBQcmljZSI6eyJtYXhfdGltZXN0YW1wIjoxNzAyMTExMjc4MDAwLCJwZXJwX3ByaWNlcyI6W3siaW5kZXhfcHJpY2UiOiIyMzcxNzIwMDAwMDAiLCJtYXJrX3ByaWNlIjoiMjM3MzQyMDAwMDAwIiwic3ltYm9sIjoiUEVSUF9FVEhfVVNEQy5lIiwidGltZXN0YW1wIjoxNzAyMTExMjc3MDAwfSx7ImluZGV4X3ByaWNlIjoiMjUxODAwMDAwIiwibWFya19wcmljZSI6IjI1MjE3MDAwMCIsInN5bWJvbCI6IlBFUlBfTkVBUl9VU0RDLmUiLCJ0aW1lc3RhbXAiOjE3MDIxMTEyNzcwMDB9LHsiaW5kZXhfcHJpY2UiOiIyNTAzNzAwMCIsIm1hcmtfcHJpY2UiOiIyNTA2NTAwMCIsInN5bWJvbCI6IlBFUlBfV09PX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3NzAwMH0seyJpbmRleF9wcmljZSI6IjQzOTMwMzMwMDAwMDAiLCJtYXJrX3ByaWNlIjoiNDM5NTg0MDAwMDAwMCIsInN5bWJvbCI6IlBFUlBfQlRDX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3ODAwMH1dfX19fSwic2lnbmF0dXJlIjoiMjZlMjJmY2YyMGVlM2M1MzgxODFjMTgzOWNhM2VmYjNhMjFhZTA4NDA1NTY0MmVmMmQwNTE3MDU5MTlkY2U5MjZkYWE5NDYyYzRiMzllNjljYWUzODIzNzhlNzYzNjVkODZkZTMyNjZmMWU4ZDBlZmRlM2YyN2I1ZWVhYzY1NGIwMSJ9fQ==","deposit":"0","gas":300000000000000,"method_name":"operator_execute_action"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"operator.orderly-network.near","signer_public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP"}},"receipt_id":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","receiver_id":"asset-manager.orderly-network.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"472dKMTuMdutLPgrqGXGerntv32sBzCAnQEjKfXVn9V3","outcome":{"executor_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"797qLUzGBWSsScigwH4oCJMPJ9qwW4UojfQdHiJFi33Z"},{"direction":"Right","hash":"ABnNFvKqVc8qdUMZo2E1CbNQAid4rsK1MawHBn8DbBgm"},{"direction":"Left","hash":"6JvkkVnTTVGUDaYXc7oU8JovEiTo2eBagYUoZcin5JRh"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1407073089176732288000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","signer_public_key":"ed25519:6zse8K7L5Kydn2M8XhPDJAHyp4VSHxbXKVLn3H6PjKmj"}},"receipt_id":"472dKMTuMdutLPgrqGXGerntv32sBzCAnQEjKfXVn9V3","receiver_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"QANFa4RhJwsgCBTjunWknihGrfxyEUSy7ggpJcdDmUL","outcome":{"executor_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"HDYjTbwZYZot4o3PzmTUniv4UXSF6P6wSvJkFKY7nEjY"},{"direction":"Left","hash":"9TGpbQRVv4hbMBK9o8VcdQiXojVBey7QvGsmCNYtFYYF"},{"direction":"Left","hash":"6JvkkVnTTVGUDaYXc7oU8JovEiTo2eBagYUoZcin5JRh"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1443046469541410315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","signer_public_key":"ed25519:7pTxN4cYnC38CWxSzyHLvA1Zv6J3X6dipnNVu7zw2az6"}},"receipt_id":"QANFa4RhJwsgCBTjunWknihGrfxyEUSy7ggpJcdDmUL","receiver_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"T8t8JdjnSESC4vcBZFJLDixmoM2eBpD1WBaH7TUfEfx","outcome":{"executor_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"9aXYPVVgWvVftq5tC2MbG5v86wsQY32EbEwTXbGteRSH"},{"direction":"Left","hash":"9TGpbQRVv4hbMBK9o8VcdQiXojVBey7QvGsmCNYtFYYF"},{"direction":"Left","hash":"6JvkkVnTTVGUDaYXc7oU8JovEiTo2eBagYUoZcin5JRh"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1671045481722809964288"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","signer_public_key":"ed25519:EUo3ZevwMAZEmZVvgkneYVy5MTtf5kggSD7vdp7Pwb3a"}},"receipt_id":"T8t8JdjnSESC4vcBZFJLDixmoM2eBpD1WBaH7TUfEfx","receiver_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7"}}],"shard_id":0,"state_changes":[{"cause":{"receipt_hash":"T8t8JdjnSESC4vcBZFJLDixmoM2eBpD1WBaH7TUfEfx","type":"receipt_processing"},"change":{"account_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","amount":"197958118303834816333912","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":376},"type":"account_update"},{"cause":{"receipt_hash":"QANFa4RhJwsgCBTjunWknihGrfxyEUSy7ggpJcdDmUL","type":"receipt_processing"},"change":{"account_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","amount":"59554554006378722704004","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"472dKMTuMdutLPgrqGXGerntv32sBzCAnQEjKfXVn9V3","type":"receipt_processing"},"change":{"account_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","amount":"3938487501886622099999794","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":346},"type":"account_update"},{"cause":{"tx_hash":"68yX3noDvm5vPxTuSVdbF3JRPCsJTUayPFYJnKxUZ9f1","type":"transaction_processing"},"change":{"account_id":"5e6b096f0cd106944810a97b5351422b6c6942861feab485062bc0347360da6b","amount":"98341342838710705828859","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"EXRamEVYAYRgc4VXSXbe85Xbspk6JY55wiMRF7R356tJ","type":"transaction_processing"},"change":{"account_id":"alex11.near","amount":"3752963026725936698599390","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":2900},"type":"account_update"},{"cause":{"receipt_hash":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","amount":"4948982716285020720254114155","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":3508955},"type":"account_update"},{"cause":{"receipt_hash":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","type":"action_receipt_gas_reward"},"change":{"account_id":"app.nearcrowd.near","amount":"4948982767475348542654114155","code_hash":"DyHG2t99dBZWiPgX53Z4UbbBQR6JJoxmqXwaKD4hTeyP","locked":"0","storage_paid_at":0,"storage_usage":3508955},"type":"account_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","amount":"380560424840993653713442847493","code_hash":"3MsUtF8sPFLeWW4NCqAKhMVBNNCYFL3Z8LXEbUDNAeUT","locked":"0","storage_paid_at":0,"storage_usage":160882187},"type":"account_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"action_receipt_gas_reward"},"change":{"account_id":"asset-manager.orderly-network.near","amount":"380560425044634127872542847493","code_hash":"3MsUtF8sPFLeWW4NCqAKhMVBNNCYFL3Z8LXEbUDNAeUT","locked":"0","storage_paid_at":0,"storage_usage":160882187},"type":"account_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","amount":"380560425044634127872542847493","code_hash":"3MsUtF8sPFLeWW4NCqAKhMVBNNCYFL3Z8LXEbUDNAeUT","locked":"0","storage_paid_at":0,"storage_usage":160882187},"type":"account_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"action_receipt_gas_reward"},"change":{"account_id":"asset-manager.orderly-network.near","amount":"380560425231692252442742847493","code_hash":"3MsUtF8sPFLeWW4NCqAKhMVBNNCYFL3Z8LXEbUDNAeUT","locked":"0","storage_paid_at":0,"storage_usage":160882187},"type":"account_update"},{"cause":{"tx_hash":"68yX3noDvm5vPxTuSVdbF3JRPCsJTUayPFYJnKxUZ9f1","type":"transaction_processing"},"change":{"access_key":{"nonce":63368528000146,"permission":"FullAccess"},"account_id":"5e6b096f0cd106944810a97b5351422b6c6942861feab485062bc0347360da6b","public_key":"ed25519:7MZzH2aeYQKE5H7ZR851Hu2LDmQjK4EGSBfwDttPa5jp"},"type":"access_key_update"},{"cause":{"tx_hash":"EXRamEVYAYRgc4VXSXbe85Xbspk6JY55wiMRF7R356tJ","type":"transaction_processing"},"change":{"access_key":{"nonce":107501958000025,"permission":{"FunctionCall":{"allowance":"239157917843223407737344","method_names":[],"receiver_id":"app.nearcrowd.near"}}},"account_id":"alex11.near","public_key":"ed25519:HurzQ8QGWKcYCXQ4qD8QmTEVpkHZZkojq9qQsykiHG3E"},"type":"access_key_update"},{"cause":{"receipt_hash":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"Uw4AAABhbm5fYXNpYW4ubmVhcg==","value_base64":"AAAAAAAAAAAAAAAAAAAAAAvCoxNYo3RivTMAAAAAAAAAAAAAAAAAAGeWAABHlgAAAEEVAAAEAAAAAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"cAEAAAA=","value_base64":"AABAe6XwY4GWCgAAAAAAAAAA9ESCkWNFAAAAAAAAAAAsAQAAAAAAAAAAQHul8GOBlgoAAAAAAACcMOVZNh2fF8rE0QAAAAAABgAAAHQBAAAAYp3z0QAAAAAABgAAAHQBAAAAYiwAAAAAAAAABgAAAHQBAAAAYwYAAAB0AQAAAGUGAAAAdAEAAABmBgAAAHQBAAAAZwEGAAAAdAEAAABtAA=="},"type":"data_update"},{"cause":{"receipt_hash":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABlv981Eu0PEYkOE6lt0BP3yYobk3t0thhu6j6DU1NhxA4=","value_base64":"BQAAAAABDgAAAGFubl9hc2lhbi5uZWFyZpYAAAEqIVpnMR2fF456xlbscqfZ6gQAAAAAAAAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"HQuV2omNbJ5p5HBAQ2TfZCZwKGigBU8j7xPq3hQPW896","type":"receipt_processing"},"change":{"account_id":"app.nearcrowd.near","key_base64":"dAEAAABnDgAAAGFubl9hc2lhbi5uZWFy","value_base64":"Apww5Vk2HZ8XAABAe6XwY4GWCgAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"Gg8AAABQRVJQX0JUQ19VU0RDLmU=","value_base64":"AAAAAAAAAAAAAFB7fP8DAAAAAAAAAAAAAEDkK9X+AwAAAAAAAAAAAAAAQDOpLqJYFAAAAAAAAAAAKiFaZzEdnxfd8ZeJKR2fFw=="},"type":"data_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"Gg8AAABQRVJQX0JUQ19VU0RDLmU=","value_base64":"AAAAAAAAAAAAAFB7fP8DAAAAAAAAAAAAAEDkK9X+AwAAAAAAAAAAAAAAQDOpLqJYFAAAAAAAAAAAKiFaZzEdnxfd8ZeJKR2fFw=="},"type":"data_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"Gg8AAABQRVJQX0VUSF9VU0RDLmU=","value_base64":"AAAAAAAAAAAAgIOvQjcAAAAAAAAAAAAAAACFjTg3AAAAAAAAAAAAAAAAQOxaqFQvAQAAAAAAAAAAKiFaZzEdnxfd8ZeJKR2fFw=="},"type":"data_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"Gg8AAABQRVJQX0VUSF9VU0RDLmU=","value_base64":"AAAAAAAAAAAAgIOvQjcAAAAAAAAAAAAAAACFjTg3AAAAAAAAAAAAAAAAQOxaqFQvAQAAAAAAAAAAKiFaZzEdnxfd8ZeJKR2fFw=="},"type":"data_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"Gg8AAABQRVJQX1dPT19VU0RDLmU=","value_base64":"AAAAAAAAAAAAKHZ+AQAAAAAAAAAAAAAAAMgIfgEAAAAAAAAAAAAAAAAAgJRvzwYAAAAAAAAAAAAAKiFaZzEdnxfUFN5VudOeFw=="},"type":"data_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"Gg8AAABQRVJQX1dPT19VU0RDLmU=","value_base64":"AAAAAAAAAAAAKHZ+AQAAAAAAAAAAAAAAAMgIfgEAAAAAAAAAAAAAAAAAgJRvzwYAAAAAAAAAAAAAKiFaZzEdnxfUFN5VudOeFw=="},"type":"data_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"GhAAAABQRVJQX05FQVJfVVNEQy5l","value_base64":"AAAAAAAAAAAAEM8HDwAAAAAAAAAAAAAAAMApAg8AAAAAAAAAAAAAAAAAYIXUAWIAAAAAAAAAAAAAKiFaZzEdnxfd8ZeJKR2fFw=="},"type":"data_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"GhAAAABQRVJQX05FQVJfVVNEQy5l","value_base64":"AAAAAAAAAAAAEM8HDwAAAAAAAAAAAAAAAMApAg8AAAAAAAAAAAAAAAAAYIXUAWIAAAAAAAAAAAAAKiFaZzEdnxfd8ZeJKR2fFw=="},"type":"data_update"},{"cause":{"receipt_hash":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"U1RBVEU=","value_base64":"GgAAAG93bmVyLm9yZGVybHktbmV0d29yay5uZWFyHQAAAG9wZXJhdG9yLm9yZGVybHktbmV0d29yay5uZWFyAgAAAAVpCQAAAAAAAAACAAAABWsJAAAAAAAAAAIAAAAFdgIAAAAEaQkAAAAAAAAAAgAAAARlAQAAAAb/zwEAAAAAAHafDQAAAAAAKiFaZzEdnxcAAO2zvesAAAABAAAAB0AAAAAAAAAAAQAAAAkkwgUAAAAAAAIAAAAMab8EAQAAAAAAAgAAAAxrvwQBAAAAAAACAAAADHakIQAAAAAAAEAAAAAAAAAAAQAAABACAAAAEWkFAAAAAAAAAAIAAAARZQIAAAAUaQAAAAAAAAAAAgAAABRrAAAAAAAAAAACAAAAFHYCAAAAFWkLAAAAAAAAAAIAAAAVawsAAAAAAAAAAgAAABV2AQAAABYBAAAAFwAAAAAAAAAA7AYAAAAAAABAAAAAAAAAAAEAAAAZQAAAAAAAAAABAAAAGnNzAQAAAAAAHAAAAG9yZGVybHktb3BzLnNwdXRuaWstZGFvLm5lYXIlAAAAb3JkZXJseS1vcHMtb24tY2hhaW4uc3B1dG5pay1kYW8ubmVhcgEAAAAAAAAAAAAAAAAAAAACAAAAHGkBAAAAAAAAAAIAAAAcawEAAAAAAAAAAgAAABx2AgAAAB1pAQAAAAAAAAACAAAAHWsBAAAAAAAAAAIAAAAddiEAAABvcmRlcmx5LW9wcy1wZXJwLnNwdXRuaWstZGFvLm5lYXICAAAAG2kEAAAAAAAAAAIAAAAbawQAAAAAAAAAAgAAABt2AQAAABpmzwkAAAAAAEAAAAAAAAAAAQAAAB1AAAAAAAAAAAEAAAAeyOsAAAAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","type":"receipt_processing"},"change":{"account_id":"asset-manager.orderly-network.near","key_base64":"U1RBVEU=","value_base64":"GgAAAG93bmVyLm9yZGVybHktbmV0d29yay5uZWFyHQAAAG9wZXJhdG9yLm9yZGVybHktbmV0d29yay5uZWFyAgAAAAVpCQAAAAAAAAACAAAABWsJAAAAAAAAAAIAAAAFdgIAAAAEaQkAAAAAAAAAAgAAAARlAQAAAAb/zwEAAAAAAHafDQAAAAAAKiFaZzEdnxcAAO2zvesAAAABAAAAB0AAAAAAAAAAAQAAAAkkwgUAAAAAAAIAAAAMab8EAQAAAAAAAgAAAAxrvwQBAAAAAAACAAAADHakIQAAAAAAAEAAAAAAAAAAAQAAABACAAAAEWkFAAAAAAAAAAIAAAARZQIAAAAUaQAAAAAAAAAAAgAAABRrAAAAAAAAAAACAAAAFHYCAAAAFWkLAAAAAAAAAAIAAAAVawsAAAAAAAAAAgAAABV2AQAAABYBAAAAFwAAAAAAAAAA7AYAAAAAAABAAAAAAAAAAAEAAAAZQAAAAAAAAAABAAAAGnNzAQAAAAAAHAAAAG9yZGVybHktb3BzLnNwdXRuaWstZGFvLm5lYXIlAAAAb3JkZXJseS1vcHMtb24tY2hhaW4uc3B1dG5pay1kYW8ubmVhcgEAAAAAAAAAAAAAAAAAAAACAAAAHGkBAAAAAAAAAAIAAAAcawEAAAAAAAAAAgAAABx2AgAAAB1pAQAAAAAAAAACAAAAHWsBAAAAAAAAAAIAAAAddiEAAABvcmRlcmx5LW9wcy1wZXJwLnNwdXRuaWstZGFvLm5lYXICAAAAG2kEAAAAAAAAAAIAAAAbawQAAAAAAAAAAgAAABt2AQAAABpmzwkAAAAAAEAAAAAAAAAAAQAAAB1AAAAAAAAAAAEAAAAeyOsAAAAAAAA="},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503705/shard_1.json b/block-streamer/data/000107503705/shard_1.json new file mode 100644 index 000000000..191122d64 --- /dev/null +++ b/block-streamer/data/000107503705/shard_1.json @@ -0,0 +1 @@ +{"chunk":{"author":"epic.poolv1.near","header":{"balance_burnt":"328039759800900000000","chunk_hash":"CBQ7Q5RkW3v3Jozd2esXjqWrtRFjEU9piEoMetJmBiPV","encoded_length":161,"encoded_merkle_root":"BRcT52UdJ6nqfcoKyBQ6Keda4dhGZhhqrXbPnX73XDVW","gas_limit":1000000000000000,"gas_used":3644983855043,"height_created":107503705,"height_included":107503705,"outcome_root":"EeguCoRrCzd8zGoAKzCyJxAAUMQcLSy3Y1FovqpAmvqQ","outgoing_receipts_root":"DN7QhC5dcBjKSz771NhCWpvZyCAnK2YmVcJWyDvkiKy8","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"5xhpLgxiNn1vRsNbkVwZ3oFJfJgXywBaqffNmm8aLcH7","rent_paid":"0","shard_id":1,"signature":"ed25519:2BoGwm2mBDt2Dw2s5p1kyFBFDboWZCDR2nyAoQUfF8v8gcW2FCS1wq4TZajdVR4mr6Ru4625mfrefMAEP3EEKPMk","tx_root":"11111111111111111111111111111111","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"188666211632363625537704"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:BYcLvGJ8p3LSHkQyazPoRnLt1ktC9apopqe5MFzbqbUr"}},"receipt_id":"73vU6LfRvB4zF3xdLwFjmnMkPXuYkbLzFNifYdMtFp19","receiver_id":"relay.aurora"}],"transactions":[]},"receipt_execution_outcomes":[],"shard_id":1,"state_changes":[]} \ No newline at end of file diff --git a/block-streamer/data/000107503705/shard_2.json b/block-streamer/data/000107503705/shard_2.json new file mode 100644 index 000000000..6d0a65973 --- /dev/null +++ b/block-streamer/data/000107503705/shard_2.json @@ -0,0 +1 @@ +{"chunk":{"author":"appload.poolv1.near","header":{"balance_burnt":"1934216998459700000000","chunk_hash":"JVUxEXM7cDS5F2SadFhE8sGENceNfgByXGpoABkwycS","encoded_length":4782,"encoded_merkle_root":"BUL5yrr4c96CwSBXyS5B2eo7m3AGqoJoDXLime2AZTiA","gas_limit":1000000000000000,"gas_used":26232275364081,"height_created":107503705,"height_included":107503705,"outcome_root":"34hNCYf9eA9X2uPNmvswjirxZ8h918fJNXsyA5EevKaZ","outgoing_receipts_root":"5Py777coKphZ12EUnxsg2wjrWLbQc6rcbwKPjeA3MimK","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"4da6GG1g7z8eUCB9e3h61Rg68XirNofRGg6d3sKEwwdr","rent_paid":"0","shard_id":2,"signature":"ed25519:LB9XVrk8JmYbJr8eeRo8ttv2DqHWyDA7KWqUn9n3YFMttcRAM5aDtyjkeUsw3C9XDjbJ1Eho27VKLd9Lb9t6Zep","tx_root":"4gX8CX7B95i3jEZfUTtqojf8GxAh2ZsuNREjpCzHgV1P","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","signer_public_key":"ed25519:HRCXJHmLG9AmUEWiiTUVh4ezFgboh5gmhb3cAwh7vvkK"}},"receipt_id":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7","receiver_id":"embr.playember_reserve.near"},{"predecessor_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOlpuUjRwM0RqNnItZDI3MmE4NjQwMjBiZTdhMTQzNmZiZjljNmExNGY3OTBmMjQ5OTE1ZjEyZmNiOTNhZmE1MGRiN2JmMDFhMTI0YSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","signer_public_key":"ed25519:DoHwEXU2hqGAEafZdvEkJAkagQjtiVZKh8WH6Msefcx1"}},"receipt_id":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","receiver_id":"token.sweat"},{"predecessor_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuY2xhaW1fZmVlKGQ5MjY1NDE1OGE1ZjVhNzdjODJkZjY3ZDAxODkzNTg2ODY0YWE0OWQ4YjQyNzM4NzY0ODAzNWYzZTdjZjQzYmQpIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","signer_public_key":"ed25519:FcfNMwNTVhQRmPCABfpyyev7vz98hENwnBz46fPigsKz"}},"receipt_id":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","receiver_id":"token.sweat"},{"predecessor_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6OGF4QWtBRFl3TCJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","signer_public_key":"ed25519:Dj7a7yHTXxaG8NKiusLZwj8jrMf9adEJacBANCdany4i"}},"receipt_id":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","receiver_id":"token.sweat"},{"predecessor_id":"jars.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhbW91bnQiOiIyOTM0OTkyODYyNzgyNTU3MDc1IiwibWVtbyI6ImNsYWltIiwicmVjZWl2ZXJfaWQiOiJkMmEzNTU1NmQyNzYxMjRkYzZmZDA4MDhlMmRkYzY1ZjQ1OGM3NTdiMWY2YjQ1NWQ0ZmM1ZmM5OTIzNDhiM2NjIn0=","deposit":"1","gas":5000000000000,"method_name":"ft_transfer"}}],"gas_price":"138423388","input_data_ids":[],"output_data_receivers":[{"data_id":"DKYvjmKi8LR85FTJw2uZ6cMykQnetXzoFVPreHoTDJAv","receiver_id":"jars.sweat"}],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","receiver_id":"token.sweat"},{"predecessor_id":"jars.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJjbGFpbWVkX2Ftb3VudCI6eyJkZXRhaWxlZCI6eyI1MzU1NjkiOiIyNDk0ODYyMzI2NzA2MzAxMzY5IiwiMTI3ODMiOiI0OTgzMTgzMTQ5MjIzNzQ0MiIsIjEyNTQ2MyI6IjM5MDI5ODcwNDU4NDAxODI2NCJ9LCJ0b3RhbCI6IjI5MzQ5OTI4NjI3ODI1NTcwNzUifSwiamFyc19iZWZvcmVfdHJhbnNmZXIiOlt7ImlkIjoxMjc4MywiYWNjb3VudF9pZCI6ImQyYTM1NTU2ZDI3NjEyNGRjNmZkMDgwOGUyZGRjNjVmNDU4Yzc1N2IxZjZiNDU1ZDRmYzVmYzk5MjM0OGIzY2MiLCJwcm9kdWN0X2lkIjoiMzY1ZF8xMmFweSIsImNyZWF0ZWRfYXQiOjE2OTc1NjU0MzgyNjAsInByaW5jaXBhbCI6MzI4MDAwMDAwMDAwMDAwMDAwMCwiY2FjaGUiOnsidXBkYXRlZF9hdCI6MTY5ODExODY1NzgwMiwiaW50ZXJlc3QiOjB9LCJjbGFpbWVkX2JhbGFuY2UiOjY5MDQ3MTg3ODkwNDEwOTUsImlzX3BlbmRpbmdfd2l0aGRyYXciOmZhbHNlLCJpc19wZW5hbHR5X2FwcGxpZWQiOmZhbHNlfSx7ImlkIjoxMjU0NjMsImFjY291bnRfaWQiOiJkMmEzNTU1NmQyNzYxMjRkYzZmZDA4MDhlMmRkYzY1ZjQ1OGM3NTdiMWY2YjQ1NWQ0ZmM1ZmM5OTIzNDhiM2NjIiwicHJvZHVjdF9pZCI6IjM2NWRfMTJhcHkiLCJjcmVhdGVkX2F0IjoxNjk3ODk3NjA1MzkyLCJwcmluY2lwYWwiOjI1NjkwMDAwMDAwMDAwMDAwMDAwLCJjYWNoZSI6eyJ1cGRhdGVkX2F0IjoxNjk4MTE4NjU3ODAyLCJpbnRlcmVzdCI6MH0sImNsYWltZWRfYmFsYW5jZSI6MjE2MDg5NjY1NjM1NDY0MjMsImlzX3BlbmRpbmdfd2l0aGRyYXciOmZhbHNlLCJpc19wZW5hbHR5X2FwcGxpZWQiOmZhbHNlfSx7ImlkIjo1MzU1NjksImFjY291bnRfaWQiOiJkMmEzNTU1NmQyNzYxMjRkYzZmZDA4MDhlMmRkYzY1ZjQ1OGM3NTdiMWY2YjQ1NWQ0ZmM1ZmM5OTIzNDhiM2NjIiwicHJvZHVjdF9pZCI6IjM2NWRfMjRhcHlfYW5uaXZlcnNhcnkiLCJjcmVhdGVkX2F0IjoxNjk5NTcyMjQ2ODAyLCJwcmluY2lwYWwiOjEyOTExNDAwMDAwMDAwMDAwMDAwMCwiY2FjaGUiOm51bGwsImNsYWltZWRfYmFsYW5jZSI6MCwiaXNfcGVuZGluZ193aXRoZHJhdyI6ZmFsc2UsImlzX3BlbmFsdHlfYXBwbGllZCI6ZmFsc2V9XSwiZXZlbnQiOnsiZXZlbnQiOiJjbGFpbSIsImRhdGEiOlt7ImlkIjoxMjc4MywiaW50ZXJlc3RfdG9fY2xhaW0iOiI0OTgzMTgzMTQ5MjIzNzQ0MiJ9LHsiaWQiOjEyNTQ2MywiaW50ZXJlc3RfdG9fY2xhaW0iOiIzOTAyOTg3MDQ1ODQwMTgyNjQifSx7ImlkIjo1MzU1NjksImludGVyZXN0X3RvX2NsYWltIjoiMjQ5NDg2MjMyNjcwNjMwMTM2OSJ9XX0sIm5vdyI6MTcwMjExMTI4MTM3NH0=","deposit":"0","gas":33805976254904,"method_name":"after_claim"}}],"gas_price":"138423388","input_data_ids":["DKYvjmKi8LR85FTJw2uZ6cMykQnetXzoFVPreHoTDJAv"],"output_data_receivers":[],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"C7xhY7M47MgT9wGoSL8un3dgVFSBfDbcraKZmuavX5Dg","receiver_id":"jars.sweat"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"336699825337148829552"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"GNWxnAjv9vwuoAK3sDMU9XsUkvi1Lnjq1iBZms8tcfkT","receiver_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"18597466531679027251710"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"executor.v1.corn-staging.near","signer_public_key":"ed25519:9qKfeRCVgqpWmKiVv4K5S7ukyq7q9hY1QckVqdZyuVMA"}},"receipt_id":"6a5Y1jQny2gNUYy4vphdGaVwu5RGcZbZW8aoe2wvDTyP","receiver_id":"executor.v1.corn-staging.near"},{"predecessor_id":"corn.v1.corn-staging.near","receipt":{"Data":{"data":null,"data_id":"FvhnXQ66YFQYVkKqtz9BynzYVGCXS1ZMEPhdGS38Lpa2"}},"receipt_id":"6HivWTT1pcqAE5THp8Wyy4a3gqpmzK4kFZN4LMQJyMxA","receiver_id":"xcorn.v1.corn-staging.near"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"DUfCMfVVmFxDdqkryy7aGUrQ9uskXnxMjUQSyfkBapUX","outcome":{"executor_id":"f6b2c02d3c5e62c7e858131b47bc88cb9f5d029bebdce773141713fe950315bf","gas_burnt":2428133413730,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["DTH6nE7LTDV8veCsna8834mTV7EpH8tkikcd5utJrgi1"],"status":{"SuccessReceiptId":"DTH6nE7LTDV8veCsna8834mTV7EpH8tkikcd5utJrgi1"},"tokens_burnt":"242813341373000000000"},"proof":[{"direction":"Right","hash":"4pgtKuiMS1k4SRaqUKZiyvgZjXZt83siP4VsrTZ96bKt"},{"direction":"Right","hash":"6LGMV5FmTqQttkjzV1JhZmpTUWCv5ufMhtSwWbqNmX81"},{"direction":"Right","hash":"E1mQUbviS5d7Rm1AHqK8R38NLMWFAXapRhZaTCnWYau7"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6RWRiMjAyam1kMSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"hash":"DUfCMfVVmFxDdqkryy7aGUrQ9uskXnxMjUQSyfkBapUX","nonce":78569454000024,"public_key":"ed25519:Hc1P8vbLPGE8JufNHG1kzeTZmbXjPf9Tv7ff84BZ2Lia","receiver_id":"token.sweat","signature":"ed25519:67Q53UEcUVx2io85aeDRZmTzncsD5muyY96P3K8foNhnXt9QS588ua5oFsAjrbqmdRaUwEBZHkAgQ9Y16ULg471i","signer_id":"f6b2c02d3c5e62c7e858131b47bc88cb9f5d029bebdce773141713fe950315bf"}},{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"BbuhRMtBdDdfJMzMdzd9EWd8W58QGgsFivcWZXQPxgRx","outcome":{"executor_id":"bababoi.near","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["7S9P3yMGRt78BYUdUdjGckevrpPsEuNnAXdK3a5n73zd"],"status":{"SuccessReceiptId":"7S9P3yMGRt78BYUdUdjGckevrpPsEuNnAXdK3a5n73zd"},"tokens_burnt":"417494768750000000000"},"proof":[{"direction":"Left","hash":"5gdbvVnpi6gorrmceCyKXfygw5WLmktS3VBvvXveZETd"},{"direction":"Right","hash":"6LGMV5FmTqQttkjzV1JhZmpTUWCv5ufMhtSwWbqNmX81"},{"direction":"Right","hash":"E1mQUbviS5d7Rm1AHqK8R38NLMWFAXapRhZaTCnWYau7"}]},"receipt":null},"transaction":{"actions":[{"Transfer":{"deposit":"4220000000000000000000000"}}],"hash":"BbuhRMtBdDdfJMzMdzd9EWd8W58QGgsFivcWZXQPxgRx","nonce":96448199000066,"public_key":"ed25519:7s6fuPn74yLUC8SAs4TbaqhmEUtx98KPXta4XbEt4xbf","receiver_id":"5cc842a4e42bab6a341ef5e96ce2e17eb8261874560d9b1cc91e4b33ecc53ba5","signature":"ed25519:kk42Z8Bnq9vFPE23GtjXFduTVTUqNaqNWdmJFRVDoG7rDne5DmBDmb5QiQh1esYdZDP4GufUWJKpqVdkfeWNnC3","signer_id":"bababoi.near"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA","outcome":{"executor_id":"embr.playember_reserve.near","gas_burnt":3324435849755,"logs":["earn sprk"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"2382912999"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"469191572250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"118789119"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"2280000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"10439452800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"494173290"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"5034330372"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"15868482"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"622821555"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"64196736000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3565021077"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"352414335"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3443057829"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"225427382964"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2624224311"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"24467940684"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"8411384583"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"482107644"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"8596567458"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1034025408"}],"version":3},"receipt_ids":["8jdQuzsjyiU2PNkUS9g4AyeWLTuBqyqkVVt5XNECqY6s"],"status":{"SuccessValue":""},"tokens_burnt":"332443584975500000000"},"proof":[{"direction":"Right","hash":"27mT67mW8HbcLUi5bq52E1Q4k7xYWnfaHbBo24F2oSEY"},{"direction":"Left","hash":"6bdY5DHHQ2Y8vyzoThhLBL9wcuRAR9nTHqtaiorkDFRd"},{"direction":"Right","hash":"E1mQUbviS5d7Rm1AHqK8R38NLMWFAXapRhZaTCnWYau7"}]},"receipt":{"predecessor_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"7ef0c35b3e12d5d850d2bb83fa6d086bfeb72b67f76f09e15ab167131e38335c","signer_public_key":"ed25519:9YXJX3RM7pWo19DfAnRVfd9jvgm73AW2kt5H4JKeXvuZ"}},"receipt_id":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA","receiver_id":"embr.playember_reserve.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf","outcome":{"executor_id":"embr.playember_reserve.near","gas_burnt":3096728466791,"logs":["earn sprk"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"2382912999"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"469191572250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"118789119"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"10439452800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"494173290"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"5034330372"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"15868482"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"622821555"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"64196736000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3565021077"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"352414335"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3443057829"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2624224311"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"24467940684"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"8411384583"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"482107644"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"8596567458"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1034025408"}],"version":3},"receipt_ids":["4HdE6EWMHgzTQfSaeyVXA5RiBuuxhNz4iv9d322bFYL3"],"status":{"SuccessValue":""},"tokens_burnt":"309672846679100000000"},"proof":[{"direction":"Left","hash":"3xBJvJ5tjMP3NRnaCszrR7HUhic6wnDb6ZXyUjjxtx9c"},{"direction":"Left","hash":"6bdY5DHHQ2Y8vyzoThhLBL9wcuRAR9nTHqtaiorkDFRd"},{"direction":"Right","hash":"E1mQUbviS5d7Rm1AHqK8R38NLMWFAXapRhZaTCnWYau7"}]},"receipt":{"predecessor_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"9a0d5cae4c340ccf6d86c79fa05214703442f57eeefe1ce2543c15425dec67d3","signer_public_key":"ed25519:BNMbyBGEbs3C5xwRehfjpDuojE8THh52CqB4xx6mdyYn"}},"receipt_id":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf","receiver_id":"embr.playember_reserve.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7","outcome":{"executor_id":"embr.playember_reserve.near","gas_burnt":3096728466791,"logs":["earn sprk"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"2382912999"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"469191572250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"118789119"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"10439452800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"494173290"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"5034330372"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"15868482"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"622821555"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"64196736000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3565021077"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"352414335"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3443057829"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2624224311"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"24467940684"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"8411384583"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"482107644"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"8596567458"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1034025408"}],"version":3},"receipt_ids":["3VrpnP3KPMnDmTF1QEgKSqw8d2r36pWAvJAdPWyaLDvR"],"status":{"SuccessValue":""},"tokens_burnt":"309672846679100000000"},"proof":[{"direction":"Right","hash":"83Nhjpu9e2ejEqkyc86Qejzi11XeDSJby2mfkJ6nZ9aw"},{"direction":"Right","hash":"2kgt9iZFmLhvgr3RFTJJTtNaczqNCJd7Ra2rqg56xCht"},{"direction":"Left","hash":"4WXS54sWZ62QSEiewPLtQ1gfkMapFciLATmR8qso1RLN"}]},"receipt":{"predecessor_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhcGlfaWQiOiJteXRlc3RhcGkuZW1ici5wbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyIn0=","deposit":"0","gas":11000000000000,"method_name":"earn_sprk"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"f3edf5693b40c09609b3053a9a524553efc037bff7c4a56b80ef3f4244d72aec","signer_public_key":"ed25519:HRCXJHmLG9AmUEWiiTUVh4ezFgboh5gmhb3cAwh7vvkK"}},"receipt_id":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7","receiver_id":"embr.playember_reserve.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"GNWxnAjv9vwuoAK3sDMU9XsUkvi1Lnjq1iBZms8tcfkT","outcome":{"executor_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"GiYcbzY6PMToEZMF3e8oYwgnnuSFe5yhTYn9xhTt5Ed5"},{"direction":"Right","hash":"2kgt9iZFmLhvgr3RFTJJTtNaczqNCJd7Ra2rqg56xCht"},{"direction":"Left","hash":"4WXS54sWZ62QSEiewPLtQ1gfkMapFciLATmR8qso1RLN"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"336699825337148829552"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"GNWxnAjv9vwuoAK3sDMU9XsUkvi1Lnjq1iBZms8tcfkT","receiver_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"6a5Y1jQny2gNUYy4vphdGaVwu5RGcZbZW8aoe2wvDTyP","outcome":{"executor_id":"executor.v1.corn-staging.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"DdzNicZ8YV8YXvigvXxcyoSTQpqtZewGswB6nAHYiZVk"},{"direction":"Left","hash":"26yU7dmbjnjkAJJhz54RaG6qmKeWvka9kkMBFPBhDCfY"},{"direction":"Left","hash":"4WXS54sWZ62QSEiewPLtQ1gfkMapFciLATmR8qso1RLN"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"18597466531679027251710"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"executor.v1.corn-staging.near","signer_public_key":"ed25519:9qKfeRCVgqpWmKiVv4K5S7ukyq7q9hY1QckVqdZyuVMA"}},"receipt_id":"6a5Y1jQny2gNUYy4vphdGaVwu5RGcZbZW8aoe2wvDTyP","receiver_id":"executor.v1.corn-staging.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"J5Ck6x2uBGVD1RbiuiVeNvMvSuna3tjU7crTmieeP7ek","outcome":{"executor_id":"b22c27d0-8ffe-11ee-8380-67b092434091.thelittles.near","gas_burnt":3958059500000,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":["DrzbDq82i9Dcd3zXyDqBuwV2YYEUU8Upeiy3LqRBMn6P","FVb9uAxtxwnv33dFX8yMUQa8hL8tMrmncnqRfNRi9vj9"],"status":{"Failure":{"ActionError":{"index":0,"kind":{"AccountAlreadyExists":{"account_id":"b22c27d0-8ffe-11ee-8380-67b092434091.thelittles.near"}}}}},"tokens_burnt":"395805950000000000000"},"proof":[{"direction":"Left","hash":"2xibzLNVLZe7YNUsxdbi1yGgHWFSuv56jh8TQDF4PK5m"},{"direction":"Left","hash":"26yU7dmbjnjkAJJhz54RaG6qmKeWvka9kkMBFPBhDCfY"},{"direction":"Left","hash":"4WXS54sWZ62QSEiewPLtQ1gfkMapFciLATmR8qso1RLN"}]},"receipt":{"predecessor_id":"thelittles.near","receipt":{"Action":{"actions":["CreateAccount",{"AddKey":{"access_key":{"nonce":0,"permission":"FullAccess"},"public_key":"ed25519:67Qw3zVFf8MGUzwVanax4s3RNn8GZc1Cdtr5ejMmEa8n"}},{"Transfer":{"deposit":"1000000000000000000000000"}}],"gas_price":"103000000","input_data_ids":[],"output_data_receivers":[],"signer_id":"thelittles.near","signer_public_key":"ed25519:8AKi9nyQvtqNG4hjb4BqosnfGQdudwtHUYohqgpLNxwy"}},"receipt_id":"J5Ck6x2uBGVD1RbiuiVeNvMvSuna3tjU7crTmieeP7ek","receiver_id":"b22c27d0-8ffe-11ee-8380-67b092434091.thelittles.near"}}],"shard_id":2,"state_changes":[{"cause":{"tx_hash":"BbuhRMtBdDdfJMzMdzd9EWd8W58QGgsFivcWZXQPxgRx","type":"transaction_processing"},"change":{"account_id":"bababoi.near","amount":"146422773232358593581529","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1540},"type":"account_update"},{"cause":{"receipt_hash":"GNWxnAjv9vwuoAK3sDMU9XsUkvi1Lnjq1iBZms8tcfkT","type":"receipt_processing"},"change":{"account_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","amount":"120325760817594132595855","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"receipt_hash":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA","type":"receipt_processing"},"change":{"account_id":"embr.playember_reserve.near","amount":"661377985135972783498595379","code_hash":"954JuyXtkof824gufnczMcfVfLKMfoWEUQv71z6R4Y1r","locked":"0","storage_paid_at":0,"storage_usage":53631542},"type":"account_update"},{"cause":{"receipt_hash":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA","type":"action_receipt_gas_reward"},"change":{"account_id":"embr.playember_reserve.near","amount":"661378012027460672898595379","code_hash":"954JuyXtkof824gufnczMcfVfLKMfoWEUQv71z6R4Y1r","locked":"0","storage_paid_at":0,"storage_usage":53631542},"type":"account_update"},{"cause":{"receipt_hash":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf","type":"receipt_processing"},"change":{"account_id":"embr.playember_reserve.near","amount":"661378012027460672898595379","code_hash":"954JuyXtkof824gufnczMcfVfLKMfoWEUQv71z6R4Y1r","locked":"0","storage_paid_at":0,"storage_usage":53631542},"type":"account_update"},{"cause":{"receipt_hash":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf","type":"action_receipt_gas_reward"},"change":{"account_id":"embr.playember_reserve.near","amount":"661378032087727073398595379","code_hash":"954JuyXtkof824gufnczMcfVfLKMfoWEUQv71z6R4Y1r","locked":"0","storage_paid_at":0,"storage_usage":53631542},"type":"account_update"},{"cause":{"receipt_hash":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7","type":"receipt_processing"},"change":{"account_id":"embr.playember_reserve.near","amount":"661378032087727073398595379","code_hash":"954JuyXtkof824gufnczMcfVfLKMfoWEUQv71z6R4Y1r","locked":"0","storage_paid_at":0,"storage_usage":53631542},"type":"account_update"},{"cause":{"receipt_hash":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7","type":"action_receipt_gas_reward"},"change":{"account_id":"embr.playember_reserve.near","amount":"661378052147993473898595379","code_hash":"954JuyXtkof824gufnczMcfVfLKMfoWEUQv71z6R4Y1r","locked":"0","storage_paid_at":0,"storage_usage":53631542},"type":"account_update"},{"cause":{"receipt_hash":"6a5Y1jQny2gNUYy4vphdGaVwu5RGcZbZW8aoe2wvDTyP","type":"receipt_processing"},"change":{"account_id":"executor.v1.corn-staging.near","amount":"1615536514506810274532959","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"DUfCMfVVmFxDdqkryy7aGUrQ9uskXnxMjUQSyfkBapUX","type":"transaction_processing"},"change":{"account_id":"f6b2c02d3c5e62c7e858131b47bc88cb9f5d029bebdce773141713fe950315bf","amount":"28868617209352605828975","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":182},"type":"account_update"},{"cause":{"tx_hash":"BbuhRMtBdDdfJMzMdzd9EWd8W58QGgsFivcWZXQPxgRx","type":"transaction_processing"},"change":{"access_key":{"nonce":96448199000066,"permission":"FullAccess"},"account_id":"bababoi.near","public_key":"ed25519:7s6fuPn74yLUC8SAs4TbaqhmEUtx98KPXta4XbEt4xbf"},"type":"access_key_update"},{"cause":{"tx_hash":"DUfCMfVVmFxDdqkryy7aGUrQ9uskXnxMjUQSyfkBapUX","type":"transaction_processing"},"change":{"access_key":{"nonce":78569454000024,"permission":"FullAccess"},"account_id":"f6b2c02d3c5e62c7e858131b47bc88cb9f5d029bebdce773141713fe950315bf","public_key":"ed25519:Hc1P8vbLPGE8JufNHG1kzeTZmbXjPf9Tv7ff84BZ2Lia"},"type":"access_key_update"},{"cause":{"receipt_hash":"hTS8dRYemB3SMtiQNvV6KXrjFynCiSMcBxJmYNjkJnA","type":"receipt_processing"},"change":{"account_id":"embr.playember_reserve.near","key_base64":"U1RBVEU=","value_base64":"AQAAAGEA4fUFAAAAAAAAAAAAAAAAfQAAAAAAAAABAAAAbRYAAABwbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyAQAAAG8BAAAAZwEAAABjGwAAAGVtYnIucGxheWVtYmVyX3Jlc2VydmUubmVhcgEAAABw"},"type":"data_update"},{"cause":{"receipt_hash":"Fthf1tAjxb4ZoChxwoqFS8UqDMtrtFahD3awAV7cSoZf","type":"receipt_processing"},"change":{"account_id":"embr.playember_reserve.near","key_base64":"U1RBVEU=","value_base64":"AQAAAGEA4fUFAAAAAAAAAAAAAAAAfQAAAAAAAAABAAAAbRYAAABwbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyAQAAAG8BAAAAZwEAAABjGwAAAGVtYnIucGxheWVtYmVyX3Jlc2VydmUubmVhcgEAAABw"},"type":"data_update"},{"cause":{"receipt_hash":"CVFtNTk8PwvzokB3sGwuwjJ5Wy6Yc2GeL3KksKe68Bh7","type":"receipt_processing"},"change":{"account_id":"embr.playember_reserve.near","key_base64":"U1RBVEU=","value_base64":"AQAAAGEA4fUFAAAAAAAAAAAAAAAAfQAAAAAAAAABAAAAbRYAAABwbGF5ZW1iZXJfcmVzZXJ2ZS5uZWFyAQAAAG8BAAAAZwEAAABjGwAAAGVtYnIucGxheWVtYmVyX3Jlc2VydmUubmVhcgEAAABw"},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/000107503705/shard_3.json b/block-streamer/data/000107503705/shard_3.json new file mode 100644 index 000000000..847716ee7 --- /dev/null +++ b/block-streamer/data/000107503705/shard_3.json @@ -0,0 +1 @@ +{"chunk":{"author":"sweat_validator.poolv1.near","header":{"balance_burnt":"4358447737162400000000","chunk_hash":"2Wn5h4dEowWFaDLJoT47a2wyoDxSV7PKXSifmcSxQoUg","encoded_length":9453,"encoded_merkle_root":"Fk3o19LMnGWGP7TUVqS2PhmSuBCy52W3haQN5gM8rVna","gas_limit":1000000000000000,"gas_used":45502925791997,"height_created":107503705,"height_included":107503705,"outcome_root":"AC3ST5CXqqmASbnBLKvAoCMZvxRbHfyMMwPmDSDQwFJK","outgoing_receipts_root":"GZUvrgefcFecf2k7hJKD5Ci3zyjPwHCPGGZKJAnyu5xH","prev_block_hash":"3UGi8N6uikSd9ZgoUyz8FjhZhxErjhiqQ24AGDfq4DSf","prev_state_root":"41Vg5K4oYFjrJ1bJcTqQyrKpJJGjcZ3p4WZVmCd2BNM7","rent_paid":"0","shard_id":3,"signature":"ed25519:4khmuSFjf2rWUcxxp2nyLrJ3cbATfGcZpasGipCEnKdk8csw3gujesMDvi3vYyBxhruFqk93ZRy4vpdy2XhgkMzm","tx_root":"7FGUqdYg6UE3qUKt7dFpSSzzJM3iMcyWtn781SgiHatt","validator_proposals":[],"validator_reward":"0"},"receipts":[{"predecessor_id":"npo-aurora.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJwcmljZXMiOlt7ImFzc2V0X2lkIjoiYXVyb3JhIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjIzNzE1MiIsImRlY2ltYWxzIjoyMH19LHsiYXNzZXRfaWQiOiJkYWMxN2Y5NThkMmVlNTIzYTIyMDYyMDY5OTQ1OTdjMTNkODMxZWM3LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5OSIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiJhMGI4Njk5MWM2MjE4YjM2YzFkMTlkNGEyZTllYjBjZTM2MDZlYjQ4LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5NyIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiI2YjE3NTQ3NGU4OTA5NGM0NGRhOThiOTU0ZWVkZWFjNDk1MjcxZDBmLmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5OCIsImRlY2ltYWxzIjoyMn19LHsiYXNzZXRfaWQiOiIyMjYwZmFjNWU1NTQyYTc3M2FhNDRmYmNmZWRmN2MxOTNiYzJjNTk5LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiNDM5MjE1MiIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiJhYWFhYWEyMGQ5ZTBlMjQ2MTY5Nzc4MmVmMTE2NzVmNjY4MjA3OTYxLmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiMzM3NzAiLCJkZWNpbWFscyI6MjN9fSx7ImFzc2V0X2lkIjoiNDY5MTkzN2E3NTA4ODYwZjg3NmM5YzBhMmE2MTdlN2Q5ZTk0NWQ0Yi5mYWN0b3J5LmJyaWRnZS5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjI1MDI5NSIsImRlY2ltYWxzIjoyNH19LHsiYXNzZXRfaWQiOiJ1c24iLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk1OSIsImRlY2ltYWxzIjoyMn19LHsiYXNzZXRfaWQiOiJ1c2R0LnRldGhlci10b2tlbi5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6Ijk5OTkiLCJkZWNpbWFscyI6MTB9fSx7ImFzc2V0X2lkIjoiMTcyMDg2MjhmODRmNWQ2YWQzM2YwZGEzYmJiZWIyN2ZmY2IzOThlYWM1MDFhMzFiZDZhZDIwMTFlMzYxMzNhMSIsInByaWNlIjp7Im11bHRpcGxpZXIiOiI5OTk3IiwiZGVjaW1hbHMiOjEwfX1dfQ==","deposit":"0","gas":50000000000000,"method_name":"report_prices"}}],"gas_price":"138423388","input_data_ids":[],"output_data_receivers":[],"signer_id":"npo-aurora.near","signer_public_key":"ed25519:DtsWNKcf5mc64RKYvsL56pW1ixJDsSgrQQnG9dfeiEmj"}},"receipt_id":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","receiver_id":"priceoracle.near"},{"predecessor_id":"operator.orderly-network.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzaWduYXR1cmVfdmVyaWZpZWRfZGF0YSI6eyJvcGVyYXRvcl9hY3Rpb25fZGF0YSI6eyJQZXJwTWFya2V0SW5mbyI6eyJpbmZvIjp7IlBlcnBQcmljZSI6eyJtYXhfdGltZXN0YW1wIjoxNzAyMTExMjc4MDAwLCJwZXJwX3ByaWNlcyI6W3siaW5kZXhfcHJpY2UiOiIyMzcxNzIwMDAwMDAiLCJtYXJrX3ByaWNlIjoiMjM3MzQyMDAwMDAwIiwic3ltYm9sIjoiUEVSUF9FVEhfVVNEQy5lIiwidGltZXN0YW1wIjoxNzAyMTExMjc3MDAwfSx7ImluZGV4X3ByaWNlIjoiMjUxODAwMDAwIiwibWFya19wcmljZSI6IjI1MjE3MDAwMCIsInN5bWJvbCI6IlBFUlBfTkVBUl9VU0RDLmUiLCJ0aW1lc3RhbXAiOjE3MDIxMTEyNzcwMDB9LHsiaW5kZXhfcHJpY2UiOiIyNTAzNzAwMCIsIm1hcmtfcHJpY2UiOiIyNTA2NTAwMCIsInN5bWJvbCI6IlBFUlBfV09PX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3NzAwMH0seyJpbmRleF9wcmljZSI6IjQzOTMwMzMwMDAwMDAiLCJtYXJrX3ByaWNlIjoiNDM5NTg0MDAwMDAwMCIsInN5bWJvbCI6IlBFUlBfQlRDX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3ODAwMH1dfX19fSwic2lnbmF0dXJlIjoiMjZlMjJmY2YyMGVlM2M1MzgxODFjMTgzOWNhM2VmYjNhMjFhZTA4NDA1NTY0MmVmMmQwNTE3MDU5MTlkY2U5MjZkYWE5NDYyYzRiMzllNjljYWUzODIzNzhlNzYzNjVkODZkZTMyNjZmMWU4ZDBlZmRlM2YyN2I1ZWVhYzY1NGIwMSJ9fQ==","deposit":"0","gas":300000000000000,"method_name":"operator_execute_action"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"operator.orderly-network.near","signer_public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP"}},"receipt_id":"5S22Ukpe4LF1HXfV7Ybwj9fwpBaXodk8j2Mds6SZ8AW","receiver_id":"asset-manager.orderly-network.near"},{"predecessor_id":"sweat_welcome.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiMDc0ODRjMzZmMTRlOTdlOTRlMzI4YzQxNmE0ZWZkZDE5MGUyMDRmMDAyZTZlYzE2YmQ0NjFjODBiNDZjZmM3ZiJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:2zZW3xeqAiKCiH1KbcrXWcNdkQXUrMUYHPYkZWiWfxtV"}},"receipt_id":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","receiver_id":"token.sweat"},{"predecessor_id":"summer5.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzdGFraW5nX3BhY2thZ2VfaWQiOjQ2MTh9","deposit":"1","gas":60000000000000,"method_name":"claim_stake_reward"}}],"gas_price":"146853372","input_data_ids":[],"output_data_receivers":[],"signer_id":"summer5.near","signer_public_key":"ed25519:EVXXZVycps4xQgrJMd3m88pwbimVT5iHibefN8H7JLJC"}},"receipt_id":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","receiver_id":"staking-pool.sweatmint.near"},{"predecessor_id":"roshaan.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJmdW5jdGlvbl9uYW1lIjoicXVlc3RfMTA1Nzc5MF9hc3Ryb2Rhb19uZWFyX2pvaW5fZGFvIiwiY29kZSI6IiBjb25zdCBEQU9fQUNDT1VOVF9JRCA9IFwib25ib2FyZGRhby5zcHV0bmlrLWRhby5uZWFyXCI7XG4gIGNvbnN0IEdST1VQID0gXCJkYW9cIjtcblxuICBmdW5jdGlvbiBiYXNlNjRkZWNvZGUoZW5jb2RlZFZhbHVlKSB7XG4gICAgbGV0IGJ1ZmYgPSBCdWZmZXIuZnJvbShlbmNvZGVkVmFsdWUsIFwiYmFzZTY0XCIpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGJ1ZmYudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG4gIH1cbiAgY29uc3QgaCA9IGJsb2NrLmhlYWRlcigpLmhlaWdodDtcbiAgY29uc3QgdHhzID0gYmxvY2tcbiAgICAuYWN0aW9ucygpXG4gICAgLmZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24ucmVjZWl2ZXJJZC5pbmNsdWRlcyhEQU9fQUNDT1VOVF9JRCkpXG4gICAgLmZsYXRNYXAoKGFjdGlvbikgPT5cbiAgICAgIGFjdGlvbi5vcGVyYXRpb25zXG4gICAgICAgIC5tYXAoKG9wZXJhdGlvbikgPT4gb3BlcmF0aW9uW1wiRnVuY3Rpb25DYWxsXCJdKVxuICAgICAgICAuZmlsdGVyKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbj8ubWV0aG9kTmFtZSA9PT0gXCJhZGRfcHJvcG9zYWxcIilcbiAgICAgICAgLm1hcCgoZnVuY3Rpb25DYWxsT3BlcmF0aW9uKSA9PiAoe1xuICAgICAgICAgIC4uLmZ1bmN0aW9uQ2FsbE9wZXJhdGlvbixcbiAgICAgICAgICBhcmdzOiBiYXNlNjRkZWNvZGUoZnVuY3Rpb25DYWxsT3BlcmF0aW9uLmFyZ3MpLFxuICAgICAgICAgIHJlY2VpcHRJZDogYWN0aW9uLnJlY2VpcHRJZCwgLy8gcHJvdmlkaW5nIHJlY2VpcHRJZCBhcyB3ZSBuZWVkIGl0XG4gICAgICAgIH0pKVxuICAgICk7XG5cbiAgaWYgKHR4cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coXCJGb3VuZCBEQU8gVHhzIGluIEJsb2NrLi4uXCIpO1xuICAgIGNvbnN0IGJsb2NrSGVpZ2h0ID0gYmxvY2suYmxvY2tIZWlnaHQ7XG4gICAgY29uc3QgYmxvY2tUaW1lc3RhbXAgPSBibG9jay5oZWFkZXIoKS50aW1lc3RhbXBOYW5vc2VjO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdHhzLm1hcChhc3luYyAoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGFjdGlvbik7XG4gICAgICAgIGNvbnN0IGFkZE1lbWJlckFyZ3MgPSBhY3Rpb24/LnByb3Bvc2FsPy5raW5kPy5BZGRNZW1iZXJUb1JvbGU7XG5cbiAgICAgICAgLy8gaWYgY3JlYXRlcyBhIHBvc3RcbiAgICAgICAgaWYgKGFkZE1lbWJlckFyZ3Mucm9sZSA9PSBHUk9VUCkge1xuICAgICAgICAgIGNvbnRleHQuZGIuUXVlc3RUcmFja2VyLmluc2VydCh7XG4gICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCxcbiAgICAgICAgICAgIGJsb2NrX2hlaWdodDogYmxvY2tIZWlnaHQsXG4gICAgICAgICAgICBpc19jb21wbGV0ZWQ6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGV4dC5kYi5EZXRhaWxzLmluc2VydCh7XG4gICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCxcbiAgICAgICAgICAgIHByb3Bvc2FsX2lkOiAwLFxuICAgICAgICAgICAgcmVjZWlwdDogYWN0aW9uLnJlY2VpcHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuIiwic2NoZW1hIjoiQ1JFQVRFIFRBQkxFXG4gIHF1ZXN0X3RyYWNrZXIgKFxuICAgIGlkIFNFUklBTCBQUklNQVJZIEtFWSxcbiAgICBhY2NvdW50X2lkIFZBUkNIQVIgTk9UIE5VTEwsXG4gICAgaXNfY29tcGxldGVkIEJPT0xFQU4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSxcbiAgICBibG9ja19oZWlnaHQgREVDSU1BTCg1OCwgMCkgTk9UIE5VTExcbiAgKTtcblxuQ1JFQVRFIFRBQkxFXG4gIGRldGFpbHMgKFxuICAgIFwiYWNjb3VudF9pZFwiIFZBUkNIQVIgTk9UIE5VTEwsXG4gICAgXCJwcm9wb3NhbF9pZFwiIERFQ0lNQUwoNTgsIDApIE5PVCBOVUxMLFxuICAgIFwicmVjZWlwdFwiIFZBUkNIQVIgTk9UIE5VTExcbiAgKTtcblxuQ1JFQVRFIElOREVYXG4gIGlkeF9hY2NvdW50X2lkIE9OIHF1ZXN0X3RyYWNrZXIgKGFjY291bnRfaWQpO1xuIiwiZmlsdGVyX2pzb24iOiJ7XCJpbmRleGVyX3J1bGVfa2luZFwiOlwiQWN0aW9uXCIsXCJtYXRjaGluZ19ydWxlXCI6e1wicnVsZVwiOlwiQUNUSU9OX0FOWVwiLFwiYWZmZWN0ZWRfYWNjb3VudF9pZFwiOlwic29jaWFsLm5lYXJcIixcInN0YXR1c1wiOlwiU1VDQ0VTU1wifX0iLCJzdGFydF9ibG9ja19oZWlnaHQiOm51bGx9","deposit":"0","gas":200000000000000,"method_name":"register_indexer_function"}}],"gas_price":"346069590","input_data_ids":[],"output_data_receivers":[],"signer_id":"roshaan.near","signer_public_key":"ed25519:CjFXVJF5L43JwYxR9Px8w5udkdEJ19mWXXHSKY1KPyBW"}},"receipt_id":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","receiver_id":"queryapi.dataplatform.near"},{"predecessor_id":"thelittles.near","receipt":{"Action":{"actions":["CreateAccount",{"AddKey":{"access_key":{"nonce":0,"permission":"FullAccess"},"public_key":"ed25519:67Qw3zVFf8MGUzwVanax4s3RNn8GZc1Cdtr5ejMmEa8n"}},{"Transfer":{"deposit":"1000000000000000000000000"}}],"gas_price":"103000000","input_data_ids":[],"output_data_receivers":[],"signer_id":"thelittles.near","signer_public_key":"ed25519:8AKi9nyQvtqNG4hjb4BqosnfGQdudwtHUYohqgpLNxwy"}},"receipt_id":"J5Ck6x2uBGVD1RbiuiVeNvMvSuna3tjU7crTmieeP7ek","receiver_id":"b22c27d0-8ffe-11ee-8380-67b092434091.thelittles.near"},{"predecessor_id":"sweat_welcome.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiZTM1YjM0ZjYyOGE1NmY0NTA4ZTMyMmM5YTUxMzA3MjhmMzdhZjlhNTNiNTNkOGIwMDQ2OGVmYTExNzVmYzNiMyJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:5CPsg5DVUMeh2mSqGbEZxcRn1feCMkBLmth1E8ND8gBu"}},"receipt_id":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","receiver_id":"token.sweat"},{"predecessor_id":"spin.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjliZjNmNDhhMGU3YjFjYzgyODliYzA2NmU1NWRkYWVhZmRmMmVkZmVlMTc1OTdhMjA5NzFhNjk3NDY3MjY1MTQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3Omx3Om8zWDVONUVPZG0ifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:3MRyMM8nR2b6aED5NSvZK7CPkzvVtNYZYFYPiGUZoiWL"}},"receipt_id":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","receiver_id":"token.sweat"},{"predecessor_id":"operator.orderly-network.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzaWduYXR1cmVfdmVyaWZpZWRfZGF0YSI6eyJvcGVyYXRvcl9hY3Rpb25fZGF0YSI6eyJQZXJwTWFya2V0SW5mbyI6eyJpbmZvIjp7IlBlcnBQcmljZSI6eyJtYXhfdGltZXN0YW1wIjoxNzAyMTExMjc4MDAwLCJwZXJwX3ByaWNlcyI6W3siaW5kZXhfcHJpY2UiOiIyMzcxNzIwMDAwMDAiLCJtYXJrX3ByaWNlIjoiMjM3MzQyMDAwMDAwIiwic3ltYm9sIjoiUEVSUF9FVEhfVVNEQy5lIiwidGltZXN0YW1wIjoxNzAyMTExMjc3MDAwfSx7ImluZGV4X3ByaWNlIjoiMjUxODAwMDAwIiwibWFya19wcmljZSI6IjI1MjE3MDAwMCIsInN5bWJvbCI6IlBFUlBfTkVBUl9VU0RDLmUiLCJ0aW1lc3RhbXAiOjE3MDIxMTEyNzcwMDB9LHsiaW5kZXhfcHJpY2UiOiIyNTAzNzAwMCIsIm1hcmtfcHJpY2UiOiIyNTA2NTAwMCIsInN5bWJvbCI6IlBFUlBfV09PX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3NzAwMH0seyJpbmRleF9wcmljZSI6IjQzOTMwMzMwMDAwMDAiLCJtYXJrX3ByaWNlIjoiNDM5NTg0MDAwMDAwMCIsInN5bWJvbCI6IlBFUlBfQlRDX1VTREMuZSIsInRpbWVzdGFtcCI6MTcwMjExMTI3ODAwMH1dfX19fSwic2lnbmF0dXJlIjoiMjZlMjJmY2YyMGVlM2M1MzgxODFjMTgzOWNhM2VmYjNhMjFhZTA4NDA1NTY0MmVmMmQwNTE3MDU5MTlkY2U5MjZkYWE5NDYyYzRiMzllNjljYWUzODIzNzhlNzYzNjVkODZkZTMyNjZmMWU4ZDBlZmRlM2YyN2I1ZWVhYzY1NGIwMSJ9fQ==","deposit":"0","gas":300000000000000,"method_name":"operator_execute_action"}}],"gas_price":"625040174","input_data_ids":[],"output_data_receivers":[],"signer_id":"operator.orderly-network.near","signer_public_key":"ed25519:8TpstM6huoHRLvMCvXxAE6eToeLTWx6andHityD1syuP"}},"receipt_id":"DuSeSGd4XwCtCunHBgsG3xZpXt8EgAurNpAGwEAek4Yp","receiver_id":"asset-manager.orderly-network.near"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1407073089176732288000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba","signer_public_key":"ed25519:6zse8K7L5Kydn2M8XhPDJAHyp4VSHxbXKVLn3H6PjKmj"}},"receipt_id":"472dKMTuMdutLPgrqGXGerntv32sBzCAnQEjKfXVn9V3","receiver_id":"591dccb901a188815f31bae1195976de83ad734778ee9736699d57cd41eea0ba"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1443046469541410315000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b","signer_public_key":"ed25519:7pTxN4cYnC38CWxSzyHLvA1Zv6J3X6dipnNVu7zw2az6"}},"receipt_id":"QANFa4RhJwsgCBTjunWknihGrfxyEUSy7ggpJcdDmUL","receiver_id":"57763e449d661512979d539e680f6054b2c8e5d1bc0a2ca489f0c7411ea8c80b"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"1671045481722809964288"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7","signer_public_key":"ed25519:EUo3ZevwMAZEmZVvgkneYVy5MTtf5kggSD7vdp7Pwb3a"}},"receipt_id":"T8t8JdjnSESC4vcBZFJLDixmoM2eBpD1WBaH7TUfEfx","receiver_id":"466081c281c89d0890e7f8a9303e21bef6eea6db8b68f6f1d540272a31547bf7"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3640805076780051668700"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:H7NMW2sQFG3gYTNPykTXJZDhUhppA4MmDoR4hvYjt3c6"}},"receipt_id":"8Sey1q3rFju47U27r9ej1JLDzmkXhCnHQem2kex6vTmc","receiver_id":"spin.sweat"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3640535858813151668700"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"learn.sweat","signer_public_key":"ed25519:3RdonD1M2qviB9A9nnRfTCkbg4kbTeuDzkYXbirmkxy3"}},"receipt_id":"9Lgif5yFWUzuPaSJtBw24fNFHA7Z9BssSprD7q2hzypL","receiver_id":"learn.sweat"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"12524843062500000000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"users.kaiching","signer_public_key":"ed25519:CrPVX2eXCyqQX7oVcUF6AbakYpQifD4Y3u6agWXYzLNW"}},"receipt_id":"GzkctRCMQeGxgypefKQmCDnABEUifK6Fu1cjUec7kF2A","receiver_id":"users.kaiching"},{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"5130383935839187500"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"FA5XdXrVqm894n1UrFqUMJ7U4GxysRqFEeenDENYdoXP","receiver_id":"sweat_welcome.near"}],"transactions":[{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"9BfH8KS8nzTQA7qjKikRkUe7PUQVSjChCF5tYQ1at1Nf","outcome":{"executor_id":"zerkalo.near","gas_burnt":2428249682298,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["F7cThEyZTWxRGnqBLT829dfL7K2WU4GmaCYrMrJgvefZ"],"status":{"SuccessReceiptId":"F7cThEyZTWxRGnqBLT829dfL7K2WU4GmaCYrMrJgvefZ"},"tokens_burnt":"242824968229800000000"},"proof":[{"direction":"Right","hash":"GigH6wrMDikirKHbfXht89VwQvKChgQZNhciun6jAzw1"},{"direction":"Right","hash":"5KwqAXVvHVs41Y4zGepyrjb36qa2fUMYGeY7JQsx92Qa"},{"direction":"Right","hash":"D6d715VFXzmqKkwMhQ3F5G2Te5V3sEb8n3zhJL2GHJuX"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJwcmljZXMiOlt7ImFzc2V0X2lkIjoiNDY5MTkzN2E3NTA4ODYwZjg3NmM5YzBhMmE2MTdlN2Q5ZTk0NWQ0Yi5mYWN0b3J5LmJyaWRnZS5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjI1MDQwMCIsImRlY2ltYWxzIjoyNH19XX0=","deposit":"0","gas":50000000000000,"method_name":"report_prices"}}],"hash":"9BfH8KS8nzTQA7qjKikRkUe7PUQVSjChCF5tYQ1at1Nf","nonce":50840376477964,"public_key":"ed25519:3hQDJgRLp4EQ3xf2jMCazS6ox6XpBobKyKPub9kphQ3H","receiver_id":"priceoracle.near","signature":"ed25519:5cQ84pStDj8DJAoDBhg5EFBJgPhaB3GhJpmNaotnLhguSuyxsrHdQLTn3vqwLz8wvy7LijxstKHHJw1KsUHDGgtZ","signer_id":"zerkalo.near"}},{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"5C8kBFX29p9ce3Qar4Lhprsg7c7RjTWYQzLE19ThjJQi","outcome":{"executor_id":"spin.sweat","gas_burnt":2428256390100,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["EjoaCM9Aquv163GxPPxs4iGcsFzyx8A5vnUkYUEAYjWT"],"status":{"SuccessReceiptId":"EjoaCM9Aquv163GxPPxs4iGcsFzyx8A5vnUkYUEAYjWT"},"tokens_burnt":"242825639010000000000"},"proof":[{"direction":"Left","hash":"6rzPSKw5ieWGHPkzsD7yEDAtobbZvnsM818C72N24pKA"},{"direction":"Right","hash":"5KwqAXVvHVs41Y4zGepyrjb36qa2fUMYGeY7JQsx92Qa"},{"direction":"Right","hash":"D6d715VFXzmqKkwMhQ3F5G2Te5V3sEb8n3zhJL2GHJuX"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":null},"transaction":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjgyYzZiY2I2NWU1NWY2OGZkMDNlOTQ3MzI4NGQ3MjE4NTI4ZTg2ZDYzYTZhNjRmYzQxYjNjOGJkYzFkYjZlNmIiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3Omx3Omp3WnZ5dmxid2IifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"hash":"5C8kBFX29p9ce3Qar4Lhprsg7c7RjTWYQzLE19ThjJQi","nonce":98869350212588,"public_key":"ed25519:BKYqedRrkf2wDK3vrqvAn3JpPEpYKSRCxV9AZE1m8Uva","receiver_id":"token.sweat","signature":"ed25519:4GWAUyWAddFQsEYuw5ugA4VpBqkkeBrh1g6NHPSPR3guVZ2YwPghb6XCUbS31LFQF8K81WHBTiaACTCRgbZPmEz9","signer_id":"spin.sweat"}},{"outcome":{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"G42GJNR9rt8KF4FLDrnEfK7M1KMD5CEnVgk1P3ebUyoy","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":4174947687500,"logs":[],"metadata":{"gas_profile":null,"version":1},"receipt_ids":["3Htat3ico3yXw2EYYYWybQxtM1SdDi44yv9SFshHcvYB"],"status":{"SuccessReceiptId":"3Htat3ico3yXw2EYYYWybQxtM1SdDi44yv9SFshHcvYB"},"tokens_burnt":"417494768750000000000"},"proof":[{"direction":"Right","hash":"CkkKP9bnxTBGKEhoDWE7eoC42zqkvjzeFtCLmNSDcbbt"},{"direction":"Left","hash":"8AhzvthBACCQRPnDiFqeT7fTVKznNac39FWbmTdshbCF"},{"direction":"Right","hash":"D6d715VFXzmqKkwMhQ3F5G2Te5V3sEb8n3zhJL2GHJuX"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":null},"transaction":{"actions":[{"Transfer":{"deposit":"20000000000000000000000"}}],"hash":"G42GJNR9rt8KF4FLDrnEfK7M1KMD5CEnVgk1P3ebUyoy","nonce":64986129384210,"public_key":"ed25519:G88YJqZFWfYDFUeWLkNM5gPxbQgqchpTVtYsfdEASu1P","receiver_id":"c881e8c15bbc9c21bcc730be3cf452cff2854b4b0c30ed20b837b6aae0777d26","signature":"ed25519:5EwRhrzsVJSDRtR7RMQdzqUD8Ldi5sNvkP6RaGb8osiaKdiRPEegmYRYhP65amwzgREKedZPJccxnzFBwCjyD18L","signer_id":"sweat_welcome.near"}}]},"receipt_execution_outcomes":[{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","outcome":{"executor_id":"token.sweat","gas_burnt":3886921454473,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058\",\"new_owner_id\":\"reward-optin.sweat\",\"amount\":\"100000000000000000\",\"memo\":\"sw:rew:optin:09dW5QqWrM-629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4342402239"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"100320000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2816787753"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"48295380"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3955245564"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"595772369262"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"95929977591"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"66481153068"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1378228632"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2128875840"}],"version":3},"receipt_ids":["TYBkZfW8QQUGymcqHsBSkmd4tddH6X1vmCTB2wTzrLB"],"status":{"SuccessValue":""},"tokens_burnt":"388692145447300000000"},"proof":[{"direction":"Left","hash":"DKin9wrXfxnqnQvTCt4BrN2LtJPvsTHJcMqUiDZ34ugw"},{"direction":"Left","hash":"8AhzvthBACCQRPnDiFqeT7fTVKznNac39FWbmTdshbCF"},{"direction":"Right","hash":"D6d715VFXzmqKkwMhQ3F5G2Te5V3sEb8n3zhJL2GHJuX"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMCIsIm1lbW8iOiJzdzpyZXc6b3B0aW46MDlkVzVRcVdyTS02MjljY2VmNTY1ZjU2YTA2Y2YxZThhNjdjYWMxMTdmZGZiNjhlYjBkMGVmMTJmNmQzYTllZTJmOGEzMDQ0MDU4In0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"629ccef565f56a06cf1e8a67cac117fdfb68eb0d0ef12f6d3a9ee2f8a3044058","signer_public_key":"ed25519:7dwdvN5r5p6YqjoeosozcMtDfiFhG3dpeBf5Bcs7bnwR"}},"receipt_id":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","outcome":{"executor_id":"tge-lockup.sweat","gas_burnt":8217534889010,"logs":["Claiming 14776705951225490196 form lockup #1389343","Total claim 14776705951225490196"],"metadata":{"gas_profile":[{"cost":"FUNCTION_CALL_BASE","cost_category":"ACTION_COST","gas_used":"4639723000000"},{"cost":"FUNCTION_CALL_BYTE","cost_category":"ACTION_COST","gas_used":"887665798"},{"cost":"NEW_ACTION_RECEIPT","cost_category":"ACTION_COST","gas_used":"289092464624"},{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"8472579552"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"50686337250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"7086626100"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1082300862"},{"cost":"PROMISE_RETURN","cost_category":"WASM_HOST_COST","gas_used":"560152386"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"38760000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"46977537600"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3196921053"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"17620156302"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"44845710"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2569060239"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1178311050"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6487696014"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"986760138"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6265744878"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"193223471112"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"12447116244"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"31782272211"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"84399133236"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"22430358888"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1282896612"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"22924179888"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1931194512"}],"version":3},"receipt_ids":["CxGYdEeK6paeA3oFFsVWuahdbEDseSvKDZN1cEdr4LFc","8mbG2s55ykJtajKehQfPLWt1m4WoUEYT8zbC19Q1W111","21HxuK7biQ1PUjsuU1vEy26JRKmvo61iy5sjoJbNUxi9"],"status":{"SuccessReceiptId":"8mbG2s55ykJtajKehQfPLWt1m4WoUEYT8zbC19Q1W111"},"tokens_burnt":"821753488901000000000"},"proof":[{"direction":"Right","hash":"76hT3VheQd2XtGoBWFNTEXkvmyDhHFTp9HDPfRgLv1b5"},{"direction":"Right","hash":"4p3752SmaWzpEmd6C6TdNP4snniyxJwuSqq6futaw9TX"},{"direction":"Left","hash":"8DNyrPxhxvxM2t9i23hnD1FJ9jrgRQ5PHPPqbmv9GjKK"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"e30=","deposit":"0","gas":100000000000000,"method_name":"claim"}}],"gas_price":"186029458","input_data_ids":[],"output_data_receivers":[],"signer_id":"1a5d4aafabd9f2725df94ce23bf947533cb5f6ec432b1b97b7b4916590f49e5a","signer_public_key":"ed25519:2mv7FkNM2MriXXkZHNoBHuGAZrn83Cx9iytDFsviXz7T"}},"receipt_id":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","receiver_id":"tge-lockup.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","outcome":{"executor_id":"token.sweat","gas_burnt":11791576958972,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902\",\"new_owner_id\":\"jars.sweat\",\"amount\":\"9120000000000000000\",\"memo\":\"jars.stake_fee(161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902)\"}]}","EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902\",\"new_owner_id\":\"fees.sweat\",\"amount\":\"250000000000000000\",\"memo\":\"jars.stake_fee(161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902)\"}]}"],"metadata":{"gas_profile":[{"cost":"FUNCTION_CALL_BASE","cost_category":"ACTION_COST","gas_used":"4639723000000"},{"cost":"FUNCTION_CALL_BYTE","cost_category":"ACTION_COST","gas_used":"1321436994"},{"cost":"NEW_ACTION_RECEIPT","cost_category":"ACTION_COST","gas_used":"289092464624"},{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"17739463437"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"70891926"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"89662972500"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"7086626100"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8275641957"},{"cost":"PROMISE_RETURN","cost_category":"WASM_HOST_COST","gas_used":"560152386"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"157320000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"96564938400"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"7857355311"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"57894799278"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"125075178"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"36327762000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"7138735896"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"338141074500"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4519069818"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1144645020"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"385180416000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6551930628"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"10290498582"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"6327781956"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"322039118520"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"12447116244"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"188944150392"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"199399030380"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"70094871525"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3543627372"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"71638062150"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5356403676"}],"version":3},"receipt_ids":["CchKA6Jxt4iMVm3ZHwb7tRSCLp7zEmdB2XtpDKh5WJix","E5PyuUUNMLqGRFhUdQQdwbUmN1oWNosCGmdCpxNr7Ww8","8srSezem8euHFzmB8BqyK25P2soDymgtpNmvPRchwaiL"],"status":{"SuccessValue":""},"tokens_burnt":"1179157695897200000000"},"proof":[{"direction":"Left","hash":"3RJjH6EvAxMk7Zg49Vk5JzAFQccEwY4hpMdWvDsbtcyN"},{"direction":"Right","hash":"4p3752SmaWzpEmd6C6TdNP4snniyxJwuSqq6futaw9TX"},{"direction":"Left","hash":"8DNyrPxhxvxM2t9i23hnD1FJ9jrgRQ5PHPPqbmv9GjKK"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImphcnMuc3dlYXQiLCJhbW91bnQiOiI5MTIwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuc3Rha2VfZmVlKDE2MWRjMzQzMzM3YTFmNzdiNjJmNzZiNGFmNmY4ZTU2MjM2YzU2OTk3MTVhODk2Y2M0N2YxMDllYjY0ZGQ5MDIpIiwibXNnIjoie1widHlwZVwiOlwic3Rha2VcIixcImRhdGFcIjp7XCJ0aWNrZXRcIjp7XCJwcm9kdWN0X2lkXCI6XCIzNjVkXzEyYXB5XCIsXCJ2YWxpZF91bnRpbFwiOlwiMTcwMjExMTM5NDAwMFwifSxcInNpZ25hdHVyZVwiOlwidFY5Z1lHUXVNVEQzUzl1RHBwaDdkUGZTbnVvVTFpcVgxRjFyUWw5MWwycU1ld2ZHYjNDa3BsU0l4cGl1RzF3bEpHdEdVNm5xU1JEREFtQ2JITDJVQlE9PVwiLFwicmVjZWl2ZXJfaWRcIjpcIjE2MWRjMzQzMzM3YTFmNzdiNjJmNzZiNGFmNmY4ZTU2MjM2YzU2OTk3MTVhODk2Y2M0N2YxMDllYjY0ZGQ5MDJcIn19In0=","deposit":"1","gas":32000000000000,"method_name":"ft_transfer_call"}},{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIyNTAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoiamFycy5zdGFrZV9mZWUoMTYxZGMzNDMzMzdhMWY3N2I2MmY3NmI0YWY2ZjhlNTYyMzZjNTY5OTcxNWE4OTZjYzQ3ZjEwOWViNjRkZDkwMikifQ==","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"134391638","input_data_ids":[],"output_data_receivers":[],"signer_id":"161dc343337a1f77b62f76b4af6f8e56236c5699715a896cc47f109eb64dd902","signer_public_key":"ed25519:AuyeWqLhopHxJQdEL37cQ8eMS4vAAutd5UFcqxvtuF9w"}},"receipt_id":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","outcome":{"executor_id":"token.sweat","gas_burnt":3356483691716,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0\",\"new_owner_id\":\"reward-optin.sweat\",\"amount\":\"1000000000000000000\",\"memo\":\"sw:rew:optin:ZnR4p3Dj6r-76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4355601030"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"52440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2820589086"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"48393942"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3955245564"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"112713691482"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"96221558070"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"66664627656"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1380952404"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2132677404"}],"version":3},"receipt_ids":["81VmXfXwR5KhZ4VGAFxJ8Gu32ZASd4USQfXyzY8dPUdN"],"status":{"SuccessValue":""},"tokens_burnt":"335648369171600000000"},"proof":[{"direction":"Right","hash":"2htiQFqbzk6A2KkzRrmCDzuXs8ckhhLuYqjg3CbDzkBG"},{"direction":"Left","hash":"7z6MvAcvqYsDnJR3CFfwYhB3W3DyibK5TRCPWwrJo5Lf"},{"direction":"Left","hash":"8DNyrPxhxvxM2t9i23hnD1FJ9jrgRQ5PHPPqbmv9GjKK"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOlpuUjRwM0RqNnItNzZjOTk2N2NlZmZhMThlOTFhZjM1OTkxYWJmZjllOTlkOGFhZTlkOWY2ZmIxOGZkYjgzNDMzMGY3NWNhNWVmMCJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"76c9967ceffa18e91af35991abff9e99d8aae9d9f6fb18fdb834330f75ca5ef0","signer_public_key":"ed25519:Ha2sdvj2JwCYFGwKCquhz2dQJwvmBQPJupLd1qgCPMAg"}},"receipt_id":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","outcome":{"executor_id":"token.sweat","gas_burnt":3459019769015,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d\",\"new_owner_id\":\"spin.sweat\",\"amount\":\"200000000000000000\",\"memo\":\"sw:lw:o3X5N5WOdm\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3286498959"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"107160000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2451859785"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"40410420"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"193223471112"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"72603539271"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"60130299504"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1160326872"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1824750720"}],"version":3},"receipt_ids":["7P56MQNNvH1kpC5wfPR1pE48hhPsHSbpzn6fdqepoXnb"],"status":{"SuccessValue":""},"tokens_burnt":"345901976901500000000"},"proof":[{"direction":"Left","hash":"CnL9RxBr5wCEqNrDuE9UASMfveP7wp3rVEYKGrxo9edr"},{"direction":"Left","hash":"7z6MvAcvqYsDnJR3CFfwYhB3W3DyibK5TRCPWwrJo5Lf"},{"direction":"Left","hash":"8DNyrPxhxvxM2t9i23hnD1FJ9jrgRQ5PHPPqbmv9GjKK"},{"direction":"Right","hash":"G93dUZSUAiJx8RsaF3D1wYC2bLu6gksdQRcZ6RnNZNJS"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6bzNYNU41V09kbSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"8eeaa18476891fd5a9f7b0a89b2f86b3dee6489342f7e9b60b2c6d2eb9fc331d","signer_public_key":"ed25519:ActQJsSyGKNZY3PrA61TH1rpmG5sm9WKsJDWFskHtHGY"}},"receipt_id":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"6gAjVzkWiGgk41b1sZbayK3vn1Z3g2FDzugrha4cePMu","outcome":{"executor_id":"nikitalya1777.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"EwGPp2Gxq3STCy8Zagqq9wf57v1d96Bn8L922amemr9i"},{"direction":"Right","hash":"48oyJKAJ3Yq3Gtf7QPsokth7aSD3E31kd8TG1kxrHWPP"},{"direction":"Right","hash":"GeFw9A1xN9P6QXSRnYFsH23o8jkxTE3TPo6GwxbnBYNX"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3536901675036217854228"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"nikitalya1777.near","signer_public_key":"ed25519:2p2EvvBgzMHRHkFBMQN5jSbPzFhz3fkbrGg8YLcdjLvo"}},"receipt_id":"6gAjVzkWiGgk41b1sZbayK3vn1Z3g2FDzugrha4cePMu","receiver_id":"nikitalya1777.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","outcome":{"executor_id":"token.sweat","gas_burnt":3356516601956,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a\",\"new_owner_id\":\"reward-optin.sweat\",\"amount\":\"1000000000000000000\",\"memo\":\"sw:rew:optin:ZnR4p3Dj6r-d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4355601030"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"52440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2820589086"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"48393942"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3955245564"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"112713691482"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"96221558070"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"66697537896"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1380952404"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2132677404"}],"version":3},"receipt_ids":["D69WPJmdN3yUXgkzip4kdpDvnepzexFoMFRYrht6m1o3"],"status":{"SuccessValue":""},"tokens_burnt":"335651660195600000000"},"proof":[{"direction":"Left","hash":"BkEYdzPmZyB1g1AWkXKmg7YjTo6paQtrPzXemaQbF1ti"},{"direction":"Right","hash":"48oyJKAJ3Yq3Gtf7QPsokth7aSD3E31kd8TG1kxrHWPP"},{"direction":"Right","hash":"GeFw9A1xN9P6QXSRnYFsH23o8jkxTE3TPo6GwxbnBYNX"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InJld2FyZC1vcHRpbi5zd2VhdCIsImFtb3VudCI6IjEwMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6cmV3Om9wdGluOlpuUjRwM0RqNnItZDI3MmE4NjQwMjBiZTdhMTQzNmZiZjljNmExNGY3OTBmMjQ5OTE1ZjEyZmNiOTNhZmE1MGRiN2JmMDFhMTI0YSJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"d272a864020be7a1436fbf9c6a14f790f249915f12fcb93afa50db7bf01a124a","signer_public_key":"ed25519:DoHwEXU2hqGAEafZdvEkJAkagQjtiVZKh8WH6Msefcx1"}},"receipt_id":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","outcome":{"executor_id":"token.sweat","gas_burnt":3336165137806,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd\",\"new_owner_id\":\"fees.sweat\",\"amount\":\"1000000000000000000\",\"memo\":\"jars.claim_fee(d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd)\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4144420374"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"54720000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2698946430"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"46816950"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"96611735556"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"91556270406"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"65693775576"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1337372052"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2071852380"}],"version":3},"receipt_ids":["4NjRzCWAHeV6jACfiUWFWCptrbnL3s33DAPUkGT3dBti"],"status":{"SuccessValue":""},"tokens_burnt":"333616513780600000000"},"proof":[{"direction":"Right","hash":"262U7tdsCwubvkCpAteaexTqDRxaeeRQw32tZTjMv3Up"},{"direction":"Left","hash":"1BCrC9StrQcHvrGXVWEys9uFvSuh7aLjidsXmg6wwxa"},{"direction":"Right","hash":"GeFw9A1xN9P6QXSRnYFsH23o8jkxTE3TPo6GwxbnBYNX"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6ImZlZXMuc3dlYXQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6ImphcnMuY2xhaW1fZmVlKGQ5MjY1NDE1OGE1ZjVhNzdjODJkZjY3ZDAxODkzNTg2ODY0YWE0OWQ4YjQyNzM4NzY0ODAzNWYzZTdjZjQzYmQpIn0=","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"d92654158a5f5a77c82df67d01893586864aa49d8b427387648035f3e7cf43bd","signer_public_key":"ed25519:FcfNMwNTVhQRmPCABfpyyev7vz98hENwnBz46fPigsKz"}},"receipt_id":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","outcome":{"executor_id":"token.sweat","gas_burnt":3307727525747,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f\",\"new_owner_id\":\"spin.sweat\",\"amount\":\"200000000000000000\",\"memo\":\"sw:lw:8axAkADYwL\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3286498959"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"52440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2451859785"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"40410420"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"96611735556"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"72603539271"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"60169791792"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1160326872"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1824750720"}],"version":3},"receipt_ids":["3Sh2NqkTPqzHctNpjmBzaoDEixeYqZfXK5sCipXU1rH3"],"status":{"SuccessValue":""},"tokens_burnt":"330772752574700000000"},"proof":[{"direction":"Left","hash":"4zKtDx223rvZexbjyAumAQdpMzV436gRSHzQcwAwB9og"},{"direction":"Left","hash":"1BCrC9StrQcHvrGXVWEys9uFvSuh7aLjidsXmg6wwxa"},{"direction":"Right","hash":"GeFw9A1xN9P6QXSRnYFsH23o8jkxTE3TPo6GwxbnBYNX"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6InNwaW4uc3dlYXQiLCJhbW91bnQiOiIyMDAwMDAwMDAwMDAwMDAwMDAiLCJtZW1vIjoic3c6bHc6OGF4QWtBRFl3TCJ9","deposit":"1","gas":14000000000000,"method_name":"ft_transfer"}}],"gas_price":"109272700","input_data_ids":[],"output_data_receivers":[],"signer_id":"bd1611267851d20a3c38614076dc8e0bfc09f2f6216c6e0adec5014719f5058f","signer_public_key":"ed25519:Dj7a7yHTXxaG8NKiusLZwj8jrMf9adEJacBANCdany4i"}},"receipt_id":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","outcome":{"executor_id":"token.sweat","gas_burnt":3321478451383,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"jars.sweat\",\"new_owner_id\":\"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc\",\"amount\":\"2934992862782557075\",\"memo\":\"claim\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3154511049"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"52440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2413846455"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"39424800"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"112713691482"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"69687734481"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"60872425416"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1133089152"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1786735080"}],"version":3},"receipt_ids":["EhYMebinyYoZdzvmQowHosh4pNLdCctQr82FJpnk3Nej"],"status":{"SuccessValue":""},"tokens_burnt":"332147845138300000000"},"proof":[{"direction":"Right","hash":"8WBYrKwXLMqrpgYwoQowYhrCodENw8YVyVaijuJUKXuJ"},{"direction":"Right","hash":"13SbtVA5eCZPqEdKtTf1NdzV6kSqRz4bhVcPAE72BMDi"},{"direction":"Left","hash":"9GKZfxVwdTVdpLx9p7AyXnh4UwFFHhjdCrskcUZTRHqq"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"jars.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhbW91bnQiOiIyOTM0OTkyODYyNzgyNTU3MDc1IiwibWVtbyI6ImNsYWltIiwicmVjZWl2ZXJfaWQiOiJkMmEzNTU1NmQyNzYxMjRkYzZmZDA4MDhlMmRkYzY1ZjQ1OGM3NTdiMWY2YjQ1NWQ0ZmM1ZmM5OTIzNDhiM2NjIn0=","deposit":"1","gas":5000000000000,"method_name":"ft_transfer"}}],"gas_price":"138423388","input_data_ids":[],"output_data_receivers":[{"data_id":"DKYvjmKi8LR85FTJw2uZ6cMykQnetXzoFVPreHoTDJAv","receiver_id":"jars.sweat"}],"signer_id":"d2a35556d276124dc6fd0808e2ddc65f458c757b1f6b455d4fc5fc992348b3cc","signer_public_key":"ed25519:FBF52PUKFtKjK3hba5z3RhpFVdtKCA1UQJHf8rD3PJjM"}},"receipt_id":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"FyZe9zt7DmRyCqWWrTVPD28s3iFrrWBM8hHbmxvv1Uiw","outcome":{"executor_id":"xcorn.v1.corn-staging.near","gas_burnt":3058888911379,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"5560130331"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"59165814000"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"41040000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"18269042400"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"547391952"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"12585825930"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"21190830"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"112713691500"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"185715198"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"712597635"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4078897989"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"422897202"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3939354453"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"177121515186"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"27254615256"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"16822769166"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"629191332"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"20058657402"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1300134888"}],"version":3},"receipt_ids":["AGPKxiKGbAqtziKvKgLm5K9DZeaLoBQAVi3KmJtQKE6W"],"status":{"SuccessValue":"ZmFsc2U="},"tokens_burnt":"305888891137900000000"},"proof":[{"direction":"Left","hash":"9g6v8SCtprtPZjWuVQYWB8UGGwjkAoBvDpLmTRWpYrEt"},{"direction":"Right","hash":"13SbtVA5eCZPqEdKtTf1NdzV6kSqRz4bhVcPAE72BMDi"},{"direction":"Left","hash":"9GKZfxVwdTVdpLx9p7AyXnh4UwFFHhjdCrskcUZTRHqq"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"xcorn.v1.corn-staging.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZXdhcmRzIjoiMzI3MzU2NjY3Mzk3NDEzNjkwMTIzMiJ9","deposit":"0","gas":47519373491130,"method_name":"on_distribute"}}],"gas_price":"250008035","input_data_ids":["FvhnXQ66YFQYVkKqtz9BynzYVGCXS1ZMEPhdGS38Lpa2"],"output_data_receivers":[],"signer_id":"executor.v1.corn-staging.near","signer_public_key":"ed25519:9qKfeRCVgqpWmKiVv4K5S7ukyq7q9hY1QckVqdZyuVMA"}},"receipt_id":"FyZe9zt7DmRyCqWWrTVPD28s3iFrrWBM8hHbmxvv1Uiw","receiver_id":"xcorn.v1.corn-staging.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","outcome":{"executor_id":"priceoracle.near","gas_burnt":7574639370827,"logs":[],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"38126607984"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"47916922500"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"547200000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"151372065600"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"15490431975"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"118306763742"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"659576904"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"1916132755500"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"36740656671"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"16546853745"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"770360832000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"89061292311"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"8105529705"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"86014408647"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"515262589632"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"470658392556"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"134582153328"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"18271062576"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"137545079328"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"25896253968"}],"version":3},"receipt_ids":["GbqBBXLSMnuDrJHSUfiNgzrLBbp2bF964kEb9YvBxPDo"],"status":{"SuccessValue":""},"tokens_burnt":"757463937082700000000"},"proof":[{"direction":"Right","hash":"dFeCZ7otFAXcWw64YiGhdB3uoyT7PavCUF1L6uUgZ1a"},{"direction":"Left","hash":"7KXnJ5tYDFazfy8WaPHUSTLMJx6SA9uPGd3SomgigsET"},{"direction":"Left","hash":"9GKZfxVwdTVdpLx9p7AyXnh4UwFFHhjdCrskcUZTRHqq"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"npo-aurora.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJwcmljZXMiOlt7ImFzc2V0X2lkIjoiYXVyb3JhIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjIzNzE1MiIsImRlY2ltYWxzIjoyMH19LHsiYXNzZXRfaWQiOiJkYWMxN2Y5NThkMmVlNTIzYTIyMDYyMDY5OTQ1OTdjMTNkODMxZWM3LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5OSIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiJhMGI4Njk5MWM2MjE4YjM2YzFkMTlkNGEyZTllYjBjZTM2MDZlYjQ4LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5NyIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiI2YjE3NTQ3NGU4OTA5NGM0NGRhOThiOTU0ZWVkZWFjNDk1MjcxZDBmLmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk5OCIsImRlY2ltYWxzIjoyMn19LHsiYXNzZXRfaWQiOiIyMjYwZmFjNWU1NTQyYTc3M2FhNDRmYmNmZWRmN2MxOTNiYzJjNTk5LmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiNDM5MjE1MiIsImRlY2ltYWxzIjoxMH19LHsiYXNzZXRfaWQiOiJhYWFhYWEyMGQ5ZTBlMjQ2MTY5Nzc4MmVmMTE2NzVmNjY4MjA3OTYxLmZhY3RvcnkuYnJpZGdlLm5lYXIiLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiMzM3NzAiLCJkZWNpbWFscyI6MjN9fSx7ImFzc2V0X2lkIjoiNDY5MTkzN2E3NTA4ODYwZjg3NmM5YzBhMmE2MTdlN2Q5ZTk0NWQ0Yi5mYWN0b3J5LmJyaWRnZS5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6IjI1MDI5NSIsImRlY2ltYWxzIjoyNH19LHsiYXNzZXRfaWQiOiJ1c24iLCJwcmljZSI6eyJtdWx0aXBsaWVyIjoiOTk1OSIsImRlY2ltYWxzIjoyMn19LHsiYXNzZXRfaWQiOiJ1c2R0LnRldGhlci10b2tlbi5uZWFyIiwicHJpY2UiOnsibXVsdGlwbGllciI6Ijk5OTkiLCJkZWNpbWFscyI6MTB9fSx7ImFzc2V0X2lkIjoiMTcyMDg2MjhmODRmNWQ2YWQzM2YwZGEzYmJiZWIyN2ZmY2IzOThlYWM1MDFhMzFiZDZhZDIwMTFlMzYxMzNhMSIsInByaWNlIjp7Im11bHRpcGxpZXIiOiI5OTk3IiwiZGVjaW1hbHMiOjEwfX1dfQ==","deposit":"0","gas":50000000000000,"method_name":"report_prices"}}],"gas_price":"138423388","input_data_ids":[],"output_data_receivers":[],"signer_id":"npo-aurora.near","signer_public_key":"ed25519:DtsWNKcf5mc64RKYvsL56pW1ixJDsSgrQQnG9dfeiEmj"}},"receipt_id":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","receiver_id":"priceoracle.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","outcome":{"executor_id":"token.sweat","gas_burnt":3291177031632,"logs":[],"metadata":{"gas_profile":[{"cost":"NEW_ACTION_RECEIPT","cost_category":"ACTION_COST","gas_used":"108059500000"},{"cost":"TRANSFER","cost_category":"ACTION_COST","gas_used":"115123062500"},{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"5295362220"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"52440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33928221600"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1798030509"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"15102991116"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"26118930"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"13622910750"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4630531392"},{"cost":"STORAGE_HAS_KEY_BASE","cost_category":"WASM_HOST_COST","gas_used":"108079793250"},{"cost":"STORAGE_HAS_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2093777460"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"392770350"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2248211490"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2748831813"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2667594354"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"80509779630"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5248448622"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"34417528992"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"19626564027"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"765379932"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"20058657402"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1273523940"}],"version":3},"receipt_ids":["9oyHHGt1sL3TFJRGfNV7E4SeXnT6NorELNk5VWuWiETE","2M5zfmj7aLEMv51fypedPATazKoeVe6nRfxcVBEKaEeV"],"status":{"SuccessValue":"eyJ0b3RhbCI6IjkwMDAwMDAwMDAwMDAwMDAwMDAwMCIsImF2YWlsYWJsZSI6IjAifQ=="},"tokens_burnt":"329117703163200000000"},"proof":[{"direction":"Left","hash":"HiPjWqQYVNV9NzqZDbVxjH7vyabi8HwZa87aeG8mixie"},{"direction":"Left","hash":"7KXnJ5tYDFazfy8WaPHUSTLMJx6SA9uPGd3SomgigsET"},{"direction":"Left","hash":"9GKZfxVwdTVdpLx9p7AyXnh4UwFFHhjdCrskcUZTRHqq"},{"direction":"Left","hash":"45QKeJaw6iSmbx228o9MPRy3967xQcabXNdfvrcJTd7H"},{"direction":"Right","hash":"2giG4ok3HRGd2T6GWJt6fvNKhkbE49mHjzQYi98FvR8i"}]},"receipt":{"predecessor_id":"sweat_welcome.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiMDc0ODRjMzZmMTRlOTdlOTRlMzI4YzQxNmE0ZWZkZDE5MGUyMDRmMDAyZTZlYzE2YmQ0NjFjODBiNDZjZmM3ZiJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:2zZW3xeqAiKCiH1KbcrXWcNdkQXUrMUYHPYkZWiWfxtV"}},"receipt_id":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","outcome":{"executor_id":"staking-pool.sweatmint.near","gas_burnt":8804132152859,"logs":[],"metadata":{"gas_profile":[{"cost":"FUNCTION_CALL_BASE","cost_category":"ACTION_COST","gas_used":"4639723000000"},{"cost":"FUNCTION_CALL_BYTE","cost_category":"ACTION_COST","gas_used":"520972622"},{"cost":"NEW_ACTION_RECEIPT","cost_category":"ACTION_COST","gas_used":"289092464624"},{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"10855492551"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"58811427750"},{"cost":"PROMISE_RETURN","cost_category":"WASM_HOST_COST","gas_used":"560152386"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"66120000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"52197264000"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3318563709"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"25171651860"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"73428690"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"394497920250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2971443168"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3220716870"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"14292201615"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1057243005"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"13803249855"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"450854765928"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"6223558122"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"13995862992"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"131760259620"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"30841743471"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2072790492"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"31520747346"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4124696940"}],"version":3},"receipt_ids":["AKWNEqgAsXy7phDyW52jNyA7W8eHaxBMhL45cGA2m3eT","DMYCDBEcbdJEPS5uPjiURxuNnC6n8cSF661VNijBfnD2","2WpN8xS8uZknUvfjNkzzMJU8RtCax9XidjHbDyWq1jJU"],"status":{"SuccessReceiptId":"DMYCDBEcbdJEPS5uPjiURxuNnC6n8cSF661VNijBfnD2"},"tokens_burnt":"880413215285900000000"},"proof":[{"direction":"Right","hash":"CENu4sTAR5PEfKqB5EnEBuxMLwKYNEcGhjTSEDxfAhNx"},{"direction":"Right","hash":"HCXHTnysqaqRyAaVcRTSfEdoz9pnUyLUgn1XSdqLoFtc"},{"direction":"Right","hash":"AJbLBM5zt59P9wK64T5tHV1JDjcRqaVBLuZi1fdjxEud"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"summer5.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJzdGFraW5nX3BhY2thZ2VfaWQiOjQ2MTh9","deposit":"1","gas":60000000000000,"method_name":"claim_stake_reward"}}],"gas_price":"146853372","input_data_ids":[],"output_data_receivers":[],"signer_id":"summer5.near","signer_public_key":"ed25519:EVXXZVycps4xQgrJMd3m88pwbimVT5iHibefN8H7JLJC"}},"receipt_id":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","receiver_id":"staking-pool.sweatmint.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","outcome":{"executor_id":"queryapi.dataplatform.near","gas_burnt":3994916727718,"logs":["Registering function quest_1057790_astrodao_near_join_dao for account roshaan.near"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"6619202775"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"42842371500"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1082300862"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"109440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"39147948000"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"12897922869"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"20137321488"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"337279164"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"13622910750"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2508204504"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2135724777"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5734447110"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"256786944000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"32823887754"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"7541666769"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"94017191709"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"338141074446"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"23909599278"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"296206969608"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"25234153749"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"9364328136"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"28655224860"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"16894150416"}],"version":3},"receipt_ids":["J2xH7fhjVwyVWRVKHC4mittQEKbUnr5C9tvNwvaNCYDz"],"status":{"SuccessValue":""},"tokens_burnt":"399491672771800000000"},"proof":[{"direction":"Left","hash":"EV4Em7FQwUA4EYctmym8p3Ru9JYeCRsZ6oDmLTv4aRFJ"},{"direction":"Right","hash":"HCXHTnysqaqRyAaVcRTSfEdoz9pnUyLUgn1XSdqLoFtc"},{"direction":"Right","hash":"AJbLBM5zt59P9wK64T5tHV1JDjcRqaVBLuZi1fdjxEud"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"roshaan.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJmdW5jdGlvbl9uYW1lIjoicXVlc3RfMTA1Nzc5MF9hc3Ryb2Rhb19uZWFyX2pvaW5fZGFvIiwiY29kZSI6IiBjb25zdCBEQU9fQUNDT1VOVF9JRCA9IFwib25ib2FyZGRhby5zcHV0bmlrLWRhby5uZWFyXCI7XG4gIGNvbnN0IEdST1VQID0gXCJkYW9cIjtcblxuICBmdW5jdGlvbiBiYXNlNjRkZWNvZGUoZW5jb2RlZFZhbHVlKSB7XG4gICAgbGV0IGJ1ZmYgPSBCdWZmZXIuZnJvbShlbmNvZGVkVmFsdWUsIFwiYmFzZTY0XCIpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGJ1ZmYudG9TdHJpbmcoXCJ1dGYtOFwiKSk7XG4gIH1cbiAgY29uc3QgaCA9IGJsb2NrLmhlYWRlcigpLmhlaWdodDtcbiAgY29uc3QgdHhzID0gYmxvY2tcbiAgICAuYWN0aW9ucygpXG4gICAgLmZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24ucmVjZWl2ZXJJZC5pbmNsdWRlcyhEQU9fQUNDT1VOVF9JRCkpXG4gICAgLmZsYXRNYXAoKGFjdGlvbikgPT5cbiAgICAgIGFjdGlvbi5vcGVyYXRpb25zXG4gICAgICAgIC5tYXAoKG9wZXJhdGlvbikgPT4gb3BlcmF0aW9uW1wiRnVuY3Rpb25DYWxsXCJdKVxuICAgICAgICAuZmlsdGVyKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbj8ubWV0aG9kTmFtZSA9PT0gXCJhZGRfcHJvcG9zYWxcIilcbiAgICAgICAgLm1hcCgoZnVuY3Rpb25DYWxsT3BlcmF0aW9uKSA9PiAoe1xuICAgICAgICAgIC4uLmZ1bmN0aW9uQ2FsbE9wZXJhdGlvbixcbiAgICAgICAgICBhcmdzOiBiYXNlNjRkZWNvZGUoZnVuY3Rpb25DYWxsT3BlcmF0aW9uLmFyZ3MpLFxuICAgICAgICAgIHJlY2VpcHRJZDogYWN0aW9uLnJlY2VpcHRJZCwgLy8gcHJvdmlkaW5nIHJlY2VpcHRJZCBhcyB3ZSBuZWVkIGl0XG4gICAgICAgIH0pKVxuICAgICk7XG5cbiAgaWYgKHR4cy5sZW5ndGggPiAwKSB7XG4gICAgY29uc29sZS5sb2coXCJGb3VuZCBEQU8gVHhzIGluIEJsb2NrLi4uXCIpO1xuICAgIGNvbnN0IGJsb2NrSGVpZ2h0ID0gYmxvY2suYmxvY2tIZWlnaHQ7XG4gICAgY29uc3QgYmxvY2tUaW1lc3RhbXAgPSBibG9jay5oZWFkZXIoKS50aW1lc3RhbXBOYW5vc2VjO1xuICAgIGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgdHhzLm1hcChhc3luYyAoYWN0aW9uKSA9PiB7XG4gICAgICAgIGNvbnNvbGUubG9nKGFjdGlvbik7XG4gICAgICAgIGNvbnN0IGFkZE1lbWJlckFyZ3MgPSBhY3Rpb24/LnByb3Bvc2FsPy5raW5kPy5BZGRNZW1iZXJUb1JvbGU7XG5cbiAgICAgICAgLy8gaWYgY3JlYXRlcyBhIHBvc3RcbiAgICAgICAgaWYgKGFkZE1lbWJlckFyZ3Mucm9sZSA9PSBHUk9VUCkge1xuICAgICAgICAgIGNvbnRleHQuZGIuUXVlc3RUcmFja2VyLmluc2VydCh7XG4gICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCxcbiAgICAgICAgICAgIGJsb2NrX2hlaWdodDogYmxvY2tIZWlnaHQsXG4gICAgICAgICAgICBpc19jb21wbGV0ZWQ6IHRydWUsXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgY29udGV4dC5kYi5EZXRhaWxzLmluc2VydCh7XG4gICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCxcbiAgICAgICAgICAgIHByb3Bvc2FsX2lkOiAwLFxuICAgICAgICAgICAgcmVjZWlwdDogYWN0aW9uLnJlY2VpcHQsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuIiwic2NoZW1hIjoiQ1JFQVRFIFRBQkxFXG4gIHF1ZXN0X3RyYWNrZXIgKFxuICAgIGlkIFNFUklBTCBQUklNQVJZIEtFWSxcbiAgICBhY2NvdW50X2lkIFZBUkNIQVIgTk9UIE5VTEwsXG4gICAgaXNfY29tcGxldGVkIEJPT0xFQU4gTk9UIE5VTEwgREVGQVVMVCBGQUxTRSxcbiAgICBibG9ja19oZWlnaHQgREVDSU1BTCg1OCwgMCkgTk9UIE5VTExcbiAgKTtcblxuQ1JFQVRFIFRBQkxFXG4gIGRldGFpbHMgKFxuICAgIFwiYWNjb3VudF9pZFwiIFZBUkNIQVIgTk9UIE5VTEwsXG4gICAgXCJwcm9wb3NhbF9pZFwiIERFQ0lNQUwoNTgsIDApIE5PVCBOVUxMLFxuICAgIFwicmVjZWlwdFwiIFZBUkNIQVIgTk9UIE5VTExcbiAgKTtcblxuQ1JFQVRFIElOREVYXG4gIGlkeF9hY2NvdW50X2lkIE9OIHF1ZXN0X3RyYWNrZXIgKGFjY291bnRfaWQpO1xuIiwiZmlsdGVyX2pzb24iOiJ7XCJpbmRleGVyX3J1bGVfa2luZFwiOlwiQWN0aW9uXCIsXCJtYXRjaGluZ19ydWxlXCI6e1wicnVsZVwiOlwiQUNUSU9OX0FOWVwiLFwiYWZmZWN0ZWRfYWNjb3VudF9pZFwiOlwic29jaWFsLm5lYXJcIixcInN0YXR1c1wiOlwiU1VDQ0VTU1wifX0iLCJzdGFydF9ibG9ja19oZWlnaHQiOm51bGx9","deposit":"0","gas":200000000000000,"method_name":"register_indexer_function"}}],"gas_price":"346069590","input_data_ids":[],"output_data_receivers":[],"signer_id":"roshaan.near","signer_public_key":"ed25519:CjFXVJF5L43JwYxR9Px8w5udkdEJ19mWXXHSKY1KPyBW"}},"receipt_id":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","receiver_id":"queryapi.dataplatform.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","outcome":{"executor_id":"token.sweat","gas_burnt":3305018733702,"logs":[],"metadata":{"gas_profile":[{"cost":"NEW_ACTION_RECEIPT","cost_category":"ACTION_COST","gas_used":"108059500000"},{"cost":"TRANSFER","cost_category":"ACTION_COST","gas_used":"115123062500"},{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"5295362220"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"50160000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33928221600"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1798030509"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"15102991116"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"26118930"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"13622910750"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"4630531392"},{"cost":"STORAGE_HAS_KEY_BASE","cost_category":"WASM_HOST_COST","gas_used":"108079793250"},{"cost":"STORAGE_HAS_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2093777460"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"56356845750"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"154762665"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"392770350"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"128393472000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2248211490"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2748831813"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2667594354"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"96611735556"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5248448622"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"34437275136"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"19626564027"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"765379932"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"20058657402"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1273523940"}],"version":3},"receipt_ids":["2ER4frbhXYd7EF1QwmmUGnanSP3HChNNGoG3ptYSHmq1","5hggpWpRqAUCp6W3BGdDeiHC7vBWuSqtasSbmJFkrnJg"],"status":{"SuccessValue":"eyJ0b3RhbCI6IjkwMDAwMDAwMDAwMDAwMDAwMDAwMCIsImF2YWlsYWJsZSI6IjAifQ=="},"tokens_burnt":"330501873370200000000"},"proof":[{"direction":"Right","hash":"AVJDRd8qFoqN7eCbBPAbz3JapVq2ncknVPPJnsrPonVN"},{"direction":"Left","hash":"DbwhGPJcWNKmY8XkJ3ZJ4gy3QGX2x9BcPqXXoyVq9deV"},{"direction":"Right","hash":"AJbLBM5zt59P9wK64T5tHV1JDjcRqaVBLuZi1fdjxEud"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"sweat_welcome.near","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJhY2NvdW50X2lkIjoiZTM1YjM0ZjYyOGE1NmY0NTA4ZTMyMmM5YTUxMzA3MjhmMzdhZjlhNTNiNTNkOGIwMDQ2OGVmYTExNzVmYzNiMyJ9","deposit":"1250000000000000000000","gas":30000000000000,"method_name":"storage_deposit"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:5CPsg5DVUMeh2mSqGbEZxcRn1feCMkBLmth1E8ND8gBu"}},"receipt_id":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","outcome":{"executor_id":"token.sweat","gas_burnt":3309460724562,"logs":["EVENT_JSON:{\"standard\":\"nep141\",\"version\":\"1.0.0\",\"event\":\"ft_transfer\",\"data\":[{\"old_owner_id\":\"spin.sweat\",\"new_owner_id\":\"9bf3f48a0e7b1cc8289bc066e55ddaeafdf2edfee17597a20971a69746726514\",\"amount\":\"1000000000000000000\",\"memo\":\"sw:lw:o3X5N5EOdm\"}]}"],"metadata":{"gas_profile":[{"cost":"BASE","cost_category":"WASM_HOST_COST","gas_used":"7413507108"},{"cost":"CONTRACT_LOADING_BASE","cost_category":"WASM_HOST_COST","gas_used":"35445963"},{"cost":"CONTRACT_LOADING_BYTES","cost_category":"WASM_HOST_COST","gas_used":"44831486250"},{"cost":"LOG_BASE","cost_category":"WASM_HOST_COST","gas_used":"3543313050"},{"cost":"LOG_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3299697750"},{"cost":"READ_CACHED_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"52440000000"},{"cost":"READ_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"36538084800"},{"cost":"READ_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2455661118"},{"cost":"READ_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"27688817046"},{"cost":"READ_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"40508982"},{"cost":"SHA256_BASE","cost_category":"WASM_HOST_COST","gas_used":"18163881000"},{"cost":"SHA256_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3569367948"},{"cost":"STORAGE_READ_BASE","cost_category":"WASM_HOST_COST","gas_used":"169070537250"},{"cost":"STORAGE_READ_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"2259534909"},{"cost":"STORAGE_READ_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"572322510"},{"cost":"STORAGE_WRITE_BASE","cost_category":"WASM_HOST_COST","gas_used":"192590208000"},{"cost":"STORAGE_WRITE_EVICTED_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3275965314"},{"cost":"STORAGE_WRITE_KEY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"5145249291"},{"cost":"STORAGE_WRITE_VALUE_BYTE","cost_category":"WASM_HOST_COST","gas_used":"3163890978"},{"cost":"TOUCHING_TRIE_NODE","cost_category":"WASM_HOST_COST","gas_used":"96611735556"},{"cost":"UTF8_DECODING_BASE","cost_category":"WASM_HOST_COST","gas_used":"3111779061"},{"cost":"UTF8_DECODING_BYTE","cost_category":"WASM_HOST_COST","gas_used":"72895119750"},{"cost":"WASM_INSTRUCTION","cost_category":"WASM_HOST_COST","gas_used":"61464809736"},{"cost":"WRITE_MEMORY_BASE","cost_category":"WASM_HOST_COST","gas_used":"33645538332"},{"cost":"WRITE_MEMORY_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1163050644"},{"cost":"WRITE_REGISTER_BASE","cost_category":"WASM_HOST_COST","gas_used":"34386269832"},{"cost":"WRITE_REGISTER_BYTE","cost_category":"WASM_HOST_COST","gas_used":"1828552284"}],"version":3},"receipt_ids":["3ZgHMA8ETdTSR91Fxsct3kmKe9BkKe5aYCDQ2XLGqf3F"],"status":{"SuccessValue":""},"tokens_burnt":"330946072456200000000"},"proof":[{"direction":"Left","hash":"8d9qZufKq2R7HBHC7Kfx6X3hFSLWtdSWHA2g3udoGnMu"},{"direction":"Left","hash":"DbwhGPJcWNKmY8XkJ3ZJ4gy3QGX2x9BcPqXXoyVq9deV"},{"direction":"Right","hash":"AJbLBM5zt59P9wK64T5tHV1JDjcRqaVBLuZi1fdjxEud"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"spin.sweat","receipt":{"Action":{"actions":[{"FunctionCall":{"args":"eyJyZWNlaXZlcl9pZCI6IjliZjNmNDhhMGU3YjFjYzgyODliYzA2NmU1NWRkYWVhZmRmMmVkZmVlMTc1OTdhMjA5NzFhNjk3NDY3MjY1MTQiLCJhbW91bnQiOiIxMDAwMDAwMDAwMDAwMDAwMDAwIiwibWVtbyI6InN3Omx3Om8zWDVONUVPZG0ifQ==","deposit":"1","gas":30000000000000,"method_name":"ft_transfer"}}],"gas_price":"122987387","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:3MRyMM8nR2b6aED5NSvZK7CPkzvVtNYZYFYPiGUZoiWL"}},"receipt_id":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","receiver_id":"token.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"8Sey1q3rFju47U27r9ej1JLDzmkXhCnHQem2kex6vTmc","outcome":{"executor_id":"spin.sweat","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"A1mnPtE4Vz563DzAGGwr98vFT5tCRSZmjjLp6VfqiXyq"},{"direction":"Right","hash":"5HQetCF4HHT8CiqAPErib8E53VUwkjYwtKK85zAcLGS9"},{"direction":"Left","hash":"HGc2dzMDER1REXwvn1Jf2x9YawLQ4xqw2Ypngt1orcz7"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3640805076780051668700"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"spin.sweat","signer_public_key":"ed25519:H7NMW2sQFG3gYTNPykTXJZDhUhppA4MmDoR4hvYjt3c6"}},"receipt_id":"8Sey1q3rFju47U27r9ej1JLDzmkXhCnHQem2kex6vTmc","receiver_id":"spin.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"9Lgif5yFWUzuPaSJtBw24fNFHA7Z9BssSprD7q2hzypL","outcome":{"executor_id":"learn.sweat","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"81GgEEqUsYyHYETFy53bcvVtJQ15uazXvSmYZ8XkbXm2"},{"direction":"Right","hash":"5HQetCF4HHT8CiqAPErib8E53VUwkjYwtKK85zAcLGS9"},{"direction":"Left","hash":"HGc2dzMDER1REXwvn1Jf2x9YawLQ4xqw2Ypngt1orcz7"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"3640535858813151668700"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"learn.sweat","signer_public_key":"ed25519:3RdonD1M2qviB9A9nnRfTCkbg4kbTeuDzkYXbirmkxy3"}},"receipt_id":"9Lgif5yFWUzuPaSJtBw24fNFHA7Z9BssSprD7q2hzypL","receiver_id":"learn.sweat"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"GzkctRCMQeGxgypefKQmCDnABEUifK6Fu1cjUec7kF2A","outcome":{"executor_id":"users.kaiching","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Right","hash":"E5GDWyWDEUA31NCW4H3WFhCHeK1hnrdQrqAb4Ya5914H"},{"direction":"Left","hash":"HKLwu1L8icYxm8rXE1VdvFKGBvPHFbPftppqryzndLmJ"},{"direction":"Left","hash":"HGc2dzMDER1REXwvn1Jf2x9YawLQ4xqw2Ypngt1orcz7"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"12524843062500000000"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"users.kaiching","signer_public_key":"ed25519:CrPVX2eXCyqQX7oVcUF6AbakYpQifD4Y3u6agWXYzLNW"}},"receipt_id":"GzkctRCMQeGxgypefKQmCDnABEUifK6Fu1cjUec7kF2A","receiver_id":"users.kaiching"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"FA5XdXrVqm894n1UrFqUMJ7U4GxysRqFEeenDENYdoXP","outcome":{"executor_id":"sweat_welcome.near","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"2W9q19TkiStKRYPwH4aNG2VvC2KnqPaP2XUzVrrnjFaM"},{"direction":"Left","hash":"HKLwu1L8icYxm8rXE1VdvFKGBvPHFbPftppqryzndLmJ"},{"direction":"Left","hash":"HGc2dzMDER1REXwvn1Jf2x9YawLQ4xqw2Ypngt1orcz7"},{"direction":"Right","hash":"eAe1yfP8j6uXSApzuSXjhzsyxuDygrH8AAprHgJvmGY"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"5130383935839187500"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"sweat_welcome.near","signer_public_key":"ed25519:7ehQMq5CxWinuNqbigdZ7dqNPAK4ZbJUj76SQ6xo23ia"}},"receipt_id":"FA5XdXrVqm894n1UrFqUMJ7U4GxysRqFEeenDENYdoXP","receiver_id":"sweat_welcome.near"}},{"execution_outcome":{"block_hash":"C4gEfXi6Fhq1bRMjGpccTdvfXMtURv7v9WXM9kFLSjvr","id":"73vU6LfRvB4zF3xdLwFjmnMkPXuYkbLzFNifYdMtFp19","outcome":{"executor_id":"relay.aurora","gas_burnt":223182562500,"logs":[],"metadata":{"gas_profile":[],"version":3},"receipt_ids":[],"status":{"SuccessValue":""},"tokens_burnt":"0"},"proof":[{"direction":"Left","hash":"5LbE7tfHp2UhoVNKo3RAaqmufbYLzcB4i1k15zqTBWGz"},{"direction":"Left","hash":"5EHDvTft5jMXFY5LCsSMXpZJr4cEVbN6JLBk5KDuQzDo"}]},"receipt":{"predecessor_id":"system","receipt":{"Action":{"actions":[{"Transfer":{"deposit":"188666211632363625537704"}}],"gas_price":"0","input_data_ids":[],"output_data_receivers":[],"signer_id":"relay.aurora","signer_public_key":"ed25519:BYcLvGJ8p3LSHkQyazPoRnLt1ktC9apopqe5MFzbqbUr"}},"receipt_id":"73vU6LfRvB4zF3xdLwFjmnMkPXuYkbLzFNifYdMtFp19","receiver_id":"relay.aurora"}}],"shard_id":3,"state_changes":[{"cause":{"receipt_hash":"9Lgif5yFWUzuPaSJtBw24fNFHA7Z9BssSprD7q2hzypL","type":"receipt_processing"},"change":{"account_id":"learn.sweat","amount":"3859617530579743720853396019","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1986},"type":"account_update"},{"cause":{"receipt_hash":"6gAjVzkWiGgk41b1sZbayK3vn1Z3g2FDzugrha4cePMu","type":"receipt_processing"},"change":{"account_id":"nikitalya1777.near","amount":"15012274481320317072626445","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":18471},"type":"account_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","amount":"367712839632883929003144652","code_hash":"4sUttxKK4gJpWr1mhfNddBt497ZiXsRMbTYvCeQQbjR2","locked":"0","storage_paid_at":0,"storage_usage":229902},"type":"account_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"action_receipt_gas_reward"},"change":{"account_id":"priceoracle.near","amount":"367712993961454168003144652","code_hash":"4sUttxKK4gJpWr1mhfNddBt497ZiXsRMbTYvCeQQbjR2","locked":"0","storage_paid_at":0,"storage_usage":229902},"type":"account_update"},{"cause":{"receipt_hash":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","type":"receipt_processing"},"change":{"account_id":"queryapi.dataplatform.near","amount":"28624223863503310398036437","code_hash":"J3AxHNKTwW8Xvq1oPqqTrYBJvvhdNEvhgdcoTRjaGHwh","locked":"0","storage_paid_at":0,"storage_usage":737446},"type":"account_update"},{"cause":{"receipt_hash":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","type":"action_receipt_gas_reward"},"change":{"account_id":"queryapi.dataplatform.near","amount":"28624270718760305798036437","code_hash":"J3AxHNKTwW8Xvq1oPqqTrYBJvvhdNEvhgdcoTRjaGHwh","locked":"0","storage_paid_at":0,"storage_usage":737446},"type":"account_update"},{"cause":{"receipt_hash":"73vU6LfRvB4zF3xdLwFjmnMkPXuYkbLzFNifYdMtFp19","type":"receipt_processing"},"change":{"account_id":"relay.aurora","amount":"2399155942528940499184397063","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":149317},"type":"account_update"},{"cause":{"tx_hash":"5C8kBFX29p9ce3Qar4Lhprsg7c7RjTWYQzLE19ThjJQi","type":"transaction_processing"},"change":{"account_id":"spin.sweat","amount":"1304682759101071396436285612","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1740},"type":"account_update"},{"cause":{"receipt_hash":"8Sey1q3rFju47U27r9ej1JLDzmkXhCnHQem2kex6vTmc","type":"receipt_processing"},"change":{"account_id":"spin.sweat","amount":"1304686399906148176487954312","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":1740},"type":"account_update"},{"cause":{"receipt_hash":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","type":"receipt_processing"},"change":{"account_id":"staking-pool.sweatmint.near","amount":"500593070247784213596175802","code_hash":"V94GyHHVbP5n6chKUB6KGwVtQ8yBScL9RRaMXdoV7R5","locked":"0","storage_paid_at":0,"storage_usage":31774631},"type":"account_update"},{"cause":{"receipt_hash":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","type":"action_receipt_gas_reward"},"change":{"account_id":"staking-pool.sweatmint.near","amount":"500593261531100288396175802","code_hash":"V94GyHHVbP5n6chKUB6KGwVtQ8yBScL9RRaMXdoV7R5","locked":"0","storage_paid_at":0,"storage_usage":31774631},"type":"account_update"},{"cause":{"tx_hash":"G42GJNR9rt8KF4FLDrnEfK7M1KMD5CEnVgk1P3ebUyoy","type":"transaction_processing"},"change":{"account_id":"sweat_welcome.near","amount":"12207463275920970019903833307","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"FA5XdXrVqm894n1UrFqUMJ7U4GxysRqFEeenDENYdoXP","type":"receipt_processing"},"change":{"account_id":"sweat_welcome.near","amount":"12207463281051353955743020807","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":33978},"type":"account_update"},{"cause":{"receipt_hash":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","type":"receipt_processing"},"change":{"account_id":"tge-lockup.sweat","amount":"51561608933605151322668486095","code_hash":"21wTg75GYpVCanPeoiX1F8BfFTfZmJS3FqS5pG9UF9dN","locked":"0","storage_paid_at":0,"storage_usage":4044446221},"type":"account_update"},{"cause":{"receipt_hash":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","type":"action_receipt_gas_reward"},"change":{"account_id":"tge-lockup.sweat","amount":"51561609107293098446768486095","code_hash":"21wTg75GYpVCanPeoiX1F8BfFTfZmJS3FqS5pG9UF9dN","locked":"0","storage_paid_at":0,"storage_usage":4044446221},"type":"account_update"},{"cause":{"receipt_hash":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412695468900332901906475","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412739227175313501906475","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412739227175313501906477","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412950498548696001906477","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412950498548696001906478","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737412978343623715901906478","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737412978343623715901906479","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737413009270214374401906479","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737413009270214374401906480","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737413037116276701501906480","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737413037116276701501906481","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737413064352868352401906481","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737413064352868352401906482","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737413090740691712901906482","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737413090740691712901906483","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737413117538091409601906483","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933298},"type":"account_update"},{"cause":{"receipt_hash":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737414017538091409601906483","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933388},"type":"account_update"},{"cause":{"receipt_hash":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737414043429332868601906483","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933388},"type":"account_update"},{"cause":{"receipt_hash":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737414943429332868601906483","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933478},"type":"account_update"},{"cause":{"receipt_hash":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737414969735825389701906483","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933478},"type":"account_update"},{"cause":{"receipt_hash":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","type":"receipt_processing"},"change":{"account_id":"token.sweat","amount":"54737414969735825389701906484","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933478},"type":"account_update"},{"cause":{"receipt_hash":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","type":"action_receipt_gas_reward"},"change":{"account_id":"token.sweat","amount":"54737414996171955423501906484","code_hash":"FMy4MTxATGtfxqTg5PZfGhQpRWej9Ppbttwo7FWF13wA","locked":"0","storage_paid_at":0,"storage_usage":2001933478},"type":"account_update"},{"cause":{"receipt_hash":"GzkctRCMQeGxgypefKQmCDnABEUifK6Fu1cjUec7kF2A","type":"receipt_processing"},"change":{"account_id":"users.kaiching","amount":"1219264416471134820733375000","code_hash":"11111111111111111111111111111111","locked":"0","storage_paid_at":0,"storage_usage":32982},"type":"account_update"},{"cause":{"receipt_hash":"FyZe9zt7DmRyCqWWrTVPD28s3iFrrWBM8hHbmxvv1Uiw","type":"receipt_processing"},"change":{"account_id":"xcorn.v1.corn-staging.near","amount":"10378574637515987705293259","code_hash":"6gqfBuKWqhJGymLuiwBcPSBGP9ygozpYyGm2hooFxYiz","locked":"0","storage_paid_at":0,"storage_usage":274593},"type":"account_update"},{"cause":{"receipt_hash":"FyZe9zt7DmRyCqWWrTVPD28s3iFrrWBM8hHbmxvv1Uiw","type":"action_receipt_gas_reward"},"change":{"account_id":"xcorn.v1.corn-staging.near","amount":"10378593563266506005293259","code_hash":"6gqfBuKWqhJGymLuiwBcPSBGP9ygozpYyGm2hooFxYiz","locked":"0","storage_paid_at":0,"storage_usage":274593},"type":"account_update"},{"cause":{"tx_hash":"9BfH8KS8nzTQA7qjKikRkUe7PUQVSjChCF5tYQ1at1Nf","type":"transaction_processing"},"change":{"account_id":"zerkalo.near","amount":"856499938555732919413709143","code_hash":"GKot5hBsd81kMupNCXHaqbhv3huEbxAFMLnpcX2hniwn","locked":"0","storage_paid_at":0,"storage_usage":715},"type":"account_update"},{"cause":{"receipt_hash":"6gAjVzkWiGgk41b1sZbayK3vn1Z3g2FDzugrha4cePMu","type":"receipt_processing"},"change":{"access_key":{"nonce":107465746000134,"permission":{"FunctionCall":{"allowance":"209659447832519100000000","method_names":[],"receiver_id":"app.nearcrowd.near"}}},"account_id":"nikitalya1777.near","public_key":"ed25519:2p2EvvBgzMHRHkFBMQN5jSbPzFhz3fkbrGg8YLcdjLvo"},"type":"access_key_update"},{"cause":{"tx_hash":"5C8kBFX29p9ce3Qar4Lhprsg7c7RjTWYQzLE19ThjJQi","type":"transaction_processing"},"change":{"access_key":{"nonce":98869350212588,"permission":"FullAccess"},"account_id":"spin.sweat","public_key":"ed25519:BKYqedRrkf2wDK3vrqvAn3JpPEpYKSRCxV9AZE1m8Uva"},"type":"access_key_update"},{"cause":{"tx_hash":"G42GJNR9rt8KF4FLDrnEfK7M1KMD5CEnVgk1P3ebUyoy","type":"transaction_processing"},"change":{"access_key":{"nonce":64986129384210,"permission":"FullAccess"},"account_id":"sweat_welcome.near","public_key":"ed25519:G88YJqZFWfYDFUeWLkNM5gPxbQgqchpTVtYsfdEASu1P"},"type":"access_key_update"},{"cause":{"tx_hash":"9BfH8KS8nzTQA7qjKikRkUe7PUQVSjChCF5tYQ1at1Nf","type":"transaction_processing"},"change":{"access_key":{"nonce":50840376477964,"permission":"FullAccess"},"account_id":"zerkalo.near","public_key":"ed25519:3hQDJgRLp4EQ3xf2jMCazS6ox6XpBobKyKPub9kphQ3H"},"type":"access_key_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AHYDAAAAAAAAAA==","value_base64":"ASohWmcxHZ8XndGhAAAAAABYFd/X9mR2Fw=="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYCAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sFxQnAAAAAAAAAAAAAAAAAAAKEQAAAGdsb3JpYWZvc3Rlci5uZWFyeAViLScdnxcLJwAAAAAAAAAAAAAAAAAACgwAAAB6ZXJrYWxvLm5lYXIp9HXsKh2fFwsnAAAAAAAAAAAAAAAAAAAKEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxcPJwAAAAAAAAAAAAAAAAAACgsAAABweXRoaWEubmVhckPb8D8wHZ8XDycAAAAAAAAAAAAAAAAAAAoPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxcPJwAAAAAAAAAAAAAAAAAACgAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYDAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sFxYnAAAAAAAAAAAAAAAAAAAKEQAAAGdsb3JpYWZvc3Rlci5uZWFyeAViLScdnxcNJwAAAAAAAAAAAAAAAAAACgwAAAB6ZXJrYWxvLm5lYXIp9HXsKh2fFw0nAAAAAAAAAAAAAAAAAAAKEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxcNJwAAAAAAAAAAAAAAAAAACgsAAABweXRoaWEubmVhckPb8D8wHZ8XDicAAAAAAAAAAAAAAAAAAAoPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxcNJwAAAAAAAAAAAAAAAAAACgAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYEAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sFwsnAAAAAAAAAAAAAAAAAAAWEQAAAGdsb3JpYWZvc3Rlci5uZWFyeAViLScdnxcKJwAAAAAAAAAAAAAAAAAAFgwAAAB6ZXJrYWxvLm5lYXIp9HXsKh2fFwwnAAAAAAAAAAAAAAAAAAAWEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxcOJwAAAAAAAAAAAAAAAAAAFgsAAABweXRoaWEubmVhckPb8D8wHZ8XDicAAAAAAAAAAAAAAAAAABYPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxcOJwAAAAAAAAAAAAAAAAAAFgAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYFAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sF7jxAQAAAAAAAAAAAAAAAAAUDAAAAHplcmthbG8ubmVhct40I7omHZ8XGJ4DAAAAAAAAAAAAAAAAABQRAAAAZ2xvcmlhZm9zdGVyLm5lYXJ4BWItJx2fFyaeAwAAAAAAAAAAAAAAAAAUEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxfDngMAAAAAAAAAAAAAAAAAFAsAAABweXRoaWEubmVhckPb8D8wHZ8XQJ4DAAAAAAAAAAAAAAAAABQPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxdgngMAAAAAAAAAAAAAAAAAFAAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYHAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sF0fJGQAAAAAAAAAAAAAAAAAKEQAAAGdsb3JpYWZvc3Rlci5uZWFyeAViLScdnxfjBEMAAAAAAAAAAAAAAAAACgwAAAB6ZXJrYWxvLm5lYXIp9HXsKh2fF5kIQwAAAAAAAAAAAAAAAAAKEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxeACEMAAAAAAAAAAAAAAAAACgsAAABweXRoaWEubmVhckPb8D8wHZ8XogZDAAAAAAAAAAAAAAAAAAoPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxfYBEMAAAAAAAAAAAAAAAAACgAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYIAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sFwYnAAAAAAAAAAAAAAAAAAAWEQAAAGdsb3JpYWZvc3Rlci5uZWFyeAViLScdnxfjJgAAAAAAAAAAAAAAAAAAFgwAAAB6ZXJrYWxvLm5lYXIp9HXsKh2fF+MmAAAAAAAAAAAAAAAAAAAWEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxfnJgAAAAAAAAAAAAAAAAAAFgsAAABweXRoaWEubmVhckPb8D8wHZ8X5yYAAAAAAAAAAAAAAAAAABYPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxfnJgAAAAAAAAAAAAAAAAAAFgAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYJAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sFwaYAAAAAAAAAAAAAAAAAAAXEQAAAHBvYi5yZWYtbGFicy5uZWFytJcLIyUdnxeUgwAAAAAAAAAAAAAAAAAAFxEAAABnbG9yaWFmb3N0ZXIubmVhcngFYi0nHZ8XgoMAAAAAAAAAAAAAAAAAABcMAAAAemVya2Fsby5uZWFyKfR17CodnxeZgwAAAAAAAAAAAAAAAAAAFwsAAABweXRoaWEubmVhckPb8D8wHZ8XmYMAAAAAAAAAAAAAAAAAABcPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxfqgwAAAAAAAAAAAAAAAAAAFwAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYLAAAAAAAAAA==","value_base64":"AQYAAAARAAAAdGhvcmlub3JhY2xlLm5lYXKoSClbhk4sF+rrAQAAAAAAAAAAAAAAAAAYDAAAAHplcmthbG8ubmVhcrQ5MDIkHZ8XGdIDAAAAAAAAAAAAAAAAABgRAAAAZ2xvcmlhZm9zdGVyLm5lYXJ4BWItJx2fF2LRAwAAAAAAAAAAAAAAAAAYEQAAAHBvYi5yZWYtbGFicy5uZWFy6NipYS8dnxce0gMAAAAAAAAAAAAAAAAAGAsAAABweXRoaWEubmVhckPb8D8wHZ8XINIDAAAAAAAAAAAAAAAAABgPAAAAbnBvLWF1cm9yYS5uZWFyKiFaZzEdnxe30QMAAAAAAAAAAAAAAAAAGAAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYNAAAAAAAAAA==","value_base64":"AQUAAAARAAAAZ2xvcmlhZm9zdGVyLm5lYXJ4BWItJx2fFwsnAAAAAAAAAAAAAAAAAAAKDAAAAHplcmthbG8ubmVhcin0dewqHZ8XCycAAAAAAAAAAAAAAAAAAAoRAAAAcG9iLnJlZi1sYWJzLm5lYXLo2KlhLx2fFw8nAAAAAAAAAAAAAAAAAAAKCwAAAHB5dGhpYS5uZWFyQ9vwPzAdnxcPJwAAAAAAAAAAAAAAAAAACg8AAABucG8tYXVyb3JhLm5lYXIqIVpnMR2fFw8nAAAAAAAAAAAAAAAAAAAKAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"AXYOAAAAAAAAAA==","value_base64":"AQUAAAARAAAAZ2xvcmlhZm9zdGVyLm5lYXJ4BWItJx2fFw0nAAAAAAAAAAAAAAAAAAAKDAAAAHplcmthbG8ubmVhcin0dewqHZ8XDScAAAAAAAAAAAAAAAAAAAoRAAAAcG9iLnJlZi1sYWJzLm5lYXLo2KlhLx2fFw0nAAAAAAAAAAAAAAAAAAAKCwAAAHB5dGhpYS5uZWFyQ9vwPzAdnxcOJwAAAAAAAAAAAAAAAAAACg8AAABucG8tYXVyb3JhLm5lYXIqIVpnMR2fFw0nAAAAAAAAAAAAAAAAAAAKAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5bQgy1VSQF2qpyxdyejHgypVbvCsskHA2gNwwk6fWhFN","type":"receipt_processing"},"change":{"account_id":"priceoracle.near","key_base64":"U1RBVEU=","value_base64":"AgAAAABpBQAAAAAAAAACAAAAAGsFAAAAAAAAAAIAAAAAdgIAAAABaQ8AAAAAAAAAAgAAAAFrDwAAAAAAAAACAAAAAXZaAAAAHAAAAHByaWNlb3JhY2xlLnNwdXRuaWstZGFvLm5lYXIAAAAlpAAKi8oiBAAAAAAA"},"type":"data_update"},{"cause":{"receipt_hash":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","type":"receipt_processing"},"change":{"account_id":"queryapi.dataplatform.near","key_base64":"A6SMEdFxFci427HeMWUp3rB6u6bbC9uHs/7Eq09Y1c7ndiAAAAA=","value_base64":"ACQAAABxdWVzdF8xMDU3NzkwX2FzdHJvZGFvX25lYXJfam9pbl9kYW8="},"type":"data_update"},{"cause":{"receipt_hash":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","type":"receipt_processing"},"change":{"account_id":"queryapi.dataplatform.near","key_base64":"EjD4E7xWIOQoaUrC6t855o2QKw+3ADAO6Bl6siBqpeU=","value_base64":"ACEAAAAhAAAAIgAAAAOkjBHRcRXIuNux3jFlKd6werum2wvbh7P+xKtPWNXO53YiAAAAA6SMEdFxFci427HeMWUp3rB6u6bbC9uHs/7Eq09Y1c7nbQAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","type":"receipt_processing"},"change":{"account_id":"queryapi.dataplatform.near","key_base64":"QH8wOOdRV58rJLD4IubvhhNldbw7lNheRoG2AFnpZ74=","value_base64":"CgYAACBjb25zdCBEQU9fQUNDT1VOVF9JRCA9ICJvbmJvYXJkZGFvLnNwdXRuaWstZGFvLm5lYXIiOwogIGNvbnN0IEdST1VQID0gImRhbyI7CgogIGZ1bmN0aW9uIGJhc2U2NGRlY29kZShlbmNvZGVkVmFsdWUpIHsKICAgIGxldCBidWZmID0gQnVmZmVyLmZyb20oZW5jb2RlZFZhbHVlLCAiYmFzZTY0Iik7CiAgICByZXR1cm4gSlNPTi5wYXJzZShidWZmLnRvU3RyaW5nKCJ1dGYtOCIpKTsKICB9CiAgY29uc3QgaCA9IGJsb2NrLmhlYWRlcigpLmhlaWdodDsKICBjb25zdCB0eHMgPSBibG9jawogICAgLmFjdGlvbnMoKQogICAgLmZpbHRlcigoYWN0aW9uKSA9PiBhY3Rpb24ucmVjZWl2ZXJJZC5pbmNsdWRlcyhEQU9fQUNDT1VOVF9JRCkpCiAgICAuZmxhdE1hcCgoYWN0aW9uKSA9PgogICAgICBhY3Rpb24ub3BlcmF0aW9ucwogICAgICAgIC5tYXAoKG9wZXJhdGlvbikgPT4gb3BlcmF0aW9uWyJGdW5jdGlvbkNhbGwiXSkKICAgICAgICAuZmlsdGVyKChvcGVyYXRpb24pID0+IG9wZXJhdGlvbj8ubWV0aG9kTmFtZSA9PT0gImFkZF9wcm9wb3NhbCIpCiAgICAgICAgLm1hcCgoZnVuY3Rpb25DYWxsT3BlcmF0aW9uKSA9PiAoewogICAgICAgICAgLi4uZnVuY3Rpb25DYWxsT3BlcmF0aW9uLAogICAgICAgICAgYXJnczogYmFzZTY0ZGVjb2RlKGZ1bmN0aW9uQ2FsbE9wZXJhdGlvbi5hcmdzKSwKICAgICAgICAgIHJlY2VpcHRJZDogYWN0aW9uLnJlY2VpcHRJZCwgLy8gcHJvdmlkaW5nIHJlY2VpcHRJZCBhcyB3ZSBuZWVkIGl0CiAgICAgICAgfSkpCiAgICApOwoKICBpZiAodHhzLmxlbmd0aCA+IDApIHsKICAgIGNvbnNvbGUubG9nKCJGb3VuZCBEQU8gVHhzIGluIEJsb2NrLi4uIik7CiAgICBjb25zdCBibG9ja0hlaWdodCA9IGJsb2NrLmJsb2NrSGVpZ2h0OwogICAgY29uc3QgYmxvY2tUaW1lc3RhbXAgPSBibG9jay5oZWFkZXIoKS50aW1lc3RhbXBOYW5vc2VjOwogICAgYXdhaXQgUHJvbWlzZS5hbGwoCiAgICAgIHR4cy5tYXAoYXN5bmMgKGFjdGlvbikgPT4gewogICAgICAgIGNvbnNvbGUubG9nKGFjdGlvbik7CiAgICAgICAgY29uc3QgYWRkTWVtYmVyQXJncyA9IGFjdGlvbj8ucHJvcG9zYWw/LmtpbmQ/LkFkZE1lbWJlclRvUm9sZTsKCiAgICAgICAgLy8gaWYgY3JlYXRlcyBhIHBvc3QKICAgICAgICBpZiAoYWRkTWVtYmVyQXJncy5yb2xlID09IEdST1VQKSB7CiAgICAgICAgICBjb250ZXh0LmRiLlF1ZXN0VHJhY2tlci5pbnNlcnQoewogICAgICAgICAgICBhY2NvdW50X2lkOiBhZGRNZW1iZXJBcmdzLm1lbWJlcl9pZCwKICAgICAgICAgICAgYmxvY2tfaGVpZ2h0OiBibG9ja0hlaWdodCwKICAgICAgICAgICAgaXNfY29tcGxldGVkOiB0cnVlLAogICAgICAgICAgfSk7CiAgICAgICAgICBjb250ZXh0LmRiLkRldGFpbHMuaW5zZXJ0KHsKICAgICAgICAgICAgYWNjb3VudF9pZDogYWRkTWVtYmVyQXJncy5tZW1iZXJfaWQsCiAgICAgICAgICAgIHByb3Bvc2FsX2lkOiAwLAogICAgICAgICAgICByZWNlaXB0OiBhY3Rpb24ucmVjZWlwdCwKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSkKICAgICk7CiAgfQoAAYQBAABDUkVBVEUgVEFCTEUKICBxdWVzdF90cmFja2VyICgKICAgIGlkIFNFUklBTCBQUklNQVJZIEtFWSwKICAgIGFjY291bnRfaWQgVkFSQ0hBUiBOT1QgTlVMTCwKICAgIGlzX2NvbXBsZXRlZCBCT09MRUFOIE5PVCBOVUxMIERFRkFVTFQgRkFMU0UsCiAgICBibG9ja19oZWlnaHQgREVDSU1BTCg1OCwgMCkgTk9UIE5VTEwKICApOwoKQ1JFQVRFIFRBQkxFCiAgZGV0YWlscyAoCiAgICAiYWNjb3VudF9pZCIgVkFSQ0hBUiBOT1QgTlVMTCwKICAgICJwcm9wb3NhbF9pZCIgREVDSU1BTCg1OCwgMCkgTk9UIE5VTEwsCiAgICAicmVjZWlwdCIgVkFSQ0hBUiBOT1QgTlVMTAogICk7CgpDUkVBVEUgSU5ERVgKICBpZHhfYWNjb3VudF9pZCBPTiBxdWVzdF90cmFja2VyIChhY2NvdW50X2lkKTsKAAALAAAAc29jaWFsLm5lYXIBAAAgAAAA"},"type":"data_update"},{"cause":{"receipt_hash":"7a4CaSeGDwoXFBVxarqK2Y4ZFDtaboEV6M3Y3XuaYW5M","type":"receipt_processing"},"change":{"account_id":"queryapi.dataplatform.near","key_base64":"U1RBVEU=","value_base64":"ABQAAAAUAAAAAgAAAAJ2AgAAAAJtLwAAAAoAAABtb3Jncy5uZWFyAA4AAABwYXZlbG5lYXIubmVhcgAMAAAAcm9zaGFhbi5uZWFyAA4AAABmbGF0aXJvbnMubmVhcgAJAAAAcm9vdC5uZWFyAA4AAABraG9yb2xldHMubmVhcgAaAAAAcXVlcnlhcGkuZGF0YXBsYXRmb3JtLm5lYXIAEQAAAGNoYXJsZXNsYXZvbi5uZWFyAREAAABkYXRhcGxhdGZvcm0ubmVhcgESAAAAcm9vdC5iZW5qaW1hbi5uZWFyAREAAABtYXJtYWpnYW1pbmcubmVhcgEOAAAAbmVhcnBhdmVsLm5lYXIBCwAAAG1pbnRsdS5uZWFyAREAAABtaWNyb2NoaXBnbnUubmVhcgENAAAAYnVjYW5lcm8ubmVhcgERAAAAcGV0YXJ2dWpvdmljLm5lYXIBDwAAAGNvbnRyaWJ1dDMubmVhcgEQAAAAbmVhcmhvcml6b24ubmVhcgEMAAAAZm9yZ2FzaC5uZWFyAQwAAABkYXJ1bnJzLm5lYXIBCwAAAHJvYmVydC5uZWFyAQwAAABzdHJhY2h1Lm5lYXIBDAAAAGZvcmdfZnMubmVhcgEKAAAAYWFyb24ubmVhcgERAAAAdml0YWxwb2ludGFpLm5lYXIBCQAAAGVmaXoubmVhcgEJAAAAamFzcy5uZWFyAQsAAABqYXkxMDAubmVhcgERAAAAemFoaWR1bGlzbGFtLm5lYXIBEQAAAGhhcnJ5ZGhpbGxvbi5uZWFyAQoAAABjaGxvZS5uZWFyAQ0AAAB2ZW5vbWl0eS5uZWFyAQwAAAB0aGIwMzAxLm5lYXIBBwAAAGJvLm5lYXIBDAAAAG5kY3BsdWcubmVhcgEOAAAAa2Vub2Jpam9uLm5lYXIBCwAAAGVkdW9oZS5uZWFyARYAAABxdWVyeS1hcGkubmRjLWd3Zy5uZWFyARoAAABxdWVyeS1hcGkuZ3dnLXRlc3RpbmcubmVhcgERAAAAb3BlbndlYmJ1aWxkLm5lYXIBDAAAAGNhbWVyb24ubmVhcgEPAAAAcGllcnJlLWRldi5uZWFyAQ8AAABjYWxlYmphY29iLm5lYXIBGwAAAHF1ZXJ5YXBpLnNwdXRuaWstZGFvLm5lYXItMAEQAAAAbmVhcmNhdGFsb2cubmVhcgEMAAAAcG90bG9jay5uZWFyAQwAAABsYWNobGFuLm5lYXIB"},"type":"data_update"},{"cause":{"receipt_hash":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","type":"receipt_processing"},"change":{"account_id":"staking-pool.sweatmint.near","key_base64":"AnYJEgAAAAAAAA==","value_base64":"DAAAAHN1bW1lcjUubmVhcgAAgCKPKJJJZg4AAAAAAABIAAAAAAAAAAwAAAAAAAAAAwcOxAkv3sQ5CgAAAAAAALugEYa141qkKgAAAAAAAAAAJ+SJL4wBAAAAAAAAAAAAACdEe22TAQAA"},"type":"data_update"},{"cause":{"receipt_hash":"WcgJkJzt9eXjzPBPCv4MchbFo5Dtj3sxrx1fDGoNFJa","type":"receipt_processing"},"change":{"account_id":"staking-pool.sweatmint.near","key_base64":"U1RBVEU=","value_base64":"DgAAAHN3ZWF0bWludC5uZWFyAQAAAAACAAAAAWkDAAAAAAAAAAIAAAABawMAAAAAAAAAAgAAAAF2AQAAAAMCAAAAAmnTEgAAAAAAAAIAAAACa9MSAAAAAAAAAgAAAAJ2CAAAAAAAAAABAAAABw0AAAB2ZXJycnJ5eS5uZWFyAgAAAAZpEAoAAAAAAAACAAAABmsQCgAAAAAAAAIAAAAGdgAAAAAAAAAAAQAAAAgCAAAACmkl3gAAAAAAAAIAAAAKayXeAAAAAAAAAgAAAAp2AQAAAAsLAAAAdG9rZW4uc3dlYXQOAAAAdmVycnJyeXkxLm5lYXIVAAAAcmV3YXJkLXN3ZWF0bWludC5uZWFyAKC8RpSOKRUFJ0YBAAAAAF3InBkq4fbhbFs4AAAAAAAB1BIAAAAAAAAAAAAAAAAAACbeAAAAAAAAAAAAAAAAAAABAAAACQ=="},"type":"data_update"},{"cause":{"receipt_hash":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","type":"receipt_processing"},"change":{"account_id":"tge-lockup.sweat","key_base64":"AB8zFQAAAAAA","value_base64":"QAAAADFhNWQ0YWFmYWJkOWYyNzI1ZGY5NGNlMjNiZjk0NzUzM2NiNWY2ZWM0MzJiMWI5N2I3YjQ5MTY1OTBmNDllNWEDAAAAj0YgYwAAAAAAAAAAAAAAAAAAAACQRiBjAMCP3BNazK0EAAAAAAAAABD/42YAgJ2dxoT7yS4AAAAAAAAAr0YRWKmBVLceAAAAAAAAAAA="},"type":"data_update"},{"cause":{"receipt_hash":"77rjkFD7JpGnmfM4hvvdGof98k3vervSfeQKACTkb8Nx","type":"receipt_processing"},"change":{"account_id":"tge-lockup.sweat","key_base64":"U1RBVEU=","value_base64":"CwAAAHRva2VuLnN3ZWF0ydbNAAAAAAABAAAAAAEAAAABAgAAAAJpAQAAAAAAAAACAAAAAmU="},"type":"data_update"},{"cause":{"receipt_hash":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"U1RBVEU=","value_base64":"AgAAAHNpAQAAAAAAAAACAAAAc2UBAAAAdAEIAAAALnUuc3dlYXS/EWynwGoQSXqulkYAAAAAWgAAAAAAAAC7HeLzNwQAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAAOu/9HI+SDMgwDH9WCbo7M0F5D7AL+KWCXK6EzH3pSMA==","value_base64":"xOjn6F5zQz4FAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAARC0VRu0+RNoWaee5T5AgN7ZvJmo2MhfW2gojgj2+BMw==","value_base64":"CgjrMS2Ngh8UAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAASuaMeLGuzEepw/cQXN2Bw5iK1/4mhHGGGWRyyIJJFcQ==","value_base64":"c7BeUYpZ6lUEAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAAwvZVGr7Y5nUN4uzcD3KoMNfBYcW75Gjw2rL89wJRO2Q==","value_base64":"vFh81RLUYbr2KAEAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAAwvZVGr7Y5nUN4uzcD3KoMNfBYcW75Gjw2rL89wJRO2Q==","value_base64":"vFiQkANfKL32KAEAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAAwvZVGr7Y5nUN4uzcD3KoMNfBYcW75Gjw2rL89wJRO2Q==","value_base64":"vFgs6U+oR6/2KAEAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dABB8fxUDcnPFiawvYg0BV5mfC3affh+N0WAkB5URj0Kgw==","value_base64":"RUXh9ccGWHECAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dABbzzA9zVWYjAM39EE2Uu19LZx2MbV1B68gxvYZ4nACGw==","value_base64":"ADVI0cJR4OLjGQQAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"CK6HqqAzYF8u1iZfDQ9x8ZR21TsfV8QYSt97TJ4anqEA","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dABbzzA9zVWYjAM39EE2Uu19LZx2MbV1B68gxvYZ4nACGw==","value_base64":"ADWseHYIwfDjGQQAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"3tz6cc5HxK2vP5xD3JiNKdMi9pVjpiHfrksTK4G8Yc5p","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dABun3yQ1pZBCE3hsSQcOCY2Pt58erfr77JqvPacBbg1cw==","value_base64":"t8++ph2mmm8BAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"5dcf8Az7e4jEwfx2TNspXkasERsVXmn89Gp56zn1b4Eb","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dACMW9DHe5hCp/VzinphILjFvqMeurPNURcBxAq9r71SzQ==","value_base64":"AAAAAAAAAAAAAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dACWJSkZ8CpgWLqcRf+HMmlrEsbn5klXKKMTwW79pWANmQ==","value_base64":"cAed4w0ACwAAAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"2q5ocdvHQGfhmcHz2qsCtnfjCZEQZzJ4qUWALXcS2jcX","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAC2iyDHCS0AgulclVU8Iho8T1a/iZFpOAe8Pk9Q+o85kg==","value_base64":"IBwTp0GirlcRAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"AvBo8mnw6KGmTbx2Xdn7hvEQy8pfiLVnu3E1o6aKUefm","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAC5hkVA0SaYIZi+HsOpHEMBEwQBoPdFwDr5KglbkWhwCQ==","value_base64":"AAAAAAAAAAAAAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"FADQti3pwLKp1tRLvKqFDK1UH1WxKBUsNoBXyXoqmX6N","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAC/z3lGQuDhzP37Mc5SjirxEoMIGYhdI1wHkTUFYkz7tA==","value_base64":"ps0CyBArJv/Mb54AAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAC/z3lGQuDhzP37Mc5SjirxEoMIGYhdI1wHkTUFYkz7tA==","value_base64":"E8KMa5v6atbMb54AAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"E35AAUPLrq2H5pfRvSGnc4ofqPgFjXygKJb9GBW14ShS","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADCUiigKPOTAl1jqrFvCFMV6YPDQuu8kGehwLHx0CgpIw==","value_base64":"9aE7lGtC+ylx9AkAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"Exmigr4zMAcRrULs5RNgU3KSSDJB7UouU8T3Dx4Q7b46","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADCUiigKPOTAl1jqrFvCFMV6YPDQuu8kGehwLHx0CgpIw==","value_base64":"9aGfOx/52zdx9AkAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"8TDvaDfRxJGuLzNmRURLAvJftzgSLeWJfoKk1Jj9fnke","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADCUiigKPOTAl1jqrFvCFMV6YPDQuu8kGehwLHx0CgpIw==","value_base64":"9aED49KvvEVx9AkAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"EvM5DK7M4B7vCHj8LnM9SEPFPRfd9YM5UJrwteXB6Cwh","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dADSuM/TTl2fiKm4kZGrFTEZ4MIzMBmCT1S26mwwyS/NLw==","value_base64":"zIfZ354T/OwNAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"3Udz8znAjHZM3eZHqpmtdqz4n5MBdRwRnhB85Xys7LoN","type":"receipt_processing"},"change":{"account_id":"token.sweat","key_base64":"dAD4JdvNaIxeY2dOigJ5cJimY1cqBaSVft7keN1AmYKvCw==","value_base64":"IklQB8nZBK4BAAAAAAAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"FyZe9zt7DmRyCqWWrTVPD28s3iFrrWBM8hHbmxvv1Uiw","type":"receipt_processing"},"change":{"account_id":"xcorn.v1.corn-staging.near","key_base64":"Ag==","value_base64":"8AQAAAAAAAAAdLcBAAAAAAAkl02MAQAAAQAAAAAFDQAAAA=="},"type":"data_update"},{"cause":{"receipt_hash":"FyZe9zt7DmRyCqWWrTVPD28s3iFrrWBM8hHbmxvv1Uiw","type":"receipt_processing"},"change":{"account_id":"xcorn.v1.corn-staging.near","key_base64":"U1RBVEU=","value_base64":"GAAAAGNvcm5kYW8uc3B1dG5pay1kYW8ubmVhcgEAAAABYBz1lh2TInL7zwAAAAAAAAEAAAAA7BOWM6+C8udHAwAAAAAAAH0AAAAAAAAAAQAAAAIBAAAAAwEAAAAE"},"type":"data_update"}]} \ No newline at end of file diff --git a/block-streamer/data/invalid/block.json b/block-streamer/data/invalid/block.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/block-streamer/data/invalid/block.json @@ -0,0 +1 @@ +{} diff --git a/block-streamer/data/invalid/list_objects.xml b/block-streamer/data/invalid/list_objects.xml new file mode 100644 index 000000000..0dc55be6a --- /dev/null +++ b/block-streamer/data/invalid/list_objects.xml @@ -0,0 +1,6 @@ + + + + 000000000000/ + + diff --git a/block-streamer/examples/list_streams.rs b/block-streamer/examples/list_streams.rs index 16cde7d0f..7c3c28c58 100644 --- a/block-streamer/examples/list_streams.rs +++ b/block-streamer/examples/list_streams.rs @@ -1,7 +1,7 @@ use tonic::Request; use block_streamer::block_streamer_client::BlockStreamerClient; -use block_streamer::{start_stream_request::Rule, ActionAnyRule, ListStreamsRequest, Status}; +use block_streamer::ListStreamsRequest; #[tokio::main] async fn main() -> Result<(), Box> { @@ -11,7 +11,7 @@ async fn main() -> Result<(), Box> { .list_streams(Request::new(ListStreamsRequest {})) .await?; - println!("RESPONSE = {:#?}", response); + println!("{:#?}", response.into_inner()); Ok(()) } diff --git a/block-streamer/examples/start_stream.rs b/block-streamer/examples/start_stream.rs index 108f4e799..3802037dd 100644 --- a/block-streamer/examples/start_stream.rs +++ b/block-streamer/examples/start_stream.rs @@ -19,7 +19,7 @@ async fn main() -> Result<(), Box> { })) .await?; - println!("RESPONSE = {:?}", response); + println!("{:#?}", response.into_inner()); Ok(()) } diff --git a/block-streamer/examples/stop_stream.rs b/block-streamer/examples/stop_stream.rs index e451f2ae3..a723526e1 100644 --- a/block-streamer/examples/stop_stream.rs +++ b/block-streamer/examples/stop_stream.rs @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box> { })) .await?; - println!("RESPONSE = {:?}", response); + println!("{:#?}", response.into_inner()); Ok(()) } diff --git a/block-streamer/src/block_stream.rs b/block-streamer/src/block_stream.rs index 3942888d7..235bf359a 100644 --- a/block-streamer/src/block_stream.rs +++ b/block-streamer/src/block_stream.rs @@ -1,10 +1,15 @@ -use crate::indexer_config::IndexerConfig; -use crate::rules::types::indexer_rule_match::ChainId; -use crate::rules::MatchingRule; use anyhow::{bail, Context}; use near_lake_framework::near_indexer_primitives; use tokio::task::JoinHandle; +use crate::indexer_config::IndexerConfig; +use crate::rules::types::indexer_rule_match::ChainId; +use crate::rules::MatchingRule; + +/// The number of blocks to prefetch within `near-lake-framework`. The internal default is 100, but +/// we need this configurable for testing purposes. +const LAKE_PREFETCH_SIZE: usize = 100; + pub struct Task { handle: JoinHandle>, cancellation_token: tokio_util::sync::CancellationToken, @@ -28,8 +33,9 @@ impl BlockStream { pub fn start( &mut self, start_block_height: near_indexer_primitives::types::BlockHeight, - redis_connection_manager: crate::redis::ConnectionManager, - delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + redis_client: std::sync::Arc, + delta_lake_client: std::sync::Arc, + lake_s3_config: aws_sdk_s3::Config, ) -> anyhow::Result<()> { if self.task.is_some() { return Err(anyhow::anyhow!("BlockStreamer has already been started",)); @@ -54,9 +60,11 @@ impl BlockStream { result = start_block_stream( start_block_height, &indexer_config, - &redis_connection_manager, - &delta_lake_client, + redis_client, + delta_lake_client, + lake_s3_config, &chain_id, + LAKE_PREFETCH_SIZE ) => { result.map_err(|err| { tracing::error!( @@ -90,18 +98,16 @@ impl BlockStream { "Attempted to cancel already cancelled, or not started, BlockStreamer" )) } - - pub fn take_handle(&mut self) -> Option>> { - self.task.take().map(|task| task.handle) - } } pub(crate) async fn start_block_stream( start_block_height: near_indexer_primitives::types::BlockHeight, indexer: &IndexerConfig, - redis_connection_manager: &crate::redis::ConnectionManager, - delta_lake_client: &crate::delta_lake_client::DeltaLakeClient, + redis_client: std::sync::Arc, + delta_lake_client: std::sync::Arc, + lake_s3_config: aws_sdk_s3::Config, chain_id: &ChainId, + lake_prefetch_size: usize, ) -> anyhow::Result<()> { tracing::info!( "Starting block stream at {start_block_height} for indexer: {}", @@ -143,14 +149,13 @@ pub(crate) async fn start_block_stream( ); for block in &blocks_from_index { - crate::redis::xadd( - redis_connection_manager, - // TODO make configurable - crate::redis::generate_historical_stream_key(&indexer.get_full_name()), - &[("block_height", block)], - ) - .await - .context("Failed to add block to Redis Stream")?; + redis_client + .xadd( + crate::redis::generate_historical_stream_key(&indexer.get_full_name()), + &[("block_height".to_string(), block.to_owned())], + ) + .await + .context("Failed to add block to Redis Stream")?; } let mut last_indexed_block = @@ -170,7 +175,9 @@ pub(crate) async fn start_block_stream( ChainId::Mainnet => near_lake_framework::LakeConfigBuilder::default().mainnet(), ChainId::Testnet => near_lake_framework::LakeConfigBuilder::default().testnet(), } + .s3_config(lake_s3_config) .start_block_height(last_indexed_block) + .blocks_preload_pool_size(lake_prefetch_size) .build() .context("Failed to build lake config")?; @@ -187,12 +194,13 @@ pub(crate) async fn start_block_stream( ); if !matches.is_empty() { - crate::redis::xadd( - redis_connection_manager, - crate::redis::generate_historical_stream_key(&indexer.get_full_name()), - &[("block_height", block_height)], - ) - .await?; + redis_client + .xadd( + crate::redis::generate_historical_stream_key(&indexer.get_full_name()), + &[("block_height".to_string(), block_height.to_owned())], + ) + .await + .context("Failed to add block to Redis Stream")?; } } @@ -206,3 +214,66 @@ pub(crate) async fn start_block_stream( Ok(()) } + +#[cfg(test)] +mod tests { + use super::*; + + #[tokio::test] + async fn adds_matching_blocks_from_index_and_lake() { + let expected_matching_block_height_count = 3; + + let mut mock_delta_lake_client = crate::delta_lake_client::DeltaLakeClient::default(); + mock_delta_lake_client + .expect_get_latest_block_metadata() + .returning(|| { + Ok(crate::delta_lake_client::LatestBlockMetadata { + last_indexed_block: "107503703".to_string(), + processed_at_utc: "".to_string(), + first_indexed_block: "".to_string(), + last_indexed_block_date: "".to_string(), + first_indexed_block_date: "".to_string(), + }) + }); + mock_delta_lake_client + .expect_list_matching_block_heights() + .returning(|_, _| Ok(vec![107503702, 107503703])); + + let mut mock_redis_client = crate::redis::RedisClient::default(); + mock_redis_client + .expect_xadd::() + .returning(|_, _| Ok(())) + .times(expected_matching_block_height_count); + + let indexer_config = crate::indexer_config::IndexerConfig { + account_id: near_indexer_primitives::types::AccountId::try_from( + "morgs.near".to_string(), + ) + .unwrap(), + function_name: "test".to_string(), + indexer_rule: crate::rules::IndexerRule { + indexer_rule_kind: crate::rules::IndexerRuleKind::Action, + matching_rule: crate::rules::MatchingRule::ActionAny { + affected_account_id: "queryapi.dataplatform.near".to_string(), + status: crate::rules::Status::Success, + }, + name: None, + id: None, + }, + }; + + let lake_s3_config = crate::test_utils::create_mock_lake_s3_config(&[107503704, 107503705]); + + start_block_stream( + 91940840, + &indexer_config, + std::sync::Arc::new(mock_redis_client), + std::sync::Arc::new(mock_delta_lake_client), + lake_s3_config, + &ChainId::Mainnet, + 1, + ) + .await + .unwrap(); + } +} diff --git a/block-streamer/src/delta_lake_client.rs b/block-streamer/src/delta_lake_client.rs index bff283a35..bb436130d 100644 --- a/block-streamer/src/delta_lake_client.rs +++ b/block-streamer/src/delta_lake_client.rs @@ -10,6 +10,11 @@ const INDEXED_ACTIONS_PREFIX: &str = "silver/accounts/action_receipt_actions/met const LATEST_BLOCK_METADATA_KEY: &str = "silver/accounts/action_receipt_actions/metadata/latest_block.json"; +#[cfg(not(test))] +pub use DeltaLakeClientImpl as DeltaLakeClient; +#[cfg(test)] +pub use MockDeltaLakeClientImpl as DeltaLakeClient; + #[derive(serde::Deserialize, Debug, Eq, PartialEq)] pub struct LatestBlockMetadata { pub last_indexed_block: String, @@ -31,21 +36,15 @@ pub struct IndexFile { pub actions: Vec, } -#[derive(Clone)] -pub struct DeltaLakeClient -where - T: crate::s3_client::S3ClientTrait, -{ - s3_client: T, +pub struct DeltaLakeClientImpl { + s3_client: crate::s3_client::S3Client, chain_id: ChainId, } -impl DeltaLakeClient -where - T: crate::s3_client::S3ClientTrait, -{ - pub fn new(s3_client: T) -> Self { - DeltaLakeClient { +#[cfg_attr(test, mockall::automock)] +impl DeltaLakeClientImpl { + pub fn new(s3_client: crate::s3_client::S3Client) -> Self { + Self { s3_client, // hardcode to mainnet for now chain_id: ChainId::Mainnet, @@ -323,14 +322,14 @@ mod tests { #[tokio::test] async fn fetches_metadata_from_s3() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() .with(predicate::eq(DELTA_LAKE_BUCKET), predicate::eq(LATEST_BLOCK_METADATA_KEY)) .returning(|_bucket, _prefix| Ok("{ \"last_indexed_block\": \"106309326\", \"first_indexed_block\": \"106164983\", \"last_indexed_block_date\": \"2023-11-22\", \"first_indexed_block_date\": \"2023-11-21\", \"processed_at_utc\": \"2023-11-22 23:06:24.358000\" }".to_string())); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let latest_block_metadata = delta_lake_client.get_latest_block_metadata().await.unwrap(); @@ -348,7 +347,7 @@ mod tests { #[tokio::test] async fn lists_block_heights_for_single_contract() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -374,7 +373,7 @@ mod tests { .with(predicate::eq(DELTA_LAKE_BUCKET), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/dataplatform/queryapi/2023-05-17.json".to_string())) .returning(|_bucket, _prefix| Ok("{\"heights\":[92080299,92080344],\"actions\":[{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[92080344,92080299]}]}".to_string())); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_heights = delta_lake_client .list_matching_block_heights(91940840, "queryapi.dataplatform.near") @@ -386,7 +385,7 @@ mod tests { #[tokio::test] async fn lists_block_heights_for_multiple_contracts() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -431,7 +430,7 @@ mod tests { .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/sputnik-dao/hackathon/2022-05-27.json".to_string())) .returning(|_bucket, _prefix| Ok("{\"heights\":[66494954],\"actions\":[{\"action_kind\":\"CREATE_ACCOUNT\",\"block_heights\":[66494954]},{\"action_kind\":\"DEPLOY_CONTRACT\",\"block_heights\":[66494954]},{\"action_kind\":\"FUNCTION_CALL\",\"block_heights\":[66494954]},{\"action_kind\":\"TRANSFER\",\"block_heights\":[66494954]}]}".to_string())); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_heights = delta_lake_client .list_matching_block_heights( @@ -454,7 +453,7 @@ mod tests { #[tokio::test] async fn lists_block_heights_for_wildcard() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -514,7 +513,7 @@ mod tests { .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string())) .returning(|_bucket, _prefix| Ok("{\"heights\":[104616819],\"actions\":[{\"action_kind\":\"ADD_KEY\",\"block_heights\":[104616819]}]}".to_string())); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_heights = delta_lake_client .list_matching_block_heights(78516467, "*.keypom.near") @@ -529,7 +528,7 @@ mod tests { #[tokio::test] async fn lists_block_heights_for_multiple_contracts_and_wildcard() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -576,7 +575,7 @@ mod tests { .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string())) .returning(|_bucket, _prefix| Ok("{\"heights\":[104616819],\"actions\":[{\"action_kind\":\"ADD_KEY\",\"block_heights\":[104616819]}]}".to_string())); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_heights = delta_lake_client .list_matching_block_heights(45894617, "*.keypom.near, hackathon.agency.near") @@ -594,7 +593,7 @@ mod tests { #[tokio::test] async fn sorts_and_removes_duplicates_for_multiple_contracts() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -628,7 +627,7 @@ mod tests { .with(predicate::eq(DELTA_LAKE_BUCKET.to_string()), predicate::eq("silver/accounts/action_receipt_actions/metadata/near/keypom/2023-10-31.json".to_string())) .returning(|_bucket, _prefix| Ok("{\"heights\":[45898424,45898423,45898413,45894712],\"actions\":[{\"action_kind\":\"ADD_KEY\",\"block_heights\":[104616819]}]}".to_string())); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_heights = delta_lake_client .list_matching_block_heights(45894628, "keypom.near, hackathon.agency.near") @@ -643,7 +642,7 @@ mod tests { #[tokio::test] async fn gets_the_date_of_the_closest_block() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -654,7 +653,7 @@ mod tests { .times(1) .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2021-05-26"))); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_date = delta_lake_client .get_nearest_block_date(106397175) @@ -666,7 +665,7 @@ mod tests { #[tokio::test] async fn retires_if_a_block_doesnt_exist() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -689,7 +688,7 @@ mod tests { .times(1) .returning(|_bucket, _prefix| Ok(generate_block_with_timestamp("2021-05-26"))); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let block_date = delta_lake_client .get_nearest_block_date(106397175) @@ -701,7 +700,7 @@ mod tests { #[tokio::test] async fn exits_if_maximum_retries_exceeded() { - let mut mock_s3_client = crate::s3_client::MockS3ClientTrait::new(); + let mut mock_s3_client = crate::s3_client::S3Client::default(); mock_s3_client .expect_get_text_file() @@ -712,7 +711,7 @@ mod tests { )) }); - let delta_lake_client = DeltaLakeClient::new(mock_s3_client); + let delta_lake_client = DeltaLakeClientImpl::new(mock_s3_client); let result = delta_lake_client.get_nearest_block_date(106397175).await; diff --git a/block-streamer/src/main.rs b/block-streamer/src/main.rs index 50e87ac06..38560737b 100644 --- a/block-streamer/src/main.rs +++ b/block-streamer/src/main.rs @@ -8,6 +8,9 @@ mod rules; mod s3_client; mod server; +#[cfg(test)] +mod test_utils; + #[tokio::main] async fn main() -> anyhow::Result<()> { tracing_subscriber::registry() @@ -17,14 +20,16 @@ async fn main() -> anyhow::Result<()> { tracing::info!("Starting Block Streamer Service..."); - let redis_connection_manager = redis::connect("redis://127.0.0.1").await?; + let redis_client = std::sync::Arc::new(redis::RedisClient::connect("redis://127.0.0.1").await?); let aws_config = aws_config::from_env().load().await; - let s3_client = crate::s3_client::S3Client::new(&aws_config); + let s3_config = aws_sdk_s3::Config::from(&aws_config); + let s3_client = crate::s3_client::S3Client::new(s3_config.clone()); - let delta_lake_client = crate::delta_lake_client::DeltaLakeClient::new(s3_client); + let delta_lake_client = + std::sync::Arc::new(crate::delta_lake_client::DeltaLakeClient::new(s3_client)); - server::init(redis_connection_manager, delta_lake_client).await?; + server::init(redis_client, delta_lake_client, s3_config).await?; Ok(()) } diff --git a/block-streamer/src/redis.rs b/block-streamer/src/redis.rs index 7fc8ccbe5..a5ca22e30 100644 --- a/block-streamer/src/redis.rs +++ b/block-streamer/src/redis.rs @@ -1,142 +1,47 @@ -pub use redis::{self, aio::ConnectionManager, FromRedisValue, ToRedisArgs}; +use std::fmt::Debug; -pub const LAKE_BUCKET_PREFIX: &str = "near-lake-data-"; -pub const STREAMS_SET_KEY: &str = "streams"; +use redis::{aio::ConnectionManager, RedisError, ToRedisArgs}; -pub async fn get_redis_client(redis_connection_str: &str) -> redis::Client { - redis::Client::open(redis_connection_str).expect("can create redis client") -} - -pub fn generate_real_time_stream_key(prefix: &str) -> String { - format!("{}:real_time:stream", prefix) -} - -pub fn generate_real_time_streamer_message_key(block_height: u64) -> String { - format!("streamer:message:{}", block_height) -} - -pub fn generate_real_time_storage_key(prefix: &str) -> String { - format!("{}:real_time:stream:storage", prefix) -} +#[cfg(test)] +pub use MockRedisClientImpl as RedisClient; +#[cfg(not(test))] +pub use RedisClientImpl as RedisClient; pub fn generate_historical_stream_key(prefix: &str) -> String { format!("{}:historical:stream", prefix) } -pub fn generate_historical_storage_key(prefix: &str) -> String { - format!("{}:historical:stream:storage", prefix) -} - -pub async fn connect(redis_connection_str: &str) -> anyhow::Result { - Ok(get_redis_client(redis_connection_str) - .await - .get_tokio_connection_manager() - .await?) +pub struct RedisClientImpl { + connection: ConnectionManager, } -pub async fn del( - redis_connection_manager: &ConnectionManager, - key: impl ToRedisArgs + std::fmt::Debug, -) -> anyhow::Result<()> { - redis::cmd("DEL") - .arg(&key) - .query_async(&mut redis_connection_manager.clone()) - .await?; - tracing::debug!("DEL: {:?}", key); - Ok(()) -} - -pub async fn set( - redis_connection_manager: &ConnectionManager, - key: impl ToRedisArgs + std::fmt::Debug, - value: impl ToRedisArgs + std::fmt::Debug, - expiration_seconds: Option, -) -> anyhow::Result<()> { - let mut cmd = redis::cmd("SET"); - cmd.arg(&key).arg(&value); +#[cfg_attr(test, mockall::automock)] +impl RedisClientImpl { + pub async fn connect(redis_connection_str: &str) -> Result { + println!("called this"); + let connection = redis::Client::open(redis_connection_str)? + .get_tokio_connection_manager() + .await?; - // Add expiration arguments if present - if let Some(expiration_seconds) = expiration_seconds { - cmd.arg("EX").arg(expiration_seconds); + Ok(Self { connection }) } - cmd.query_async(&mut redis_connection_manager.clone()) - .await?; - tracing::debug!("SET: {:?}: {:?} Ex: {:?}", key, value, expiration_seconds); - Ok(()) -} + pub async fn xadd(&self, stream_key: T, fields: &[(String, U)]) -> Result<(), RedisError> + where + T: ToRedisArgs + Debug + Send + Sync + 'static, + U: ToRedisArgs + Debug + Send + Sync + 'static, + { + tracing::debug!("XADD: {:?}, {:?}", stream_key, fields); -pub async fn get( - redis_connection_manager: &ConnectionManager, - key: impl ToRedisArgs + std::fmt::Debug, -) -> anyhow::Result { - let value: V = redis::cmd("GET") - .arg(&key) - .query_async(&mut redis_connection_manager.clone()) - .await?; - tracing::debug!("GET: {:?}: {:?}", &key, &value,); - Ok(value) -} - -pub async fn sadd( - redis_connection_manager: &ConnectionManager, - key: impl ToRedisArgs + std::fmt::Debug, - value: impl ToRedisArgs + std::fmt::Debug, -) -> anyhow::Result<()> { - tracing::debug!("SADD: {:?}: {:?}", key, value); - - redis::cmd("SADD") - .arg(key) - .arg(value) - .query_async(&mut redis_connection_manager.clone()) - .await?; + let mut cmd = redis::cmd("XADD"); + cmd.arg(stream_key).arg("*"); - Ok(()) -} - -pub async fn xadd( - redis_connection_manager: &ConnectionManager, - stream_key: impl ToRedisArgs + std::fmt::Debug, - fields: &[(&str, impl ToRedisArgs + std::fmt::Debug)], -) -> anyhow::Result<()> { - tracing::debug!("XADD: {:?}, {:?}", stream_key, fields); + for (field, value) in fields { + cmd.arg(field).arg(value); + } - let mut cmd = redis::cmd("XADD"); - cmd.arg(stream_key).arg("*"); + cmd.query_async(&mut self.connection.clone()).await?; - for (field, value) in fields { - cmd.arg(*field).arg(value); + Ok(()) } - - cmd.query_async(&mut redis_connection_manager.clone()) - .await?; - - Ok(()) -} - -pub async fn update_last_indexed_block( - redis_connection_manager: &ConnectionManager, - block_height: u64, -) -> anyhow::Result<()> { - set( - redis_connection_manager, - "last_indexed_block", - block_height, - None, - ) - .await?; - redis::cmd("INCR") - .arg("blocks_processed") - .query_async(&mut redis_connection_manager.clone()) - .await?; - Ok(()) -} - -pub async fn get_last_indexed_block( - redis_connection_manager: &ConnectionManager, -) -> anyhow::Result { - Ok(redis::cmd("GET") - .arg("last_indexed_block") - .query_async(&mut redis_connection_manager.clone()) - .await?) } diff --git a/block-streamer/src/rules/outcomes_reducer.rs b/block-streamer/src/rules/outcomes_reducer.rs index 84d62ca11..463e57bba 100644 --- a/block-streamer/src/rules/outcomes_reducer.rs +++ b/block-streamer/src/rules/outcomes_reducer.rs @@ -118,19 +118,6 @@ mod tests { use crate::rules::outcomes_reducer::reduce_indexer_rule_matches_from_outcomes; use crate::rules::types::indexer_rule_match::{ChainId, IndexerRuleMatch}; use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule, Status}; - use near_lake_framework::near_indexer_primitives::StreamerMessage; - - fn read_local_file(path: &str) -> String { - std::fs::read_to_string(path).unwrap() - } - fn read_local_streamer_message(block_height: u64) -> StreamerMessage { - let path = format!( - "{}/blocks/{}.json", - env!("CARGO_MANIFEST_DIR"), - block_height - ); - serde_json::from_str(&read_local_file(&path)).unwrap() - } #[tokio::test] async fn match_wildcard_no_match() { @@ -144,7 +131,7 @@ mod tests { name: None, }; - let streamer_message = read_local_streamer_message(93085141); + let streamer_message = crate::test_utils::get_streamer_message(93085141); let result: Vec = reduce_indexer_rule_matches_from_outcomes( &wildcard_rule, &streamer_message, @@ -166,7 +153,7 @@ mod tests { name: None, }; - let streamer_message = read_local_streamer_message(93085141); + let streamer_message = crate::test_utils::get_streamer_message(93085141); let result: Vec = reduce_indexer_rule_matches_from_outcomes( &wildcard_rule, &streamer_message, @@ -188,7 +175,7 @@ mod tests { name: None, }; - let streamer_message = read_local_streamer_message(93085141); + let streamer_message = crate::test_utils::get_streamer_message(93085141); let result: Vec = reduce_indexer_rule_matches_from_outcomes( &wildcard_rule, &streamer_message, @@ -228,7 +215,7 @@ mod tests { name: None, }; - let streamer_message = read_local_streamer_message(93085141); + let streamer_message = crate::test_utils::get_streamer_message(93085141); let result: Vec = reduce_indexer_rule_matches_from_outcomes( &wildcard_rule, &streamer_message, @@ -250,7 +237,7 @@ mod tests { name: None, }; - let streamer_message = read_local_streamer_message(93085141); + let streamer_message = crate::test_utils::get_streamer_message(93085141); let result: Vec = reduce_indexer_rule_matches_from_outcomes( &wildcard_rule, &streamer_message, diff --git a/block-streamer/src/s3_client.rs b/block-streamer/src/s3_client.rs index f3c72e436..6fd3d909a 100644 --- a/block-streamer/src/s3_client.rs +++ b/block-streamer/src/s3_client.rs @@ -1,48 +1,24 @@ const MAX_S3_LIST_REQUESTS: usize = 1000; -#[mockall::automock] -#[async_trait::async_trait] -pub trait S3ClientTrait { - async fn get_object( - &self, - bucket: &str, - prefix: &str, - ) -> Result< - aws_sdk_s3::operation::get_object::GetObjectOutput, - aws_sdk_s3::error::SdkError, - >; - - async fn list_objects( - &self, - bucket: &str, - prefix: &str, - continuation_token: Option, - ) -> Result< - aws_sdk_s3::operation::list_objects_v2::ListObjectsV2Output, - aws_sdk_s3::error::SdkError, - >; - - async fn get_text_file(&self, bucket: &str, prefix: &str) -> anyhow::Result; - - async fn list_all_objects(&self, bucket: &str, prefix: &str) -> anyhow::Result>; -} +#[cfg(test)] +pub use MockS3ClientImpl as S3Client; +#[cfg(not(test))] +pub use S3ClientImpl as S3Client; #[derive(Clone, Debug)] -pub struct S3Client { +pub struct S3ClientImpl { client: aws_sdk_s3::Client, } -impl S3Client { - pub fn new(aws_config: &aws_types::sdk_config::SdkConfig) -> Self { +#[cfg_attr(test, mockall::automock)] +impl S3ClientImpl { + pub fn new(s3_config: aws_sdk_s3::Config) -> Self { Self { - client: aws_sdk_s3::Client::new(aws_config), + client: aws_sdk_s3::Client::from_conf(s3_config), } } -} -#[async_trait::async_trait] -impl S3ClientTrait for S3Client { - async fn get_object( + pub async fn get_object( &self, bucket: &str, prefix: &str, @@ -58,7 +34,7 @@ impl S3ClientTrait for S3Client { .await } - async fn list_objects( + pub async fn list_objects( &self, bucket: &str, prefix: &str, @@ -81,7 +57,7 @@ impl S3ClientTrait for S3Client { builder.send().await } - async fn get_text_file(&self, bucket: &str, prefix: &str) -> anyhow::Result { + pub async fn get_text_file(&self, bucket: &str, prefix: &str) -> anyhow::Result { let object = self.get_object(bucket, prefix).await?; let bytes = object.body.collect().await?; @@ -89,7 +65,11 @@ impl S3ClientTrait for S3Client { Ok(String::from_utf8(bytes.to_vec())?) } - async fn list_all_objects(&self, bucket: &str, prefix: &str) -> anyhow::Result> { + pub async fn list_all_objects( + &self, + bucket: &str, + prefix: &str, + ) -> anyhow::Result> { let mut results = vec![]; let mut continuation_token: Option = None; diff --git a/block-streamer/src/server/block_streamer_service.rs b/block-streamer/src/server/block_streamer_service.rs index 79fd1b541..6fffaadec 100644 --- a/block-streamer/src/server/block_streamer_service.rs +++ b/block-streamer/src/server/block_streamer_service.rs @@ -27,20 +27,23 @@ impl TryFrom for crate::rules::Status { } pub struct BlockStreamerService { - redis_connection_manager: crate::redis::ConnectionManager, - delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + redis_client: std::sync::Arc, + delta_lake_client: std::sync::Arc, + lake_s3_config: aws_sdk_s3::Config, chain_id: ChainId, block_streams: Mutex>, } impl BlockStreamerService { pub fn new( - redis_connection_manager: crate::redis::ConnectionManager, - delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + redis_client: std::sync::Arc, + delta_lake_client: std::sync::Arc, + lake_s3_config: aws_sdk_s3::Config, ) -> Self { Self { - redis_connection_manager, + redis_client, delta_lake_client, + lake_s3_config, chain_id: ChainId::Mainnet, block_streams: Mutex::new(HashMap::new()), } @@ -118,8 +121,9 @@ impl blockstreamer::block_streamer_server::BlockStreamer for BlockStreamerServic block_stream .start( request.start_block_height, - self.redis_connection_manager.clone(), + self.redis_client.clone(), self.delta_lake_client.clone(), + self.lake_s3_config.clone(), ) .map_err(|_| Status::internal("Failed to start block stream"))?; @@ -188,3 +192,126 @@ impl blockstreamer::block_streamer_server::BlockStreamer for BlockStreamerServic Ok(Response::new(response)) } } + +#[cfg(test)] +mod tests { + use super::*; + + use blockstreamer::block_streamer_server::BlockStreamer; + + fn create_block_streamer_service() -> BlockStreamerService { + let mut mock_delta_lake_client = crate::delta_lake_client::DeltaLakeClient::default(); + mock_delta_lake_client + .expect_get_latest_block_metadata() + .returning(|| { + Ok(crate::delta_lake_client::LatestBlockMetadata { + last_indexed_block: "107503703".to_string(), + processed_at_utc: "".to_string(), + first_indexed_block: "".to_string(), + last_indexed_block_date: "".to_string(), + first_indexed_block_date: "".to_string(), + }) + }); + mock_delta_lake_client + .expect_list_matching_block_heights() + .returning(|_, _| Ok(vec![])); + + let mut mock_redis_client = crate::redis::RedisClient::default(); + mock_redis_client + .expect_xadd::() + .returning(|_, _| Ok(())); + + let lake_s3_config = crate::test_utils::create_mock_lake_s3_config(&[107503704]); + + BlockStreamerService::new( + std::sync::Arc::new(mock_redis_client), + std::sync::Arc::new(mock_delta_lake_client), + lake_s3_config, + ) + } + + #[tokio::test] + async fn starts_a_block_stream() { + let block_streamer_service = create_block_streamer_service(); + + { + let lock = block_streamer_service.get_block_streams_lock().unwrap(); + assert_eq!(lock.len(), 0); + } + + block_streamer_service + .start_stream(Request::new(StartStreamRequest { + start_block_height: 0, + account_id: "morgs.near".to_string(), + function_name: "test".to_string(), + rule: Some(start_stream_request::Rule::ActionAnyRule(ActionAnyRule { + affected_account_id: "queryapi.dataplatform.near".to_string(), + status: 0, + })), + })) + .await + .unwrap(); + + let lock = block_streamer_service.get_block_streams_lock().unwrap(); + assert_eq!(lock.len(), 1); + } + + #[tokio::test] + async fn stops_a_block_stream() { + let block_streamer_service = create_block_streamer_service(); + + assert_eq!( + block_streamer_service + .list_streams(Request::new(ListStreamsRequest {})) + .await + .unwrap() + .into_inner() + .streams + .len(), + 0 + ); + + block_streamer_service + .start_stream(Request::new(StartStreamRequest { + start_block_height: 0, + account_id: "morgs.near".to_string(), + function_name: "test".to_string(), + rule: Some(start_stream_request::Rule::ActionAnyRule(ActionAnyRule { + affected_account_id: "queryapi.dataplatform.near".to_string(), + status: 0, + })), + })) + .await + .unwrap(); + + assert_eq!( + block_streamer_service + .list_streams(Request::new(ListStreamsRequest {})) + .await + .unwrap() + .into_inner() + .streams + .len(), + 1 + ); + + block_streamer_service + .stop_stream(Request::new(StopStreamRequest { + // ID for indexer morgs.near/test + stream_id: "16210176318434468568".to_string(), + })) + .await + .unwrap(); + + assert_eq!( + block_streamer_service + .list_streams(Request::new(ListStreamsRequest {})) + .await + .unwrap() + .into_inner() + .streams + .len(), + 0 + ); + } +} diff --git a/block-streamer/src/server/mod.rs b/block-streamer/src/server/mod.rs index 544482dda..f5855cbb3 100644 --- a/block-streamer/src/server/mod.rs +++ b/block-streamer/src/server/mod.rs @@ -5,8 +5,9 @@ pub mod blockstreamer { } pub async fn init( - redis_connection_manager: crate::redis::ConnectionManager, - delta_lake_client: crate::delta_lake_client::DeltaLakeClient, + redis_client: std::sync::Arc, + delta_lake_client: std::sync::Arc, + lake_s3_config: aws_sdk_s3::Config, ) -> anyhow::Result<()> { let addr = "[::1]:10000" .parse() @@ -15,9 +16,11 @@ pub async fn init( tracing::info!("Starting RPC server at {}", addr); let block_streamer_service = block_streamer_service::BlockStreamerService::new( - redis_connection_manager, + redis_client, delta_lake_client, + lake_s3_config, ); + let block_streamer_server = blockstreamer::block_streamer_server::BlockStreamerServer::new(block_streamer_service); diff --git a/block-streamer/src/test_utils.rs b/block-streamer/src/test_utils.rs new file mode 100644 index 000000000..a4af388e8 --- /dev/null +++ b/block-streamer/src/test_utils.rs @@ -0,0 +1,175 @@ +use aws_smithy_runtime::client::http::test_util::{ReplayEvent, StaticReplayClient}; +use aws_smithy_types::body::SdkBody; +use near_lake_framework::near_indexer_primitives; + +fn generate_replay_events_for_block(block_height: u64) -> Vec { + vec![ + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/?list-type=2&prefix={block_height:0>12}")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/{block_height:0>12}/list_objects.xml", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap(), + ), + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/{block_height:0>12}/block.json")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/{block_height:0>12}/block.json", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap(), + ), + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/{block_height:0>12}/shard_0.json")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/{block_height:0>12}/shard_0.json", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap(), + ), + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/{block_height:0>12}/shard_1.json")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/{block_height:0>12}/shard_1.json", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap(), + ), + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/{block_height:0>12}/shard_2.json")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/{block_height:0>12}/shard_2.json", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap(), + ), + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/{block_height:0>12}/shard_3.json")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/{block_height:0>12}/shard_3.json", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap(), + ) + ] +} + +/// Responds with an invalid block - forcing `near_lake_framework` to exit +fn generate_stop_replay_event_for_block(block_height: u64) -> Vec { + vec![ + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri(format!("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/?list-type=2&prefix={block_height:0>12}")) + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::from(std::fs::read_to_string(format!("{}/data/invalid/list_objects.xml", env!("CARGO_MANIFEST_DIR"))).unwrap())) + .unwrap() + ), + ReplayEvent::new( + http::Request::builder() + .method("GET") + .uri("https://near-lake-data-mainnet.s3.eu-central-1.amazonaws.com/invalid/block.json") + .body(SdkBody::empty()) + .unwrap(), + http::Response::builder() + .status(200) + .body(SdkBody::empty()) + .unwrap(), + ), + ] +} + +fn generate_replay_events_for_blocks(block_heights: &[u64]) -> Vec { + let mut events = Vec::new(); + for block_height in block_heights { + events.extend(generate_replay_events_for_block(*block_height)); + } + events.extend(generate_stop_replay_event_for_block( + *block_heights.last().unwrap() + 1, + )); + events +} + +/// Creates `S3Config` with a mock HTTP client that simulates responses from S3. `block_heights` +/// will be read from the top-level `data/` directory. `near_lake_framework` verifies the order of +/// blocks, therefore passed `block_heights` _must_ be in the order which they were finalized. +pub fn create_mock_lake_s3_config(block_heights: &[u64]) -> aws_sdk_s3::Config { + let replay_events = generate_replay_events_for_blocks(block_heights); + + let replay_client = StaticReplayClient::new(replay_events); + + aws_sdk_s3::Config::builder() + .behavior_version_latest() + .region(aws_sdk_s3::config::Region::new("eu-central-1")) + .http_client(replay_client) + .build() +} + +pub fn get_streamer_message(block_height: u64) -> near_indexer_primitives::StreamerMessage { + let block: near_indexer_primitives::views::BlockView = serde_json::from_slice( + &std::fs::read(format!( + "{}/data/{block_height:0>12}/block.json", + env!("CARGO_MANIFEST_DIR") + )) + .unwrap(), + ) + .unwrap(); + let shards: Vec = vec![ + serde_json::from_slice( + &std::fs::read(format!( + "{}/data/{block_height:0>12}/shard_0.json", + env!("CARGO_MANIFEST_DIR") + )) + .unwrap(), + ) + .unwrap(), + serde_json::from_slice( + &std::fs::read(format!( + "{}/data/{block_height:0>12}/shard_1.json", + env!("CARGO_MANIFEST_DIR") + )) + .unwrap(), + ) + .unwrap(), + serde_json::from_slice( + &std::fs::read(format!( + "{}/data/{block_height:0>12}/shard_2.json", + env!("CARGO_MANIFEST_DIR") + )) + .unwrap(), + ) + .unwrap(), + serde_json::from_slice( + &std::fs::read(format!( + "{}/data/{block_height:0>12}/shard_3.json", + env!("CARGO_MANIFEST_DIR") + )) + .unwrap(), + ) + .unwrap(), + ]; + + near_indexer_primitives::StreamerMessage { block, shards } +} From 663d4bc81ec1e21f4802ae4b1d13b358dc0fd596 Mon Sep 17 00:00:00 2001 From: Roshaan Siddiqui Date: Thu, 14 Dec 2023 16:14:59 -0600 Subject: [PATCH 07/10] feat: support multiple contract filters (#451) This PR enables support for multiple contract filter support. --- .../src/components/Form/IndexerConfigOptionsInputGroup.jsx | 4 ++-- frontend/src/components/Modals/ForkIndexerModal.jsx | 1 - frontend/src/components/Modals/PublishModal.jsx | 4 ++-- frontend/src/utils/validators.js | 4 ++++ 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/Form/IndexerConfigOptionsInputGroup.jsx b/frontend/src/components/Form/IndexerConfigOptionsInputGroup.jsx index c728d0e9a..c10cf2487 100644 --- a/frontend/src/components/Form/IndexerConfigOptionsInputGroup.jsx +++ b/frontend/src/components/Form/IndexerConfigOptionsInputGroup.jsx @@ -2,7 +2,7 @@ import React, { useContext, useState, useEffect } from "react"; import { InputGroup, Alert } from "react-bootstrap"; import Form from "react-bootstrap/Form"; import { IndexerDetailsContext } from '../../contexts/IndexerDetailsContext'; -import { validateContractId } from "../../utils/validators"; +import { validateContractIds } from "../../utils/validators"; const GENESIS_BLOCK_HEIGHT = 9820210; const IndexerConfigOptions = ({ updateConfig }) => { const { indexerDetails, showPublishModal, isCreateNewIndexer, latestHeight } = useContext(IndexerDetailsContext); @@ -31,7 +31,7 @@ const IndexerConfigOptions = ({ updateConfig }) => { function handleSetContractFilter(e) { const contractFilter = e.target.value; setContractFilter(contractFilter); - const isContractFilterValid = validateContractId(contractFilter); + const isContractFilterValid = validateContractIds(contractFilter); setIsContractFilterValid(isContractFilterValid); } diff --git a/frontend/src/components/Modals/ForkIndexerModal.jsx b/frontend/src/components/Modals/ForkIndexerModal.jsx index 71b7cb37b..59a9ec49c 100644 --- a/frontend/src/components/Modals/ForkIndexerModal.jsx +++ b/frontend/src/components/Modals/ForkIndexerModal.jsx @@ -2,7 +2,6 @@ import React, { useContext, useState } from "react"; import { Button, Modal, Alert, InputGroup, Form } from "react-bootstrap"; import IndexerConfigOptions from "../Form/IndexerConfigOptionsInputGroup"; import { IndexerDetailsContext } from "../../contexts/IndexerDetailsContext"; -import { validateContractId } from "../../utils/validators"; export const ForkIndexerModal = ({ registerFunction, forkIndexer }) => { const { diff --git a/frontend/src/components/Modals/PublishModal.jsx b/frontend/src/components/Modals/PublishModal.jsx index e95756e7d..fdfdb8c6d 100644 --- a/frontend/src/components/Modals/PublishModal.jsx +++ b/frontend/src/components/Modals/PublishModal.jsx @@ -2,7 +2,7 @@ import React, { useContext, useState } from "react"; import { Button, Modal, Alert } from "react-bootstrap"; import IndexerConfigOptions from "../Form/IndexerConfigOptionsInputGroup"; import { IndexerDetailsContext } from '../../contexts/IndexerDetailsContext'; -import { validateContractId } from "../../utils/validators"; +import { validateContractIds } from "../../utils/validators"; export const PublishModal = ({ registerFunction, @@ -30,7 +30,7 @@ export const PublishModal = ({ return } - if (!validateContractId(indexerConfig.filter)) { + if (!validateContractIds(indexerConfig.filter)) { setError( () => "Please provide a valid contract name") return } diff --git a/frontend/src/utils/validators.js b/frontend/src/utils/validators.js index 72005b16f..f16506ac7 100644 --- a/frontend/src/utils/validators.js +++ b/frontend/src/utils/validators.js @@ -8,3 +8,7 @@ export function validateContractId(accountId) { ); } +export function validateContractIds(accountIds) { + const ids = accountIds.split(',').map(id => id.trim()); + return ids.every(accountId => validateContractId(accountId)); +} From af38be332f7cd6ac7a000f80903ef31f4af70ec0 Mon Sep 17 00:00:00 2001 From: Morgan McCauley Date: Fri, 15 Dec 2023 15:02:43 +1300 Subject: [PATCH 08/10] refactor: Extract registry types in to own crate (#453) This PR extract the types exposed by the registry contract in to its own reusable crate: `registry_types`. This was done to avoid the duplication across our different service which; fetch the JSON, and then construct the Rust types. ## `registry_types` crate The registry types were already partially shared between Coordinator and the registry, but I've expanded on this to include all types rather than just a subset. I've created a new crate, rather than using the existing `./indexer/indexer_rule_type` crate as some packages needed to be upgraded, which caused conflicts across the `indexer/` cargo workspace - which seemed unnecessary to fix given that it is being deprecated. ## Registry contract updates `near-sdk` version `4.1.1` is no longer compilable because it depends on a non-existent crate, hence the upgrade to `5.0.0-alpha.1`. Since I was already making changes here, I decided to remove the migration related code as it is no longer needed. ## Consuming `registry_types` With the shared types in place, I've updated `block-streamer/` to use them, removing the existing types which it duplicates. I also went ahead and removed all types which were unused (left over from Alertexer). `indexer_rule_type` depends on `near-sdk` version `4.1.1` (the broken one), and since it's no longer shared, I removed that dependency so that it can compile again. Relates to https://github.com/near/queryapi/issues/421 --- block-streamer/Cargo.lock | 104 +- block-streamer/Cargo.toml | 2 + block-streamer/src/block_stream.rs | 12 +- block-streamer/src/delta_lake_client.rs | 3 +- block-streamer/src/indexer_config.rs | 11 +- block-streamer/src/rules/matcher.rs | 4 +- block-streamer/src/rules/mod.rs | 57 +- block-streamer/src/rules/outcomes_reducer.rs | 9 +- block-streamer/src/rules/types.rs | 93 + block-streamer/src/rules/types/events.rs | 20 - .../src/rules/types/indexer_rule_match.rs | 146 - block-streamer/src/rules/types/mod.rs | 3 - .../src/rules/types/transactions.rs | 20 - .../src/server/block_streamer_service.rs | 28 +- indexer/Cargo.lock | 644 +--- indexer/Cargo.toml | 2 +- indexer/indexer_rule_type/Cargo.lock | 1992 +++++++++-- indexer/indexer_rule_type/Cargo.toml | 10 +- indexer/indexer_rule_type/src/indexer_rule.rs | 7 - indexer/indexer_rules_engine/Cargo.toml | 2 +- registry/contract/Cargo.lock | 2691 +++++++++++--- registry/contract/Cargo.toml | 5 +- registry/contract/src/lib.rs | 397 +-- registry/types/Cargo.lock | 3174 +++++++++++++++++ registry/types/Cargo.toml | 15 + registry/types/src/lib.rs | 75 + 26 files changed, 7548 insertions(+), 1978 deletions(-) create mode 100644 block-streamer/src/rules/types.rs delete mode 100644 block-streamer/src/rules/types/events.rs delete mode 100644 block-streamer/src/rules/types/indexer_rule_match.rs delete mode 100644 block-streamer/src/rules/types/mod.rs delete mode 100644 block-streamer/src/rules/types/transactions.rs create mode 100644 registry/types/Cargo.lock create mode 100644 registry/types/Cargo.toml create mode 100644 registry/types/src/lib.rs diff --git a/block-streamer/Cargo.lock b/block-streamer/Cargo.lock index 5117565e3..6198e3dfd 100644 --- a/block-streamer/Cargo.lock +++ b/block-streamer/Cargo.lock @@ -651,7 +651,7 @@ dependencies = [ "aws-sdk-s3", "aws-smithy-runtime", "aws-smithy-types", - "borsh", + "borsh 0.10.3", "chrono", "futures", "http", @@ -659,6 +659,7 @@ dependencies = [ "near-lake-framework", "prost", "redis", + "registry-types", "serde", "serde_json", "tokio", @@ -677,10 +678,20 @@ version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" dependencies = [ - "borsh-derive", + "borsh-derive 0.10.3", "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9897ef0f1bd2362169de6d7e436ea2237dc1085d7d1e4db75f4be34d86f309d1" +dependencies = [ + "borsh-derive 1.2.1", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.10.3" @@ -689,11 +700,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478b41ff04256c5c8330f3dfdaaae2a5cc976a8e75088bafa4625b0d0208de8c" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.39", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.10.3" @@ -784,6 +809,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.31" @@ -1816,7 +1847,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc0cb40869cab7f5232f934f45db35bffe0f2d2a7cb0cd0346202fbe4ebf2dd7" dependencies = [ - "borsh", + "borsh 0.10.3", "serde", ] @@ -1839,7 +1870,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ff6b382b626e7e0cd372d027c6672ac97b4b6ee6114288c9e58d8180b935d315" dependencies = [ "blake2", - "borsh", + "borsh 0.10.3", "bs58", "c2-chacha", "curve25519-dalek", @@ -1910,7 +1941,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05f7051aaf199adc4d068620fca6d5f70f906a1540d03a8bb3701271f8881835" dependencies = [ "arbitrary", - "borsh", + "borsh 0.10.3", "bytesize", "cfg-if", "chrono", @@ -1948,7 +1979,7 @@ checksum = "775fec19ef51a341abdbf792a9dda5b4cb89f488f681b2fd689b9321d24db47b" dependencies = [ "arbitrary", "base64", - "borsh", + "borsh 0.10.3", "bs58", "derive_more", "enum-map", @@ -1997,7 +2028,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec545d1bede0579e7c15dd2dce9b998dc975c52f2165702ff40bec7ff69728bb" dependencies = [ - "borsh", + "borsh 0.10.3", "near-account-id", "near-rpc-error-macro", "serde", @@ -2277,6 +2308,16 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -2534,6 +2575,15 @@ version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" +[[package]] +name = "registry-types" +version = "0.1.0" +dependencies = [ + "borsh 1.2.1", + "near-primitives", + "serde", +] + [[package]] name = "rfc6979" version = "0.3.1" @@ -3008,6 +3058,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "sync_wrapper" version = "0.1.2" @@ -3191,6 +3253,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.10.2" @@ -3625,6 +3704,15 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "winnow" +version = "0.5.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" +dependencies = [ + "memchr", +] + [[package]] name = "xmlparser" version = "0.13.6" diff --git a/block-streamer/Cargo.toml b/block-streamer/Cargo.toml index aaa6881b4..768929cc0 100644 --- a/block-streamer/Cargo.toml +++ b/block-streamer/Cargo.toml @@ -24,6 +24,8 @@ tokio-stream = "0.1.14" tonic = "0.10.2" wildmatch = "2.1.1" +registry-types = { path = "../registry/types" } + near-lake-framework = "0.7.4" [build-dependencies] diff --git a/block-streamer/src/block_stream.rs b/block-streamer/src/block_stream.rs index 235bf359a..630ac47ac 100644 --- a/block-streamer/src/block_stream.rs +++ b/block-streamer/src/block_stream.rs @@ -3,8 +3,8 @@ use near_lake_framework::near_indexer_primitives; use tokio::task::JoinHandle; use crate::indexer_config::IndexerConfig; -use crate::rules::types::indexer_rule_match::ChainId; -use crate::rules::MatchingRule; +use crate::rules::types::ChainId; +use registry_types::MatchingRule; /// The number of blocks to prefetch within `near-lake-framework`. The internal default is 100, but /// we need this configurable for testing purposes. @@ -251,11 +251,11 @@ mod tests { ) .unwrap(), function_name: "test".to_string(), - indexer_rule: crate::rules::IndexerRule { - indexer_rule_kind: crate::rules::IndexerRuleKind::Action, - matching_rule: crate::rules::MatchingRule::ActionAny { + indexer_rule: registry_types::IndexerRule { + indexer_rule_kind: registry_types::IndexerRuleKind::Action, + matching_rule: registry_types::MatchingRule::ActionAny { affected_account_id: "queryapi.dataplatform.near".to_string(), - status: crate::rules::Status::Success, + status: registry_types::Status::Success, }, name: None, id: None, diff --git a/block-streamer/src/delta_lake_client.rs b/block-streamer/src/delta_lake_client.rs index bb436130d..ae02d6c20 100644 --- a/block-streamer/src/delta_lake_client.rs +++ b/block-streamer/src/delta_lake_client.rs @@ -1,9 +1,10 @@ -use crate::rules::types::indexer_rule_match::ChainId; use anyhow::Context; use chrono::TimeZone; use futures::future::try_join_all; use near_lake_framework::near_indexer_primitives; +use crate::rules::types::ChainId; + const DELTA_LAKE_BUCKET: &str = "near-delta-lake"; const MAX_S3_RETRY_COUNT: u8 = 20; const INDEXED_ACTIONS_PREFIX: &str = "silver/accounts/action_receipt_actions/metadata"; diff --git a/block-streamer/src/indexer_config.rs b/block-streamer/src/indexer_config.rs index eba4485b0..aebd7bb2c 100644 --- a/block-streamer/src/indexer_config.rs +++ b/block-streamer/src/indexer_config.rs @@ -2,16 +2,9 @@ use near_lake_framework::near_indexer_primitives::types::AccountId; use std::collections::hash_map::DefaultHasher; use std::hash::{Hash, Hasher}; -use crate::rules::IndexerRule; +use registry_types::IndexerRule; -#[derive( - borsh::BorshSerialize, - borsh::BorshDeserialize, - serde::Serialize, - serde::Deserialize, - Clone, - Debug, -)] +#[derive(serde::Serialize, serde::Deserialize, Clone, Debug)] pub struct IndexerConfig { pub account_id: AccountId, pub function_name: String, diff --git a/block-streamer/src/rules/matcher.rs b/block-streamer/src/rules/matcher.rs index ee1149a4d..8c1684caa 100644 --- a/block-streamer/src/rules/matcher.rs +++ b/block-streamer/src/rules/matcher.rs @@ -2,9 +2,9 @@ use near_lake_framework::near_indexer_primitives::{ views::{ActionView, ExecutionStatusView, ReceiptEnumView}, IndexerExecutionOutcomeWithReceipt, }; +use registry_types::{MatchingRule, Status}; -use crate::rules::types::events::Event; -use crate::rules::{MatchingRule, Status}; +use crate::rules::types::Event; pub fn matches( matching_rule: &MatchingRule, diff --git a/block-streamer/src/rules/mod.rs b/block-streamer/src/rules/mod.rs index a5b0e9292..5c5058514 100644 --- a/block-streamer/src/rules/mod.rs +++ b/block-streamer/src/rules/mod.rs @@ -3,62 +3,9 @@ pub mod outcomes_reducer; pub mod types; use near_lake_framework::near_indexer_primitives::StreamerMessage; -use types::indexer_rule_match::{ChainId, IndexerRuleMatch}; +use registry_types::{IndexerRule, MatchingRule}; -#[cfg(not(feature = "near-sdk"))] -use borsh::{self, BorshDeserialize, BorshSerialize}; -#[cfg(not(feature = "near-sdk"))] -use serde::{Deserialize, Serialize}; - -#[cfg(feature = "near-sdk")] -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -#[cfg(feature = "near-sdk")] -use near_sdk::serde::{Deserialize, Serialize}; - -#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] -pub struct IndexerRule { - pub indexer_rule_kind: IndexerRuleKind, - pub matching_rule: MatchingRule, - pub id: Option, - pub name: Option, -} - -#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] -pub enum IndexerRuleKind { - Action, - Event, - AnyBlock, - Shard, -} -// future: ComposedRuleKind for multiple actions or events - -#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] -#[serde(rename_all = "SCREAMING_SNAKE_CASE")] -pub enum Status { - Any, - Success, - Fail, -} - -#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] -#[serde(tag = "rule", rename_all = "SCREAMING_SNAKE_CASE")] -pub enum MatchingRule { - ActionAny { - affected_account_id: String, - status: Status, - }, - ActionFunctionCall { - affected_account_id: String, - status: Status, - function: String, - }, - Event { - contract_account_id: String, - standard: String, - version: String, - event: String, - }, -} +use types::{ChainId, IndexerRuleMatch}; pub fn reduce_indexer_rule_matches( indexer_rule: &IndexerRule, diff --git a/block-streamer/src/rules/outcomes_reducer.rs b/block-streamer/src/rules/outcomes_reducer.rs index 463e57bba..934eda37c 100644 --- a/block-streamer/src/rules/outcomes_reducer.rs +++ b/block-streamer/src/rules/outcomes_reducer.rs @@ -1,6 +1,6 @@ use crate::rules::matcher; -use crate::rules::types::events::Event; -use crate::rules::types::indexer_rule_match::{ChainId, IndexerRuleMatch, IndexerRuleMatchPayload}; +use crate::rules::types::Event; +use crate::rules::types::{ChainId, IndexerRuleMatch, IndexerRuleMatchPayload}; use crate::rules::{IndexerRule, MatchingRule}; use near_lake_framework::near_indexer_primitives::{ IndexerExecutionOutcomeWithReceipt, StreamerMessage, @@ -115,9 +115,10 @@ fn build_indexer_rule_match_payload( #[cfg(test)] mod tests { + use registry_types::{IndexerRule, IndexerRuleKind, MatchingRule, Status}; + use crate::rules::outcomes_reducer::reduce_indexer_rule_matches_from_outcomes; - use crate::rules::types::indexer_rule_match::{ChainId, IndexerRuleMatch}; - use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule, Status}; + use crate::rules::types::{ChainId, IndexerRuleMatch}; #[tokio::test] async fn match_wildcard_no_match() { diff --git a/block-streamer/src/rules/types.rs b/block-streamer/src/rules/types.rs new file mode 100644 index 000000000..b61eff208 --- /dev/null +++ b/block-streamer/src/rules/types.rs @@ -0,0 +1,93 @@ +use std::fmt; + +pub type TransactionHashString = String; +pub type ReceiptIdString = String; +pub type BlockHashString = String; + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub struct IndexerRuleMatch { + pub chain_id: ChainId, + pub indexer_rule_id: Option, + pub indexer_rule_name: Option, + pub payload: IndexerRuleMatchPayload, + pub block_height: u64, +} + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub enum IndexerRuleMatchPayload { + Actions { + block_hash: BlockHashString, + receipt_id: ReceiptIdString, + transaction_hash: Option, + }, + Events { + block_hash: BlockHashString, + receipt_id: ReceiptIdString, + transaction_hash: Option, + event: String, + standard: String, + version: String, + data: Option, + }, + StateChanges { + block_hash: BlockHashString, + receipt_id: Option, + transaction_hash: Option, + }, +} + +#[derive( + borsh::BorshSerialize, + borsh::BorshDeserialize, + serde::Serialize, + serde::Deserialize, + Clone, + Debug, +)] +pub enum ChainId { + Mainnet, + Testnet, +} +impl fmt::Display for ChainId { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self { + ChainId::Mainnet => write!(f, "mainnet"), + ChainId::Testnet => write!(f, "testnet"), + } + } +} + +#[derive(serde::Serialize, serde::Deserialize, Clone, Debug)] +pub struct Event { + pub event: String, + pub standard: String, + pub version: String, + pub data: Option, +} + +impl Event { + pub fn from_log(log: &str) -> anyhow::Result { + let prefix = "EVENT_JSON:"; + if !log.starts_with(prefix) { + anyhow::bail!("log message doesn't start from required prefix"); + } + + Ok(serde_json::from_str::<'_, Self>( + log[prefix.len()..].trim(), + )?) + } +} diff --git a/block-streamer/src/rules/types/events.rs b/block-streamer/src/rules/types/events.rs deleted file mode 100644 index 68bb176d0..000000000 --- a/block-streamer/src/rules/types/events.rs +++ /dev/null @@ -1,20 +0,0 @@ -#[derive(serde::Serialize, serde::Deserialize, Clone, Debug)] -pub struct Event { - pub event: String, - pub standard: String, - pub version: String, - pub data: Option, -} - -impl Event { - pub fn from_log(log: &str) -> anyhow::Result { - let prefix = "EVENT_JSON:"; - if !log.starts_with(prefix) { - anyhow::bail!("log message doesn't start from required prefix"); - } - - Ok(serde_json::from_str::<'_, Self>( - log[prefix.len()..].trim(), - )?) - } -} diff --git a/block-streamer/src/rules/types/indexer_rule_match.rs b/block-streamer/src/rules/types/indexer_rule_match.rs deleted file mode 100644 index 985f925a2..000000000 --- a/block-streamer/src/rules/types/indexer_rule_match.rs +++ /dev/null @@ -1,146 +0,0 @@ -use std::fmt; - -pub type TransactionHashString = String; -pub type ReceiptIdString = String; -pub type BlockHashString = String; - -#[derive( - borsh::BorshSerialize, - borsh::BorshDeserialize, - serde::Serialize, - serde::Deserialize, - Clone, - Debug, -)] -pub struct IndexerRuleMatch { - pub chain_id: ChainId, - pub indexer_rule_id: Option, - pub indexer_rule_name: Option, - pub payload: IndexerRuleMatchPayload, - pub block_height: u64, -} - -impl IndexerRuleMatch { - pub fn explorer_link(&self) -> String { - match self.chain_id { - ChainId::Testnet => { - if let Some(tx_hash) = self.payload.transaction_hash() { - if let Some(receipt_id) = self.payload.receipt_id() { - format!( - "https://explorer.testnet.near.org/transactions/{}#{}", - tx_hash, receipt_id, - ) - } else { - format!("https://explorer.testnet.near.org/transactions/{}", tx_hash) - } - } else { - format!( - "https://explorer.testnet.near.org/block/{}", - self.payload.block_hash() - ) - } - } - ChainId::Mainnet => { - if let Some(tx_hash) = self.payload.transaction_hash() { - if let Some(receipt_id) = self.payload.receipt_id() { - format!( - "https://explorer.near.org/transactions/{}#{}", - tx_hash, receipt_id, - ) - } else { - format!("https://explorer.near.org/transactions/{}", tx_hash) - } - } else { - format!( - "https://explorer.near.org/block/{}", - self.payload.block_hash() - ) - } - } - } - } -} - -#[derive( - borsh::BorshSerialize, - borsh::BorshDeserialize, - serde::Serialize, - serde::Deserialize, - Clone, - Debug, -)] -pub enum IndexerRuleMatchPayload { - Actions { - block_hash: BlockHashString, - receipt_id: ReceiptIdString, - transaction_hash: Option, - }, - Events { - block_hash: BlockHashString, - receipt_id: ReceiptIdString, - transaction_hash: Option, - event: String, - standard: String, - version: String, - data: Option, - }, - StateChanges { - block_hash: BlockHashString, - receipt_id: Option, - transaction_hash: Option, - }, -} - -impl IndexerRuleMatchPayload { - pub fn block_hash(&self) -> BlockHashString { - match self { - Self::Actions { block_hash, .. } - | Self::Events { block_hash, .. } - | Self::StateChanges { block_hash, .. } => block_hash.to_string(), - } - } - - pub fn receipt_id(&self) -> Option { - match self { - Self::Actions { receipt_id, .. } | Self::Events { receipt_id, .. } => { - Some(receipt_id.to_string()) - } - Self::StateChanges { receipt_id, .. } => receipt_id.clone(), - } - } - - pub fn transaction_hash(&self) -> Option { - match self { - Self::Actions { - transaction_hash, .. - } - | Self::Events { - transaction_hash, .. - } - | Self::StateChanges { - transaction_hash, .. - } => transaction_hash.clone(), - } - } -} - -#[derive( - borsh::BorshSerialize, - borsh::BorshDeserialize, - serde::Serialize, - serde::Deserialize, - Clone, - Debug, -)] -pub enum ChainId { - Mainnet, - Testnet, -} -impl fmt::Display for ChainId { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - match self { - ChainId::Mainnet => write!(f, "mainnet"), - ChainId::Testnet => write!(f, "testnet"), - } - } -} diff --git a/block-streamer/src/rules/types/mod.rs b/block-streamer/src/rules/types/mod.rs deleted file mode 100644 index d82357aff..000000000 --- a/block-streamer/src/rules/types/mod.rs +++ /dev/null @@ -1,3 +0,0 @@ -pub mod events; -pub mod indexer_rule_match; -pub mod transactions; diff --git a/block-streamer/src/rules/types/transactions.rs b/block-streamer/src/rules/types/transactions.rs deleted file mode 100644 index 7f9ddd30b..000000000 --- a/block-streamer/src/rules/types/transactions.rs +++ /dev/null @@ -1,20 +0,0 @@ -use borsh::{BorshDeserialize, BorshSerialize}; -use near_lake_framework::near_indexer_primitives::{views, IndexerTransactionWithOutcome}; -use serde::{Deserialize, Serialize}; - -#[derive(BorshSerialize, BorshDeserialize, Serialize, Deserialize, Debug, Clone)] -pub struct TransactionDetails { - pub transaction: views::SignedTransactionView, - pub receipts: Vec, - pub execution_outcomes: Vec, -} - -impl TransactionDetails { - pub fn from_indexer_tx(transaction: IndexerTransactionWithOutcome) -> Self { - Self { - transaction: transaction.transaction.clone(), - receipts: vec![], - execution_outcomes: vec![transaction.outcome.execution_outcome], - } - } -} diff --git a/block-streamer/src/server/block_streamer_service.rs b/block-streamer/src/server/block_streamer_service.rs index 6fffaadec..8cd9ce7b7 100644 --- a/block-streamer/src/server/block_streamer_service.rs +++ b/block-streamer/src/server/block_streamer_service.rs @@ -5,27 +5,14 @@ use near_lake_framework::near_indexer_primitives; use tonic::{Request, Response, Status}; use crate::indexer_config::IndexerConfig; -use crate::rules::types::indexer_rule_match::ChainId; -use crate::rules::{IndexerRule, IndexerRuleKind, MatchingRule}; +use crate::rules::types::ChainId; +use registry_types::{IndexerRule, IndexerRuleKind, MatchingRule}; use crate::block_stream; use crate::server::blockstreamer; use blockstreamer::*; -impl TryFrom for crate::rules::Status { - type Error = (); - - fn try_from(status: i32) -> Result { - match status { - 0 => Ok(crate::rules::Status::Success), - 1 => Ok(crate::rules::Status::Fail), - 2 => Ok(crate::rules::Status::Any), - _ => Err(()), - } - } -} - pub struct BlockStreamerService { redis_client: std::sync::Arc, delta_lake_client: std::sync::Arc, @@ -73,9 +60,14 @@ impl blockstreamer::block_streamer_server::BlockStreamer for BlockStreamerServic let matching_rule = match rule { start_stream_request::Rule::ActionAnyRule(action_any_rule) => { let affected_account_id = action_any_rule.affected_account_id; - let status = action_any_rule.status.try_into().map_err(|_| { - Status::invalid_argument("Invalid status value for ActionAnyRule") - })?; + let status = match action_any_rule.status { + 0 => Ok(registry_types::Status::Success), + 1 => Ok(registry_types::Status::Fail), + 2 => Ok(registry_types::Status::Any), + _ => Err(Status::invalid_argument( + "Invalid status value for ActionAnyRule", + )), + }?; MatchingRule::ActionAny { affected_account_id, diff --git a/indexer/Cargo.lock b/indexer/Cargo.lock index 5a9baf7e9..f1bad0866 100644 --- a/indexer/Cargo.lock +++ b/indexer/Cargo.lock @@ -2,12 +2,6 @@ # It is not intended for manual editing. version = 3 -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - [[package]] name = "actix" version = "0.13.0" @@ -178,7 +172,7 @@ dependencies = [ "ahash 0.7.6", "bytes", "bytestring", - "cfg-if 1.0.0", + "cfg-if", "cookie", "derive_more", "encoding_rs", @@ -246,7 +240,7 @@ version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", "version_check", ] @@ -320,24 +314,6 @@ version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - [[package]] name = "async-mutex" version = "1.4.0" @@ -758,12 +734,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "base64" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" - [[package]] name = "base64" version = "0.13.1" @@ -791,18 +761,6 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" -[[package]] -name = "bitvec" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - [[package]] name = "blake2" version = "0.9.2" @@ -832,63 +790,29 @@ dependencies = [ "generic-array", ] -[[package]] -name = "borsh" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" -dependencies = [ - "borsh-derive 0.9.3", - "hashbrown 0.11.2", -] - [[package]] name = "borsh" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" dependencies = [ - "borsh-derive 0.10.3", + "borsh-derive", "hashbrown 0.13.2", ] -[[package]] -name = "borsh-derive" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" -dependencies = [ - "borsh-derive-internal 0.9.3", - "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate 0.1.5", - "proc-macro2", - "syn 1.0.109", -] - [[package]] name = "borsh-derive" version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ - "borsh-derive-internal 0.10.3", - "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate 0.1.5", + "borsh-derive-internal", + "borsh-schema-derive-internal", + "proc-macro-crate", "proc-macro2", "syn 1.0.109", ] -[[package]] -name = "borsh-derive-internal" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "borsh-derive-internal" version = "0.10.3" @@ -900,17 +824,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "borsh-schema-derive-internal" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "borsh-schema-derive-internal" version = "0.10.3" @@ -955,12 +868,6 @@ version = "3.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - [[package]] name = "byteorder" version = "1.4.3" @@ -1053,12 +960,6 @@ dependencies = [ "jobserver", ] -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - [[package]] name = "cfg-if" version = "1.0.0" @@ -1210,7 +1111,7 @@ version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1219,7 +1120,7 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "crossbeam-utils", ] @@ -1229,7 +1130,7 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1478,12 +1379,6 @@ version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bb454f0228b18c7f4c3b0ebbee346ed9c52e7443b0999cd543ff3571205701d" -[[package]] -name = "dyn-clone" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" - [[package]] name = "easy-ext" version = "0.2.9" @@ -1525,7 +1420,7 @@ version = "0.8.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -1590,9 +1485,6 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", "static_assertions", ] @@ -1676,12 +1568,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "funty" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" - [[package]] name = "futures" version = "0.3.28" @@ -1787,7 +1673,7 @@ version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.9.0+wasi-snapshot-preview1", ] @@ -1798,7 +1684,7 @@ version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "wasi 0.11.0+wasi-snapshot-preview1", ] @@ -1828,15 +1714,6 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" -[[package]] -name = "hashbrown" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" -dependencies = [ - "ahash 0.7.6", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -2047,32 +1924,11 @@ dependencies = [ "unicode-normalization", ] -[[package]] -name = "impl-codec" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "indexer_rule_type" version = "0.1.0" dependencies = [ - "borsh 0.10.3", - "near-sdk", + "borsh", "serde", ] @@ -2081,7 +1937,7 @@ name = "indexer_rules_engine" version = "0.1.0" dependencies = [ "anyhow", - "borsh 0.10.3", + "borsh", "futures", "indexer_rule_type", "near-lake-framework", @@ -2107,7 +1963,7 @@ version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -2175,15 +2031,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41ee439ee368ba4a77ac70d04f14015415af8600d6c894dc1f11bd79758c57d5" -[[package]] -name = "keccak" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" -dependencies = [ - "cpufeatures", -] - [[package]] name = "language-tags" version = "0.3.2" @@ -2195,9 +2042,6 @@ name = "lazy_static" version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] [[package]] name = "libc" @@ -2254,7 +2098,7 @@ version = "0.4.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", ] [[package]] @@ -2290,12 +2134,6 @@ version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - [[package]] name = "mime" version = "0.3.17" @@ -2329,7 +2167,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "18d614ad23f9bb59119b8b5670a85c7ba92c5e9adf4385c81ea00c51c8be33d5" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "downcast", "fragile 1.2.2", "lazy_static", @@ -2344,7 +2182,7 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5dd4234635bca06fc96c7368d038061e0aae1b00a764dc817e900dc974e3deea" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "proc-macro2", "quote", "syn 1.0.109", @@ -2374,28 +2212,6 @@ dependencies = [ "tempfile", ] -[[package]] -name = "near-abi" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" -dependencies = [ - "borsh 0.9.3", - "schemars", - "semver", - "serde", -] - -[[package]] -name = "near-account-id" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d258582a1878e6db67400b0504a5099db85718d22c2e07f747fe1706ae7150" -dependencies = [ - "borsh 0.9.3", - "serde", -] - [[package]] name = "near-account-id" version = "0.16.1" @@ -2403,7 +2219,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "12791d0f273e04609010d68deb6e1cd940659ad420edfa2e48238117154f1d5b" dependencies = [ "arbitrary", - "borsh 0.10.3", + "borsh", "serde", ] @@ -2417,9 +2233,9 @@ dependencies = [ "chrono", "derive_more", "near-config-utils", - "near-crypto 0.16.1", + "near-crypto", "near-o11y", - "near-primitives 0.16.1", + "near-primitives", "num-rational", "once_cell", "serde", @@ -2441,32 +2257,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "near-crypto" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e75673d69fd7365508f3d32483669fe45b03bfb34e4d9363e90adae9dfb416c" -dependencies = [ - "arrayref", - "blake2", - "borsh 0.9.3", - "bs58", - "c2-chacha", - "curve25519-dalek", - "derive_more", - "ed25519-dalek", - "near-account-id 0.14.0", - "once_cell", - "parity-secp256k1", - "primitive-types", - "rand 0.7.3", - "rand_core 0.5.1", - "serde", - "serde_json", - "subtle", - "thiserror", -] - [[package]] name = "near-crypto" version = "0.16.1" @@ -2474,14 +2264,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "659a96750c4d933e4f00a50c66ba9948a32b862e5ecd6a952beee881b1cd2aaf" dependencies = [ "blake2", - "borsh 0.10.3", + "borsh", "bs58", "c2-chacha", "curve25519-dalek", "derive_more", "ed25519-dalek", "hex", - "near-account-id 0.16.1", + "near-account-id", "near-config-utils", "near-stdx", "once_cell", @@ -2500,7 +2290,7 @@ version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "56d10699cd998980a8965ee0d1922a77585b7ed1031934de29fb982ef4ae6ad2" dependencies = [ - "near-primitives 0.16.1", + "near-primitives", "serde", "serde_json", ] @@ -2511,13 +2301,13 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4bf020bd5fb7952c8f005ab789ac6f7a2015557630571362bcbaf2ead27c5cb6" dependencies = [ - "borsh 0.10.3", + "borsh", "lazy_static", "log", "near-chain-configs", - "near-crypto 0.16.1", + "near-crypto", "near-jsonrpc-primitives", - "near-primitives 0.16.1", + "near-primitives", "reqwest", "serde", "serde_json", @@ -2532,9 +2322,9 @@ checksum = "f0968cc71825e020d75f5a1f3577ac0379859ec7b14351ed5754fef1cc89e0d7" dependencies = [ "arbitrary", "near-chain-configs", - "near-crypto 0.16.1", - "near-primitives 0.16.1", - "near-rpc-error-macro 0.16.1", + "near-crypto", + "near-primitives", + "near-rpc-error-macro", "serde", "serde_json", "thiserror", @@ -2573,8 +2363,8 @@ dependencies = [ "actix", "atty", "clap", - "near-crypto 0.16.1", - "near-primitives-core 0.16.1", + "near-crypto", + "near-primitives-core", "once_cell", "opentelemetry", "opentelemetry-otlp", @@ -2590,35 +2380,6 @@ dependencies = [ "tracing-subscriber 0.3.17", ] -[[package]] -name = "near-primitives" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad1a9a1640539c81f065425c31bffcfbf6b31ef1aeaade59ce905f5df6ac860" -dependencies = [ - "borsh 0.9.3", - "byteorder", - "bytesize", - "chrono", - "derive_more", - "easy-ext", - "hex", - "near-crypto 0.14.0", - "near-primitives-core 0.14.0", - "near-rpc-error-macro 0.14.0", - "near-vm-errors 0.14.0", - "num-rational", - "once_cell", - "primitive-types", - "rand 0.7.3", - "reed-solomon-erasure", - "serde", - "serde_json", - "smart-default", - "strum", - "thiserror", -] - [[package]] name = "near-primitives" version = "0.16.1" @@ -2626,20 +2387,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4c030f28e8f988698145e7753b83bb54c05838c3afdd44835cc7c32c327ea1e" dependencies = [ "arbitrary", - "borsh 0.10.3", + "borsh", "bytesize", - "cfg-if 1.0.0", + "cfg-if", "chrono", "derive_more", "easy-ext", "enum-map", "hex", - "near-crypto 0.16.1", + "near-crypto", "near-o11y", - "near-primitives-core 0.16.1", - "near-rpc-error-macro 0.16.1", + "near-primitives-core", + "near-rpc-error-macro", "near-stdx", - "near-vm-errors 0.16.1", + "near-vm-errors", "num-rational", "once_cell", "primitive-types", @@ -2656,23 +2417,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "near-primitives-core" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d508f0fc340f6461e4e256417685720d3c4c00bb5a939b105160e49137caba" -dependencies = [ - "base64 0.11.0", - "borsh 0.9.3", - "bs58", - "derive_more", - "near-account-id 0.14.0", - "num-rational", - "serde", - "sha2 0.10.6", - "strum", -] - [[package]] name = "near-primitives-core" version = "0.16.1" @@ -2681,11 +2425,11 @@ checksum = "fe2059d16efc42ef7f9514f30910d32b67c01fee9b70c1fd28d50545ca145d88" dependencies = [ "arbitrary", "base64 0.13.1", - "borsh 0.10.3", + "borsh", "bs58", "derive_more", "enum-map", - "near-account-id 0.16.1", + "near-account-id", "num-rational", "serde", "serde_repr", @@ -2694,17 +2438,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "near-rpc-error-core" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ee0b41c75ef859c193a8ff1dadfa0c8207bc0ac447cc22259721ad769a1408" -dependencies = [ - "quote", - "serde", - "syn 1.0.109", -] - [[package]] name = "near-rpc-error-core" version = "0.16.1" @@ -2716,17 +2449,6 @@ dependencies = [ "syn 1.0.109", ] -[[package]] -name = "near-rpc-error-macro" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e837bd4bacd807073ec5ceb85708da7f721b46a4c2a978de86027fb0034ce31" -dependencies = [ - "near-rpc-error-core 0.14.0", - "serde", - "syn 1.0.109", -] - [[package]] name = "near-rpc-error-macro" version = "0.16.1" @@ -2734,106 +2456,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca4e8d6887b344f3e2f8281c1ad2cc93dcbcb683b546726a4ce1ab1dfa623a" dependencies = [ "fs2", - "near-rpc-error-core 0.16.1", + "near-rpc-error-core", "serde", "syn 1.0.109", ] -[[package]] -name = "near-sdk" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15eb3de2defe3626260cc209a6cdb985c6b27b0bd4619fad97dcfae002c3c5bd" -dependencies = [ - "base64 0.13.1", - "borsh 0.9.3", - "bs58", - "near-abi", - "near-crypto 0.14.0", - "near-primitives 0.14.0", - "near-primitives-core 0.14.0", - "near-sdk-macros", - "near-sys", - "near-vm-logic", - "once_cell", - "schemars", - "serde", - "serde_json", - "wee_alloc", -] - -[[package]] -name = "near-sdk-macros" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4907affc9f5ed559456509188ff0024f1f2099c0830e6bdb66eb61d5b75912c0" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "near-stdx" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bc1279be274b9a49c2cb4b62541241a1ff6745cb77ca81ece7f949cfbc229bff" -[[package]] -name = "near-sys" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e307313276eaeced2ca95740b5639e1f3125b7c97f0a1151809d105f1aa8c6d3" - -[[package]] -name = "near-vm-errors" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0da466a30f0446639cbd788c30865086fac3e8dcb07a79e51d2b0775ed4261e" -dependencies = [ - "borsh 0.9.3", - "near-account-id 0.14.0", - "near-rpc-error-macro 0.14.0", - "serde", -] - [[package]] name = "near-vm-errors" version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8b2d3eab1e050fdc3e036c803784cf45582661ae2dd07bac3bd373ba9c049715" dependencies = [ - "borsh 0.10.3", - "near-account-id 0.16.1", - "near-rpc-error-macro 0.16.1", + "borsh", + "near-account-id", + "near-rpc-error-macro", "serde", "strum", "thiserror", ] -[[package]] -name = "near-vm-logic" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b534828419bacbf1f7b11ef7b00420f248c548c485d3f0cfda8bb6931152f2" -dependencies = [ - "base64 0.13.1", - "borsh 0.9.3", - "bs58", - "byteorder", - "near-account-id 0.14.0", - "near-crypto 0.14.0", - "near-primitives 0.14.0", - "near-primitives-core 0.14.0", - "near-vm-errors 0.14.0", - "ripemd", - "serde", - "sha2 0.10.6", - "sha3", - "zeropool-bn", -] - [[package]] name = "normalize-line-endings" version = "0.3.0" @@ -2922,7 +2569,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01b8574602df80f7b85fdfc5392fa884a4e3b3f4f35402c070ab34c3d3f78d56" dependencies = [ "bitflags", - "cfg-if 1.0.0", + "cfg-if", "foreign-types", "libc", "once_cell", @@ -3025,44 +2672,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" -[[package]] -name = "parity-scale-codec" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" -dependencies = [ - "arrayvec 0.7.2", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" -dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "parity-secp256k1" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fca4f82fccae37e8bbdaeb949a4a218a1bbc485d11598f193d2a908042e5fc1" -dependencies = [ - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "rand 0.7.3", -] - [[package]] name = "parking_lot" version = "0.12.1" @@ -3079,7 +2688,7 @@ version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "libc", "redox_syscall 0.2.16", "smallvec", @@ -3188,7 +2797,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" dependencies = [ "fixed-hash", - "impl-codec", "uint", ] @@ -3201,16 +2809,6 @@ dependencies = [ "toml", ] -[[package]] -name = "proc-macro-crate" -version = "1.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" -dependencies = [ - "once_cell", - "toml_edit", -] - [[package]] name = "proc-macro-error" version = "1.0.4" @@ -3250,7 +2848,7 @@ version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fnv", "lazy_static", "memchr", @@ -3329,7 +2927,7 @@ dependencies = [ "aws-sdk-s3", "aws-types", "base64 0.13.1", - "borsh 0.10.3", + "borsh", "cached", "chrono", "clap", @@ -3365,12 +2963,6 @@ dependencies = [ "proc-macro2", ] -[[package]] -name = "radium" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" - [[package]] name = "rand" version = "0.7.3" @@ -3575,21 +3167,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - [[package]] name = "rustc_version" version = "0.4.0" @@ -3667,30 +3244,6 @@ dependencies = [ "windows-sys 0.42.0", ] -[[package]] -name = "schemars" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 1.0.109", -] - [[package]] name = "scopeguard" version = "1.1.0" @@ -3781,17 +3334,6 @@ dependencies = [ "syn 2.0.15", ] -[[package]] -name = "serde_derive_internals" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - [[package]] name = "serde_json" version = "1.0.96" @@ -3854,7 +3396,7 @@ version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.6", ] @@ -3872,7 +3414,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" dependencies = [ "block-buffer 0.9.0", - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.9.0", "opaque-debug", @@ -3884,21 +3426,11 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "cpufeatures", "digest 0.10.6", ] -[[package]] -name = "sha3" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" -dependencies = [ - "digest 0.10.6", - "keccak", -] - [[package]] name = "sharded-slab" version = "0.1.4" @@ -4045,19 +3577,13 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - [[package]] name = "tempfile" version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "fastrand", "redox_syscall 0.3.5", "rustix", @@ -4111,7 +3637,7 @@ version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "once_cell", ] @@ -4278,23 +3804,6 @@ dependencies = [ "serde", ] -[[package]] -name = "toml_datetime" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" - -[[package]] -name = "toml_edit" -version = "0.19.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] - [[package]] name = "tonic" version = "0.6.2" @@ -4376,7 +3885,7 @@ version = "0.1.37" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "log", "pin-project-lite", "tracing-attributes", @@ -4644,7 +4153,7 @@ version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "wasm-bindgen-macro", ] @@ -4669,7 +4178,7 @@ version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ - "cfg-if 1.0.0", + "cfg-if", "js-sys", "wasm-bindgen", "web-sys", @@ -4724,18 +4233,6 @@ dependencies = [ "untrusted", ] -[[package]] -name = "wee_alloc" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "memory_units", - "winapi", -] - [[package]] name = "which" version = "4.4.0" @@ -4940,15 +4437,6 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" -[[package]] -name = "winnow" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" -dependencies = [ - "memchr", -] - [[package]] name = "winreg" version = "0.10.1" @@ -4958,12 +4446,6 @@ dependencies = [ "winapi", ] -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - [[package]] name = "xmlparser" version = "0.13.5" @@ -4990,20 +4472,6 @@ dependencies = [ "syn 2.0.15", ] -[[package]] -name = "zeropool-bn" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e61de68ede9ffdd69c01664f65a178c5188b73f78faa21f0936016a888ff7c" -dependencies = [ - "borsh 0.9.3", - "byteorder", - "crunchy", - "lazy_static", - "rand 0.8.5", - "rustc-hex", -] - [[package]] name = "zstd" version = "0.12.3+zstd.1.5.2" diff --git a/indexer/Cargo.toml b/indexer/Cargo.toml index 510460851..2e55580d6 100644 --- a/indexer/Cargo.toml +++ b/indexer/Cargo.toml @@ -5,4 +5,4 @@ members = [ "storage", "indexer_rules_engine", "indexer_rule_type" -] \ No newline at end of file +] diff --git a/indexer/indexer_rule_type/Cargo.lock b/indexer/indexer_rule_type/Cargo.lock index 4ca78270a..189618a27 100644 --- a/indexer/indexer_rule_type/Cargo.lock +++ b/indexer/indexer_rule_type/Cargo.lock @@ -8,6 +8,62 @@ version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +[[package]] +name = "actix" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba56612922b907719d4a01cf11c8d5b458e7d3dba946d0435f20f58d6795ed2" +dependencies = [ + "actix-macros", + "actix-rt", + "actix_derive", + "bitflags 2.4.1", + "bytes", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", + "futures-util", + "log", + "once_cell", + "parking_lot", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util 0.7.10", +] + +[[package]] +name = "actix-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" +dependencies = [ + "quote", + "syn 2.0.41", +] + +[[package]] +name = "actix-rt" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d" +dependencies = [ + "futures-core", + "tokio", +] + +[[package]] +name = "actix_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + [[package]] name = "ahash" version = "0.7.6" @@ -30,6 +86,15 @@ dependencies = [ "version_check", ] +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + [[package]] name = "android_system_properties" version = "0.1.5" @@ -40,22 +105,111 @@ dependencies = [ ] [[package]] -name = "arrayref" -version = "0.3.7" +name = "anstream" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] -name = "arrayvec" -version = "0.5.2" +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-trait" +version = "0.1.74" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] [[package]] -name = "arrayvec" -version = "0.7.2" +name = "atty" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] [[package]] name = "autocfg" @@ -65,27 +219,27 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" -version = "0.11.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.13.1" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] -name = "bitvec" -version = "0.20.4" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "blake2" @@ -136,6 +290,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18a744ac76a433734df0902926ed12edd997391a8da3add87f6d706afc2dcbea" +dependencies = [ + "borsh-derive 1.1.2", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -162,6 +326,20 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b22bf794b9f8c87b51ea4d9e2710907ce13aa81dd2b8ac18a78fcca68ac738ef" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.41", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -218,23 +396,26 @@ version = "3.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - [[package]] name = "byteorder" version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + [[package]] name = "bytesize" version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" +dependencies = [ + "serde", +] [[package]] name = "c2-chacha" @@ -264,6 +445,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.24" @@ -275,7 +462,7 @@ dependencies = [ "num-integer", "num-traits", "serde", - "time", + "time 0.1.45", "wasm-bindgen", "winapi", ] @@ -289,6 +476,52 @@ dependencies = [ "generic-array", ] +[[package]] +name = "clap" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "convert_case" version = "0.4.0" @@ -310,6 +543,25 @@ dependencies = [ "libc", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "crunchy" version = "0.2.2" @@ -349,6 +601,62 @@ dependencies = [ "zeroize", ] +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.41", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "deranged" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + [[package]] name = "derive_more" version = "0.99.17" @@ -416,91 +724,359 @@ dependencies = [ "zeroize", ] +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "enum-map" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", +] + +[[package]] +name = "enum-map-derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + [[package]] name = "fixed-hash" version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", "static_assertions", ] [[package]] -name = "funty" -version = "1.1.0" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "generic-array" -version = "0.14.7" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", -] +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "getrandom" -version = "0.1.16" +name = "fs2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" dependencies = [ - "cfg-if 1.0.0", "libc", - "wasi 0.9.0+wasi-snapshot-preview1", + "winapi", ] [[package]] -name = "getrandom" -version = "0.2.9" +name = "futures" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "hashbrown" -version = "0.11.2" +name = "futures-channel" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ - "ahash 0.7.6", + "futures-core", + "futures-sink", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "futures-core" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] -name = "hashbrown" -version = "0.13.2" +name = "futures-executor" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ - "ahash 0.8.3", + "futures-core", + "futures-task", + "futures-util", ] [[package]] -name = "heck" -version = "0.4.1" +name = "futures-io" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" [[package]] -name = "hex" -version = "0.4.3" +name = "futures-sink" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util 0.7.10", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] [[package]] name = "iana-time-zone" @@ -526,24 +1102,10 @@ dependencies = [ ] [[package]] -name = "impl-codec" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" +name = "ident_case" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] name = "indexer_rule_type" @@ -562,6 +1124,27 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", ] [[package]] @@ -579,6 +1162,12 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json_comments" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" + [[package]] name = "keccak" version = "0.1.4" @@ -599,9 +1188,25 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.144" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] [[package]] name = "log" @@ -612,6 +1217,15 @@ dependencies = [ "cfg-if 1.0.0", ] +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + [[package]] name = "memchr" version = "2.5.0" @@ -624,13 +1238,30 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + [[package]] name = "near-abi" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +checksum = "e4ac4e2d843390b1a007ad206022b4252d0fe3756d8b6609bc025cce07949bc5" dependencies = [ - "borsh 0.9.3", + "borsh 1.1.2", "schemars", "semver", "serde", @@ -638,123 +1269,210 @@ dependencies = [ [[package]] name = "near-account-id" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d258582a1878e6db67400b0504a5099db85718d22c2e07f747fe1706ae7150" +checksum = "dc0cb40869cab7f5232f934f45db35bffe0f2d2a7cb0cd0346202fbe4ebf2dd7" dependencies = [ - "borsh 0.9.3", + "borsh 0.10.3", "serde", ] +[[package]] +name = "near-account-id" +version = "1.0.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d10d45a9c49c3e975c362cf4d1dc1d7b72a716b30394bea56ee2a8fb225f50b7" +dependencies = [ + "borsh 1.1.2", + "schemars", + "serde", +] + +[[package]] +name = "near-config-utils" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5523e7dce493c45bc3241eb3100d943ec471852f9b1f84b46a34789eadf17031" +dependencies = [ + "anyhow", + "json_comments", + "thiserror", + "tracing", +] + [[package]] name = "near-crypto" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e75673d69fd7365508f3d32483669fe45b03bfb34e4d9363e90adae9dfb416c" +checksum = "ff6b382b626e7e0cd372d027c6672ac97b4b6ee6114288c9e58d8180b935d315" dependencies = [ - "arrayref", "blake2", - "borsh 0.9.3", + "borsh 0.10.3", "bs58", "c2-chacha", "curve25519-dalek", "derive_more", "ed25519-dalek", - "near-account-id", + "hex", + "near-account-id 0.17.0", + "near-config-utils", + "near-stdx", "once_cell", - "parity-secp256k1", "primitive-types", "rand 0.7.3", - "rand_core 0.5.1", + "secp256k1", "serde", "serde_json", "subtle", "thiserror", ] +[[package]] +name = "near-fmt" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c44c842c6cfcd9b8c387cccd4cd0619a5f21920cde5d5c292af3cc5d40510672" +dependencies = [ + "near-primitives-core", +] + +[[package]] +name = "near-gas" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +dependencies = [ + "borsh 1.1.2", + "schemars", + "serde", +] + +[[package]] +name = "near-o11y" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7d35397b02b131c188c72f3885e97daeccab134ec2fc8cc0073a94cf1cfe19" +dependencies = [ + "actix", + "atty", + "clap", + "near-crypto", + "near-primitives-core", + "once_cell", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "prometheus", + "serde", + "strum", + "thiserror", + "tokio", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + [[package]] name = "near-primitives" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad1a9a1640539c81f065425c31bffcfbf6b31ef1aeaade59ce905f5df6ac860" +checksum = "05f7051aaf199adc4d068620fca6d5f70f906a1540d03a8bb3701271f8881835" dependencies = [ - "borsh 0.9.3", - "byteorder", + "arbitrary", + "borsh 0.10.3", "bytesize", + "cfg-if 1.0.0", "chrono", "derive_more", "easy-ext", + "enum-map", "hex", "near-crypto", + "near-fmt", "near-primitives-core", "near-rpc-error-macro", + "near-stdx", "near-vm-errors", "num-rational", "once_cell", "primitive-types", - "rand 0.7.3", + "rand 0.8.5", "reed-solomon-erasure", "serde", "serde_json", + "serde_with", + "serde_yaml", "smart-default", "strum", "thiserror", + "time 0.3.30", + "tracing", ] [[package]] name = "near-primitives-core" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d508f0fc340f6461e4e256417685720d3c4c00bb5a939b105160e49137caba" +checksum = "775fec19ef51a341abdbf792a9dda5b4cb89f488f681b2fd689b9321d24db47b" dependencies = [ - "base64 0.11.0", - "borsh 0.9.3", + "arbitrary", + "base64 0.21.5", + "borsh 0.10.3", "bs58", "derive_more", - "near-account-id", + "enum-map", + "near-account-id 0.17.0", "num-rational", "serde", + "serde_repr", + "serde_with", "sha2 0.10.6", "strum", + "thiserror", ] [[package]] name = "near-rpc-error-core" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ee0b41c75ef859c193a8ff1dadfa0c8207bc0ac447cc22259721ad769a1408" +checksum = "84c1eda300e2e78f4f945ae58117d49e806899f4a51ee2faa09eda5ebc2e6571" dependencies = [ "quote", "serde", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "near-rpc-error-macro" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e837bd4bacd807073ec5ceb85708da7f721b46a4c2a978de86027fb0034ce31" +checksum = "31d2dadd765101c77e664029dd6fbec090e696877d4ae903c620d02ceda4969a" dependencies = [ + "fs2", "near-rpc-error-core", "serde", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "near-sdk" -version = "4.1.1" +version = "5.0.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15eb3de2defe3626260cc209a6cdb985c6b27b0bd4619fad97dcfae002c3c5bd" +checksum = "62385d178cbf20d7b62277e0ffe5d65b133989994240b2789d5510fa7de332da" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.1.2", "bs58", "near-abi", + "near-account-id 1.0.0-alpha.4", "near-crypto", + "near-gas", "near-primitives", "near-primitives-core", "near-sdk-macros", "near-sys", + "near-token", "near-vm-logic", "once_cell", "schemars", @@ -765,48 +1483,73 @@ dependencies = [ [[package]] name = "near-sdk-macros" -version = "4.1.1" +version = "5.0.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4907affc9f5ed559456509188ff0024f1f2099c0830e6bdb66eb61d5b75912c0" +checksum = "d00f960e5f28e8b5a223de7ba35f494c094c213c7b50f94927713a93736013dd" dependencies = [ "Inflector", + "darling", "proc-macro2", "quote", - "syn 1.0.109", + "serde", + "serde_json", + "strum", + "strum_macros", + "syn 2.0.41", ] +[[package]] +name = "near-stdx" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6540152fba5e96fe5d575b79e8cd244cf2add747bb01362426bdc069bc3a23bc" + [[package]] name = "near-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397688591acf8d3ebf2c2485ba32d4b24fc10aad5334e3ad8ec0b7179bfdf06b" + +[[package]] +name = "near-token" version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e307313276eaeced2ca95740b5639e1f3125b7c97f0a1151809d105f1aa8c6d3" +checksum = "7b68f3f8a2409f72b43efdbeff8e820b81e70824c49fee8572979d789d1683fb" +dependencies = [ + "borsh 1.1.2", + "schemars", + "serde", +] [[package]] name = "near-vm-errors" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0da466a30f0446639cbd788c30865086fac3e8dcb07a79e51d2b0775ed4261e" +checksum = "ec545d1bede0579e7c15dd2dce9b998dc975c52f2165702ff40bec7ff69728bb" dependencies = [ - "borsh 0.9.3", - "near-account-id", + "borsh 0.10.3", + "near-account-id 0.17.0", "near-rpc-error-macro", "serde", + "strum", + "thiserror", ] [[package]] name = "near-vm-logic" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b534828419bacbf1f7b11ef7b00420f248c548c485d3f0cfda8bb6931152f2" +checksum = "30d7487c678ed1963a0ecd5033f72bb41caa58debd6fe8025a9bef6e1a6a519a" dependencies = [ - "base64 0.13.1", - "borsh 0.9.3", - "bs58", - "byteorder", - "near-account-id", + "borsh 0.10.3", + "ed25519-dalek", + "near-account-id 0.17.0", "near-crypto", + "near-fmt", + "near-o11y", "near-primitives", "near-primitives-core", + "near-stdx", "near-vm-errors", "ripemd", "serde", @@ -815,6 +1558,16 @@ dependencies = [ "zeropool-bn", ] +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + [[package]] name = "num-bigint" version = "0.3.3" @@ -858,11 +1611,21 @@ dependencies = [ "autocfg", ] +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.3", + "libc", +] + [[package]] name = "once_cell" -version = "1.17.1" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "opaque-debug" @@ -871,43 +1634,136 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" [[package]] -name = "parity-scale-codec" -version = "2.3.1" +name = "opentelemetry" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" dependencies = [ - "arrayvec 0.7.2", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde", + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "js-sys", + "lazy_static", + "percent-encoding", + "pin-project", + "rand 0.8.5", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1a6ca9de4c8b00aa7f1a153bd76cb263287155cec642680d79d98706f3d28a" +dependencies = [ + "async-trait", + "futures", + "futures-util", + "http", + "opentelemetry", + "prost", + "thiserror", + "tokio", + "tonic", + "tonic-build", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985cc35d832d412224b2cffe2f9194b1b89b6aa5d0bef76d080dce09d90e62bd" +dependencies = [ + "opentelemetry", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.0", ] [[package]] -name = "parity-scale-codec-derive" +name = "percent-encoding" version = "2.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" dependencies = [ - "proc-macro-crate 1.3.1", - "proc-macro2", - "quote", - "syn 1.0.109", + "fixedbitset", + "indexmap 2.1.0", ] [[package]] -name = "parity-secp256k1" -version = "0.7.0" +name = "pin-project" +version = "1.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fca4f82fccae37e8bbdaeb949a4a218a1bbc485d11598f193d2a908042e5fc1" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" dependencies = [ - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "rand 0.7.3", + "pin-project-internal", ] +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + [[package]] name = "ppv-lite86" version = "0.2.17" @@ -921,7 +1777,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" dependencies = [ "fixed-hash", - "impl-codec", "uint", ] @@ -936,37 +1791,128 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.3.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" dependencies = [ - "once_cell", + "toml_datetime", "toml_edit", ] +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + [[package]] name = "proc-macro2" -version = "1.0.57" +version = "1.0.70" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" dependencies = [ "unicode-ident", ] [[package]] -name = "quote" -version = "1.0.27" +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "protobuf", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes", + "heck 0.3.3", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost", + "prost-types", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" dependencies = [ + "anyhow", + "itertools", "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "radium" -version = "0.6.2" +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes", + "prost", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "quote" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] [[package]] name = "rand" @@ -1039,6 +1985,15 @@ dependencies = [ "rand_core 0.5.1", ] +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + [[package]] name = "reed-solomon-erasure" version = "4.0.2" @@ -1048,6 +2003,50 @@ dependencies = [ "smallvec", ] +[[package]] +name = "regex" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.3.7", + "regex-syntax 0.7.5", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.7.5", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" + [[package]] name = "ripemd" version = "0.1.3" @@ -1072,6 +2071,19 @@ dependencies = [ "semver", ] +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + [[package]] name = "rustversion" version = "1.0.12" @@ -1108,6 +2120,31 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + [[package]] name = "semver" version = "1.0.17" @@ -1116,22 +2153,22 @@ checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" [[package]] name = "serde" -version = "1.0.163" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.163" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.41", ] [[package]] @@ -1156,6 +2193,59 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_with" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" +dependencies = [ + "base64 0.21.5", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", + "serde", + "serde_json", + "serde_with_macros", + "time 0.3.30", +] + +[[package]] +name = "serde_with_macros" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_yaml" +version = "0.9.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" +dependencies = [ + "indexmap 2.1.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + [[package]] name = "sha2" version = "0.9.9" @@ -1190,11 +2280,38 @@ dependencies = [ "keccak", ] +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + [[package]] name = "signature" version = "1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] [[package]] name = "smallvec" @@ -1213,6 +2330,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "spin" version = "0.5.2" @@ -1225,6 +2352,12 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + [[package]] name = "strum" version = "0.24.1" @@ -1240,7 +2373,7 @@ version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "heck", + "heck 0.4.1", "proc-macro2", "quote", "rustversion", @@ -1266,9 +2399,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.16" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ "proc-macro2", "quote", @@ -1276,10 +2409,29 @@ dependencies = [ ] [[package]] -name = "tap" -version = "1.0.1" +name = "syn_derive" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.48.0", +] [[package]] name = "thiserror" @@ -1298,7 +2450,17 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.41", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", ] [[package]] @@ -1312,6 +2474,114 @@ dependencies = [ "winapi", ] +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tokio" +version = "1.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + [[package]] name = "toml" version = "0.5.11" @@ -1323,21 +2593,211 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.1" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" [[package]] name = "toml_edit" -version = "0.19.8" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" dependencies = [ - "indexmap", + "indexmap 2.1.0", "toml_datetime", "winnow", ] +[[package]] +name = "tonic" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +dependencies = [ + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic-build" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +dependencies = [ + "proc-macro2", + "prost-build", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.10", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time 0.3.30", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" +dependencies = [ + "once_cell", + "opentelemetry", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + [[package]] name = "typenum" version = "1.16.0" @@ -1362,12 +2822,45 @@ version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "version_check" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + [[package]] name = "wasi" version = "0.9.0+wasi-snapshot-preview1" @@ -1407,7 +2900,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.41", "wasm-bindgen-shared", ] @@ -1429,7 +2922,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -1452,6 +2945,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "winapi" version = "0.3.9" @@ -1480,7 +2985,25 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets", + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", ] [[package]] @@ -1489,13 +3012,28 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -1504,57 +3042,93 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "winnow" -version = "0.4.6" +version = "0.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" dependencies = [ "memchr", ] -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - [[package]] name = "zeroize" version = "1.3.0" @@ -1572,7 +3146,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.16", + "syn 2.0.41", ] [[package]] diff --git a/indexer/indexer_rule_type/Cargo.toml b/indexer/indexer_rule_type/Cargo.toml index bc9b0d5d1..d64871f8e 100644 --- a/indexer/indexer_rule_type/Cargo.toml +++ b/indexer/indexer_rule_type/Cargo.toml @@ -6,11 +6,5 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -borsh = { version = "0.10.2", optional = true } -serde = { version = "1", features = ["derive"], optional = true } - -near-sdk = { version = "4.1.1", optional = true } - -[features] -default = ["borsh", "serde"] -nearsdk = ["near-sdk"] \ No newline at end of file +borsh = "0.10.2" +serde = "1" diff --git a/indexer/indexer_rule_type/src/indexer_rule.rs b/indexer/indexer_rule_type/src/indexer_rule.rs index 5ae310e28..ebb5148aa 100644 --- a/indexer/indexer_rule_type/src/indexer_rule.rs +++ b/indexer/indexer_rule_type/src/indexer_rule.rs @@ -1,13 +1,6 @@ -#[cfg(not(feature = "near-sdk"))] use borsh::{self, BorshDeserialize, BorshSerialize}; -#[cfg(not(feature = "near-sdk"))] use serde::{Deserialize, Serialize}; -#[cfg(feature = "near-sdk")] -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -#[cfg(feature = "near-sdk")] -use near_sdk::serde::{Deserialize, Serialize}; - #[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] pub struct IndexerRule { pub indexer_rule_kind: IndexerRuleKind, diff --git a/indexer/indexer_rules_engine/Cargo.toml b/indexer/indexer_rules_engine/Cargo.toml index f799df931..25361c349 100644 --- a/indexer/indexer_rules_engine/Cargo.toml +++ b/indexer/indexer_rules_engine/Cargo.toml @@ -17,4 +17,4 @@ near-lake-framework = "0.7.1" indexer_rule_type = { path = "../indexer_rule_type" } [dev-dependencies] -tokio = { version = "1.0.1", features = ["full"] } \ No newline at end of file +tokio = { version = "1.0.1", features = ["full"] } diff --git a/registry/contract/Cargo.lock b/registry/contract/Cargo.lock index 398ec7c50..0e810f77e 100644 --- a/registry/contract/Cargo.lock +++ b/registry/contract/Cargo.lock @@ -8,17 +8,100 @@ version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +[[package]] +name = "actix" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba56612922b907719d4a01cf11c8d5b458e7d3dba946d0435f20f58d6795ed2" +dependencies = [ + "actix-macros", + "actix-rt", + "actix_derive", + "bitflags 2.4.1", + "bytes", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", + "futures-util", + "log", + "once_cell", + "parking_lot", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util 0.7.10", +] + +[[package]] +name = "actix-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" +dependencies = [ + "quote", + "syn 2.0.41", +] + +[[package]] +name = "actix-rt" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d" +dependencies = [ + "futures-core", + "tokio", +] + +[[package]] +name = "actix_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "ahash" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "version_check", +] + [[package]] name = "ahash" -version = "0.7.6" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" dependencies = [ - "getrandom 0.2.9", + "cfg-if 1.0.0", "once_cell", "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", ] +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + [[package]] name = "android_system_properties" version = "0.1.5" @@ -29,22 +112,111 @@ dependencies = [ ] [[package]] -name = "arrayref" -version = "0.3.7" +name = "anstream" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] -name = "arrayvec" -version = "0.5.2" +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] [[package]] -name = "arrayvec" -version = "0.7.2" +name = "atty" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] [[package]] name = "autocfg" @@ -54,27 +226,27 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "base64" -version = "0.11.0" +version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.13.1" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] -name = "bitvec" -version = "0.20.4" +name = "bitflags" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" [[package]] name = "blake2" @@ -122,7 +294,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" dependencies = [ "borsh-derive 0.10.3", - "hashbrown 0.11.2", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9897ef0f1bd2362169de6d7e436ea2237dc1085d7d1e4db75f4be34d86f309d1" +dependencies = [ + "borsh-derive 1.2.1", + "cfg_aliases", ] [[package]] @@ -151,6 +333,20 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478b41ff04256c5c8330f3dfdaaae2a5cc976a8e75088bafa4625b0d0208de8c" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.41", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -203,27 +399,30 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bumpalo" -version = "3.12.2" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] -name = "byte-slice-cast" -version = "1.2.2" +name = "byteorder" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] -name = "byteorder" -version = "1.4.3" +name = "bytes" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" [[package]] name = "bytesize" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" +dependencies = [ + "serde", +] [[package]] name = "c2-chacha" @@ -237,9 +436,12 @@ dependencies = [ [[package]] name = "cc" -version = "1.0.79" +version = "1.0.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] [[package]] name = "cfg-if" @@ -253,20 +455,25 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" -version = "0.4.24" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ + "android-tzdata", "iana-time-zone", "js-sys", - "num-integer", "num-traits", "serde", - "time", "wasm-bindgen", - "winapi", + "windows-targets 0.48.5", ] [[package]] @@ -279,15 +486,51 @@ dependencies = [ ] [[package]] -name = "codespan-reporting" -version = "0.11.1" +name = "clap" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" dependencies = [ - "termcolor", - "unicode-width", + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.41", ] +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "convert_case" version = "0.4.0" @@ -296,19 +539,38 @@ checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.7" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" dependencies = [ "libc", ] +[[package]] +name = "crossbeam-channel" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +dependencies = [ + "cfg-if 1.0.0", +] + [[package]] name = "crunchy" version = "0.2.2" @@ -349,47 +611,59 @@ dependencies = [ ] [[package]] -name = "cxx" -version = "1.0.94" +name = "darling" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", + "darling_core", + "darling_macro", ] [[package]] -name = "cxx-build" -version = "1.0.94" +name = "darling_core" +version = "0.20.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" dependencies = [ - "cc", - "codespan-reporting", - "once_cell", + "fnv", + "ident_case", "proc-macro2", "quote", - "scratch", - "syn 2.0.15", + "strsim", + "syn 2.0.41", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.41", ] [[package]] -name = "cxxbridge-flags" -version = "1.0.94" +name = "deranged" +version = "0.3.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", + "serde", +] [[package]] -name = "cxxbridge-macro" -version = "1.0.94" +name = "derive_arbitrary" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] @@ -416,9 +690,9 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.6" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ "block-buffer 0.10.4", "crypto-common", @@ -426,9 +700,9 @@ dependencies = [ [[package]] name = "dyn-clone" -version = "1.0.11" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" [[package]] name = "easy-ext" @@ -460,135 +734,388 @@ dependencies = [ ] [[package]] -name = "fixed-hash" -version = "0.7.0" +name = "either" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] -name = "funty" -version = "1.1.0" +name = "enum-map" +version = "2.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", +] [[package]] -name = "generic-array" -version = "0.14.7" +name = "enum-map-derive" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" dependencies = [ - "typenum", - "version_check", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] -name = "getrandom" -version = "0.1.16" +name = "equivalent" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] -name = "getrandom" -version = "0.2.9" +name = "errno" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" dependencies = [ - "cfg-if 1.0.0", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.52.0", ] [[package]] -name = "hashbrown" -version = "0.11.2" +name = "fastrand" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" dependencies = [ - "ahash", + "static_assertions", ] [[package]] -name = "hashbrown" -version = "0.12.3" +name = "fixedbitset" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] -name = "heck" -version = "0.4.1" +name = "fnv" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] -name = "hex" +name = "fs2" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] [[package]] -name = "iana-time-zone" -version = "0.1.56" +name = "futures" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows", + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", ] [[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" +name = "futures-channel" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" dependencies = [ - "cxx", - "cxx-build", + "futures-core", + "futures-sink", ] [[package]] -name = "impl-codec" -version = "0.5.1" +name = "futures-core" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" -dependencies = [ - "parity-scale-codec", -] +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" [[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" +name = "futures-executor" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", + "futures-core", + "futures-task", + "futures-util", ] [[package]] -name = "indexer_rule_type" -version = "0.1.0" -dependencies = [ - "borsh 0.10.3", - "near-sdk", - "serde", +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util 0.7.10", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.6", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "indexmap" version = "1.9.3" @@ -597,23 +1124,50 @@ checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", ] [[package]] name = "itoa" -version = "1.0.6" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.62" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68c16e1bfd491478ab155fd8b4896b86f9ede344949b641e61501e07c2b8b4d5" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json_comments" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" + [[package]] name = "keccak" version = "0.1.4" @@ -634,33 +1188,46 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.144" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" [[package]] -name = "link-cplusplus" -version = "1.0.8" +name = "lock_api" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" dependencies = [ - "cc", + "autocfg", + "scopeguard", ] [[package]] name = "log" -version = "0.4.17" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "cfg-if 1.0.0", + "regex-automata 0.1.10", ] [[package]] name = "memchr" -version = "2.5.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memory_units" @@ -668,13 +1235,30 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + [[package]] name = "near-abi" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +checksum = "5bd176820187cfb134a5147330fe803357bf5dab9a14f891d1702beb3d471dfb" dependencies = [ - "borsh 0.9.3", + "borsh 1.2.1", "schemars", "semver", "serde", @@ -682,735 +1266,1549 @@ dependencies = [ [[package]] name = "near-account-id" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d258582a1878e6db67400b0504a5099db85718d22c2e07f747fe1706ae7150" +checksum = "dc0cb40869cab7f5232f934f45db35bffe0f2d2a7cb0cd0346202fbe4ebf2dd7" dependencies = [ - "borsh 0.9.3", + "borsh 0.10.3", + "serde", +] + +[[package]] +name = "near-account-id" +version = "1.0.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d10d45a9c49c3e975c362cf4d1dc1d7b72a716b30394bea56ee2a8fb225f50b7" +dependencies = [ + "borsh 1.2.1", + "schemars", "serde", ] +[[package]] +name = "near-config-utils" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5523e7dce493c45bc3241eb3100d943ec471852f9b1f84b46a34789eadf17031" +dependencies = [ + "anyhow", + "json_comments", + "thiserror", + "tracing", +] + [[package]] name = "near-crypto" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e75673d69fd7365508f3d32483669fe45b03bfb34e4d9363e90adae9dfb416c" +checksum = "ff6b382b626e7e0cd372d027c6672ac97b4b6ee6114288c9e58d8180b935d315" dependencies = [ - "arrayref", "blake2", - "borsh 0.9.3", + "borsh 0.10.3", "bs58", "c2-chacha", "curve25519-dalek", "derive_more", "ed25519-dalek", - "near-account-id", + "hex", + "near-account-id 0.17.0", + "near-config-utils", + "near-stdx", "once_cell", - "parity-secp256k1", "primitive-types", "rand 0.7.3", - "rand_core 0.5.1", + "secp256k1", "serde", "serde_json", "subtle", "thiserror", ] +[[package]] +name = "near-fmt" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c44c842c6cfcd9b8c387cccd4cd0619a5f21920cde5d5c292af3cc5d40510672" +dependencies = [ + "near-primitives-core", +] + +[[package]] +name = "near-gas" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +dependencies = [ + "borsh 1.2.1", + "schemars", + "serde", +] + +[[package]] +name = "near-o11y" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7d35397b02b131c188c72f3885e97daeccab134ec2fc8cc0073a94cf1cfe19" +dependencies = [ + "actix", + "atty", + "clap", + "near-crypto", + "near-primitives-core", + "once_cell", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "prometheus", + "serde", + "strum", + "thiserror", + "tokio", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + [[package]] name = "near-primitives" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ad1a9a1640539c81f065425c31bffcfbf6b31ef1aeaade59ce905f5df6ac860" +checksum = "05f7051aaf199adc4d068620fca6d5f70f906a1540d03a8bb3701271f8881835" dependencies = [ - "borsh 0.9.3", - "byteorder", + "arbitrary", + "borsh 0.10.3", "bytesize", + "cfg-if 1.0.0", "chrono", "derive_more", "easy-ext", + "enum-map", "hex", "near-crypto", + "near-fmt", "near-primitives-core", "near-rpc-error-macro", + "near-stdx", "near-vm-errors", "num-rational", "once_cell", "primitive-types", - "rand 0.7.3", + "rand 0.8.5", "reed-solomon-erasure", "serde", "serde_json", + "serde_with", + "serde_yaml", "smart-default", "strum", "thiserror", + "time", + "tracing", ] [[package]] name = "near-primitives-core" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91d508f0fc340f6461e4e256417685720d3c4c00bb5a939b105160e49137caba" +checksum = "775fec19ef51a341abdbf792a9dda5b4cb89f488f681b2fd689b9321d24db47b" dependencies = [ - "base64 0.11.0", - "borsh 0.9.3", + "arbitrary", + "base64 0.21.5", + "borsh 0.10.3", "bs58", "derive_more", - "near-account-id", + "enum-map", + "near-account-id 0.17.0", "num-rational", "serde", - "sha2 0.10.6", + "serde_repr", + "serde_with", + "sha2 0.10.8", "strum", + "thiserror", ] [[package]] name = "near-rpc-error-core" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ee0b41c75ef859c193a8ff1dadfa0c8207bc0ac447cc22259721ad769a1408" +checksum = "84c1eda300e2e78f4f945ae58117d49e806899f4a51ee2faa09eda5ebc2e6571" dependencies = [ "quote", "serde", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "near-rpc-error-macro" -version = "0.14.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e837bd4bacd807073ec5ceb85708da7f721b46a4c2a978de86027fb0034ce31" +checksum = "31d2dadd765101c77e664029dd6fbec090e696877d4ae903c620d02ceda4969a" dependencies = [ + "fs2", "near-rpc-error-core", "serde", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] name = "near-sdk" -version = "4.1.1" +version = "5.0.0-alpha.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15eb3de2defe3626260cc209a6cdb985c6b27b0bd4619fad97dcfae002c3c5bd" +checksum = "62385d178cbf20d7b62277e0ffe5d65b133989994240b2789d5510fa7de332da" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.2.1", "bs58", "near-abi", + "near-account-id 1.0.0-alpha.4", "near-crypto", + "near-gas", "near-primitives", "near-primitives-core", "near-sdk-macros", "near-sys", + "near-token", "near-vm-logic", "once_cell", "schemars", "serde", "serde_json", - "wee_alloc", + "wee_alloc", +] + +[[package]] +name = "near-sdk-macros" +version = "5.0.0-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d00f960e5f28e8b5a223de7ba35f494c094c213c7b50f94927713a93736013dd" +dependencies = [ + "Inflector", + "darling", + "proc-macro2", + "quote", + "serde", + "serde_json", + "strum", + "strum_macros", + "syn 2.0.41", +] + +[[package]] +name = "near-stdx" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6540152fba5e96fe5d575b79e8cd244cf2add747bb01362426bdc069bc3a23bc" + +[[package]] +name = "near-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397688591acf8d3ebf2c2485ba32d4b24fc10aad5334e3ad8ec0b7179bfdf06b" + +[[package]] +name = "near-token" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b68f3f8a2409f72b43efdbeff8e820b81e70824c49fee8572979d789d1683fb" +dependencies = [ + "borsh 1.2.1", + "schemars", + "serde", +] + +[[package]] +name = "near-vm-errors" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec545d1bede0579e7c15dd2dce9b998dc975c52f2165702ff40bec7ff69728bb" +dependencies = [ + "borsh 0.10.3", + "near-account-id 0.17.0", + "near-rpc-error-macro", + "serde", + "strum", + "thiserror", +] + +[[package]] +name = "near-vm-logic" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d7487c678ed1963a0ecd5033f72bb41caa58debd6fe8025a9bef6e1a6a519a" +dependencies = [ + "borsh 0.10.3", + "ed25519-dalek", + "near-account-id 0.17.0", + "near-crypto", + "near-fmt", + "near-o11y", + "near-primitives", + "near-primitives-core", + "near-stdx", + "near-vm-errors", + "ripemd", + "serde", + "sha2 0.10.8", + "sha3", + "zeropool-bn", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.3", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "opentelemetry" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "js-sys", + "lazy_static", + "percent-encoding", + "pin-project", + "rand 0.8.5", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1a6ca9de4c8b00aa7f1a153bd76cb263287155cec642680d79d98706f3d28a" +dependencies = [ + "async-trait", + "futures", + "futures-util", + "http", + "opentelemetry", + "prost", + "thiserror", + "tokio", + "tonic", + "tonic-build", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985cc35d832d412224b2cffe2f9194b1b89b6aa5d0bef76d080dce09d90e62bd" +dependencies = [ + "opentelemetry", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "protobuf", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes", + "heck 0.3.3", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost", + "prost-types", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes", + "prost", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "reed-solomon-erasure" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +dependencies = [ + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "registry" +version = "1.0.0" +dependencies = [ + "borsh 1.2.1", + "near-sdk", + "registry-types", + "uint", +] + +[[package]] +name = "registry-types" +version = "0.1.0" +dependencies = [ + "borsh 1.2.1", + "near-primitives", + "near-sdk", + "serde", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", ] [[package]] -name = "near-sdk-macros" -version = "4.1.1" +name = "schemars_derive" +version = "0.8.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4907affc9f5ed559456509188ff0024f1f2099c0830e6bdb66eb61d5b75912c0" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" dependencies = [ - "Inflector", "proc-macro2", "quote", + "serde_derive_internals", "syn 1.0.109", ] [[package]] -name = "near-sys" -version = "0.2.0" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e307313276eaeced2ca95740b5639e1f3125b7c97f0a1151809d105f1aa8c6d3" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] -name = "near-vm-errors" -version = "0.14.0" +name = "secp256k1" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0da466a30f0446639cbd788c30865086fac3e8dcb07a79e51d2b0775ed4261e" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" dependencies = [ - "borsh 0.9.3", - "near-account-id", - "near-rpc-error-macro", - "serde", + "rand 0.8.5", + "secp256k1-sys", ] [[package]] -name = "near-vm-logic" -version = "0.14.0" +name = "secp256k1-sys" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81b534828419bacbf1f7b11ef7b00420f248c548c485d3f0cfda8bb6931152f2" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" dependencies = [ - "base64 0.13.1", - "borsh 0.9.3", - "bs58", - "byteorder", - "near-account-id", - "near-crypto", - "near-primitives", - "near-primitives-core", - "near-vm-errors", - "ripemd", - "serde", - "sha2 0.10.6", - "sha3", - "zeropool-bn", + "cc", ] [[package]] -name = "num-bigint" -version = "0.3.3" +name = "semver" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" [[package]] -name = "num-integer" -version = "0.1.45" +name = "serde" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" dependencies = [ - "autocfg", - "num-traits", + "serde_derive", ] [[package]] -name = "num-rational" -version = "0.3.2" +name = "serde_derive" +version = "1.0.193" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", - "serde", + "proc-macro2", + "quote", + "syn 2.0.41", ] [[package]] -name = "num-traits" -version = "0.2.15" +name = "serde_derive_internals" +version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" dependencies = [ - "autocfg", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "once_cell" -version = "1.17.1" +name = "serde_json" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] [[package]] -name = "opaque-debug" -version = "0.3.0" +name = "serde_repr" +version = "0.1.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] [[package]] -name = "parity-scale-codec" -version = "2.3.1" +name = "serde_with" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ - "arrayvec 0.7.2", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", + "base64 0.21.5", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", "serde", + "serde_json", + "serde_with_macros", + "time", ] [[package]] -name = "parity-scale-codec-derive" -version = "2.3.1" +name = "serde_with_macros" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" dependencies = [ - "proc-macro-crate 1.3.1", + "darling", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] -name = "parity-secp256k1" -version = "0.7.0" +name = "serde_yaml" +version = "0.9.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fca4f82fccae37e8bbdaeb949a4a218a1bbc485d11598f193d2a908042e5fc1" +checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" dependencies = [ - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "rand 0.7.3", + "indexmap 2.1.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", ] [[package]] -name = "ppv-lite86" -version = "0.2.17" +name = "sha2" +version = "0.9.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] [[package]] -name = "primitive-types" -version = "0.10.1" +name = "sha2" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ - "fixed-hash", - "impl-codec", - "uint", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", ] [[package]] -name = "proc-macro-crate" -version = "0.1.5" +name = "sha3" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "toml", + "digest 0.10.7", + "keccak", ] [[package]] -name = "proc-macro-crate" -version = "1.3.1" +name = "sharded-slab" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" dependencies = [ - "once_cell", - "toml_edit", + "lazy_static", ] [[package]] -name = "proc-macro2" -version = "1.0.56" +name = "signal-hook-registry" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ - "unicode-ident", + "libc", ] [[package]] -name = "quote" -version = "1.0.27" +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "slab" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" dependencies = [ - "proc-macro2", + "autocfg", ] [[package]] -name = "radium" -version = "0.6.2" +name = "smallvec" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" [[package]] -name = "rand" -version = "0.7.3" +name = "smart-default" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] -name = "rand" -version = "0.8.5" +name = "socket2" +version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" dependencies = [ "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", + "winapi", ] [[package]] -name = "rand_chacha" -version = "0.2.2" +name = "spin" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] -name = "rand_chacha" -version = "0.3.1" +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] -name = "rand_core" -version = "0.5.1" +name = "strsim" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] -name = "rand_core" -version = "0.6.4" +name = "strum" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" dependencies = [ - "getrandom 0.2.9", + "strum_macros", ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "strum_macros" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" dependencies = [ - "rand_core 0.5.1", + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", ] [[package]] -name = "reed-solomon-erasure" -version = "4.0.2" +name = "subtle" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" -dependencies = [ - "smallvec", -] +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] -name = "registry" -version = "1.0.0" +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" dependencies = [ - "indexer_rule_type", - "near-sdk", - "uint", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "ripemd" -version = "0.1.3" +name = "syn" +version = "2.0.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" dependencies = [ - "digest 0.10.6", + "proc-macro2", + "quote", + "unicode-ident", ] [[package]] -name = "rustc-hex" -version = "2.1.0" +name = "syn_derive" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] [[package]] -name = "rustc_version" -version = "0.4.0" +name = "tempfile" +version = "3.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" dependencies = [ - "semver", + "cfg-if 1.0.0", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.48.0", ] [[package]] -name = "rustversion" -version = "1.0.12" +name = "thiserror" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] [[package]] -name = "ryu" -version = "1.0.13" +name = "thiserror-impl" +version = "1.0.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] [[package]] -name = "schemars" -version = "0.8.12" +name = "thread_local" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", + "cfg-if 1.0.0", + "once_cell", ] [[package]] -name = "schemars_derive" -version = "0.8.12" +name = "time" +version = "0.3.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 1.0.109", + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", ] [[package]] -name = "scratch" -version = "1.0.5" +name = "time-core" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] -name = "semver" -version = "1.0.17" +name = "time-macros" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] [[package]] -name = "serde" -version = "1.0.162" +name = "tokio" +version = "1.28.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" dependencies = [ - "serde_derive", + "autocfg", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", ] [[package]] -name = "serde_derive" -version = "1.0.162" +name = "tokio-io-timeout" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", + "pin-project-lite", + "tokio", ] [[package]] -name = "serde_derive_internals" -version = "0.26.0" +name = "tokio-macros" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.41", ] [[package]] -name = "serde_json" -version = "1.0.96" +name = "tokio-stream" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ - "itoa", - "ryu", - "serde", + "futures-core", + "pin-project-lite", + "tokio", ] [[package]] -name = "sha2" -version = "0.9.9" +name = "tokio-util" +version = "0.6.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" dependencies = [ - "block-buffer 0.9.0", - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", ] [[package]] -name = "sha2" -version = "0.10.6" +name = "tokio-util" +version = "0.7.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" dependencies = [ - "cfg-if 1.0.0", - "cpufeatures", - "digest 0.10.6", + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", ] [[package]] -name = "sha3" -version = "0.10.8" +name = "toml" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ - "digest 0.10.6", - "keccak", + "serde", ] [[package]] -name = "signature" -version = "1.6.4" +name = "toml_datetime" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" [[package]] -name = "smallvec" -version = "1.10.0" +name = "toml_edit" +version = "0.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] [[package]] -name = "smart-default" -version = "0.6.0" +name = "tonic" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" +checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +dependencies = [ + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic-build" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" dependencies = [ "proc-macro2", + "prost-build", "quote", "syn 1.0.109", ] [[package]] -name = "spin" -version = "0.5.2" +name = "tower" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.10", + "tower-layer", + "tower-service", + "tracing", +] [[package]] -name = "static_assertions" -version = "1.1.0" +name = "tower-layer" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" [[package]] -name = "strum" -version = "0.24.1" +name = "tower-service" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros", -] +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" [[package]] -name = "strum_macros" -version = "0.24.3" +name = "tracing" +version = "0.1.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" dependencies = [ - "heck", - "proc-macro2", - "quote", - "rustversion", - "syn 1.0.109", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", ] [[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "syn" -version = "1.0.109" +name = "tracing-appender" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", ] [[package]] -name = "syn" -version = "2.0.15" +name = "tracing-attributes" +version = "0.1.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "unicode-ident", + "syn 2.0.41", ] [[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "termcolor" -version = "1.2.0" +name = "tracing-core" +version = "0.1.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" dependencies = [ - "winapi-util", + "once_cell", + "valuable", ] [[package]] -name = "thiserror" -version = "1.0.40" +name = "tracing-futures" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" dependencies = [ - "thiserror-impl", + "pin-project", + "tracing", ] [[package]] -name = "thiserror-impl" -version = "1.0.40" +name = "tracing-log" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.15", + "log", + "once_cell", + "tracing-core", ] [[package]] -name = "time" -version = "0.1.45" +name = "tracing-log" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", + "log", + "once_cell", + "tracing-core", ] [[package]] -name = "toml" -version = "0.5.11" +name = "tracing-opentelemetry" +version = "0.17.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" dependencies = [ - "serde", + "once_cell", + "opentelemetry", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", ] [[package]] -name = "toml_datetime" -version = "0.6.1" +name = "tracing-subscriber" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] [[package]] -name = "toml_edit" -version = "0.19.8" +name = "try-lock" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" -dependencies = [ - "indexmap", - "toml_datetime", - "winnow", -] +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "uint" @@ -1426,15 +2824,33 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.8" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] -name = "unicode-width" -version = "0.1.10" +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" [[package]] name = "version_check" @@ -1443,16 +2859,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" [[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" +name = "want" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] [[package]] name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" +version = "0.9.0+wasi-snapshot-preview1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" [[package]] name = "wasi" @@ -1462,9 +2881,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.85" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b6cb788c4e39112fbe1822277ef6fb3c55cd86b95cb3d3c4c1c9597e4ac74b4" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if 1.0.0", "wasm-bindgen-macro", @@ -1472,24 +2891,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.85" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35e522ed4105a9d626d885b35d62501b30d9666283a5c8be12c14a8bdafe7822" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.85" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "358a79a0cb89d21db8120cbfb91392335913e4890665b1a7981d9e956903b434" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1497,22 +2916,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.85" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4783ce29f09b9d93134d41297aded3a712b7b979e9c6f28c32cb88c973a94869" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.85" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a901d592cafaa4d711bc324edfaff879ac700b19c3dfd60058d2b445be2691eb" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wee_alloc" @@ -1526,6 +2945,18 @@ dependencies = [ "winapi", ] +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + [[package]] name = "winapi" version = "0.3.9" @@ -1543,100 +2974,180 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] -name = "winapi-util" -version = "0.1.5" +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" dependencies = [ - "winapi", + "windows-targets 0.48.5", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "windows-sys" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] [[package]] -name = "windows" -version = "0.48.0" +name = "windows-sys" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" dependencies = [ - "windows-targets", + "windows-targets 0.52.0", ] [[package]] name = "windows-targets" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" [[package]] name = "windows_aarch64_msvc" -version = "0.48.0" +version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" [[package]] name = "windows_i686_gnu" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" [[package]] name = "windows_i686_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" [[package]] name = "windows_x86_64_gnu" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" [[package]] name = "windows_x86_64_gnullvm" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" [[package]] name = "windows_x86_64_msvc" -version = "0.48.0" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" [[package]] name = "winnow" -version = "0.4.6" +version = "0.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" dependencies = [ "memchr", ] [[package]] -name = "wyz" -version = "0.2.0" +name = "zerocopy" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] [[package]] name = "zeroize" @@ -1655,7 +3166,7 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.41", ] [[package]] diff --git a/registry/contract/Cargo.toml b/registry/contract/Cargo.toml index c4406cc85..15ff97ab5 100644 --- a/registry/contract/Cargo.toml +++ b/registry/contract/Cargo.toml @@ -8,9 +8,10 @@ edition = "2021" crate-type = ["cdylib"] [dependencies] -near-sdk = "4.1.1" +borsh = "1.0.0" +near-sdk = "5.0.0-alpha.1" uint = { version = "0.9.3", default-features = false } -indexer_rule_type = { features = ["nearsdk"], path = "../../indexer/indexer_rule_type" } +registry-types = { path = "../types", features = ["nearsdk"] } [profile.release] codegen-units = 1 diff --git a/registry/contract/src/lib.rs b/registry/contract/src/lib.rs index c2d14b8c8..a7a4cf761 100644 --- a/registry/contract/src/lib.rs +++ b/registry/contract/src/lib.rs @@ -1,12 +1,12 @@ -use std::collections::HashMap; - // Find all our documentation at https://docs.near.org use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::store::UnorderedMap; use near_sdk::{env, log, near_bindgen, serde_json, AccountId, BorshStorageKey, CryptoHash}; -use indexer_rule_type::indexer_rule::IndexerRule; +use registry_types::{ + AccountOrAllIndexers, IndexerConfig, IndexerRule, IndexerRuleKind, MatchingRule, Status, +}; type FunctionName = String; // Define the contract structure @@ -21,56 +21,6 @@ pub type IndexersByAccount = UnorderedMap; -/// Enum to allow for returning either a single account's indexers or all indexers -/// This type uses `HashMap` rather than `UnorderedMap` as we need to load the -/// data into memory to return it. -#[derive(Debug, PartialEq, Eq, Serialize)] -#[serde(crate = "near_sdk::serde")] -pub enum AccountOrAllIndexers { - All(HashMap>), - Account(HashMap), -} - -impl From<&IndexersByAccount> for AccountOrAllIndexers { - fn from(indexers_by_account: &IndexersByAccount) -> Self { - AccountOrAllIndexers::All( - indexers_by_account - .iter() - .map(|(account_id, account_indexers)| { - ( - account_id.clone(), - account_indexers - .iter() - .map(|(function_name, config)| (function_name.clone(), config.clone())) - .collect(), - ) - }) - .collect(), - ) - } -} - -impl From<&IndexerConfigByFunctionName> for AccountOrAllIndexers { - fn from(indexer_config_by_function_name: &IndexerConfigByFunctionName) -> Self { - AccountOrAllIndexers::Account( - indexer_config_by_function_name - .iter() - .map(|(function_name, config)| (function_name.clone(), config.clone())) - .collect(), - ) - } -} - -// Define the contract structure -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] -#[serde(crate = "near_sdk::serde")] -pub struct IndexerConfig { - code: String, - start_block_height: Option, - schema: Option, - filter: IndexerRule, -} - // Migration types #[derive(BorshStorageKey, BorshSerialize)] pub enum StorageKeys { @@ -80,23 +30,6 @@ pub enum StorageKeys { AccountV1(CryptoHash), } -#[near_bindgen] -#[derive(BorshDeserialize, BorshSerialize, Debug)] -pub struct OldState { - registry: OldIndexersByAccount, - account_roles: Vec, -} -pub type OldIndexersByAccount = UnorderedMap; -pub type OldIndexerConfigByFunctionName = UnorderedMap; - -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] -#[serde(crate = "near_sdk::serde")] -pub struct OldIndexerConfig { - code: String, - start_block_height: Option, - schema: Option, -} - /// These roles are used to control access across the various contract methods. /// /// Owners @@ -127,31 +60,31 @@ impl Default for Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![ AccountRole { - account_id: AccountId::new_unchecked("morgs.near".to_string()), + account_id: "morgs.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("nearpavel.near".to_string()), + account_id: "nearpavel.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("roshaan.near".to_string()), + account_id: "roshaan.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("flatirons.near".to_string()), + account_id: "flatirons.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("root.near".to_string()), + account_id: "root.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("khorolets.near".to_string()), + account_id: "khorolets.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("darunrs.near".to_string()), + account_id: "darunrs.near".parse().unwrap(), role: Role::Owner, }, AccountRole { @@ -166,46 +99,19 @@ impl Default for Contract { // Implement the contract structure #[near_bindgen] impl Contract { - #[private] - #[init(ignore_state)] - pub fn migrate() -> Self { - log!("Pre-migration storage size {:?}", env::storage_usage()); - - let mut state: OldState = env::state_read().unwrap_or_else(|| { - env::panic_str("Failed to deserialize contract state"); - }); - - let mut registry = IndexersByAccount::new(StorageKeys::RegistryV1); - - state - .registry - .iter_mut() - .for_each(|(account_id, functions)| { - let mut new_functions: IndexerConfigByFunctionName = - IndexerConfigByFunctionName::new(StorageKeys::AccountV1(env::sha256_array( - account_id.as_bytes(), - ))); - functions - .iter() - .for_each(|(function_name, old_indexer_config)| { - let new_indexer_config = IndexerConfig { - code: old_indexer_config.code.clone(), - start_block_height: old_indexer_config.start_block_height, - schema: old_indexer_config.schema.clone(), - filter: indexer_rule_type::near_social_indexer_rule(), - }; - new_functions.insert(function_name.clone(), new_indexer_config); - }); - registry.insert(account_id.clone(), new_functions); - functions.clear(); - }); - state.registry.clear(); - - log!("Post-migration storage size {:?}", env::storage_usage()); - - Self { - registry, - account_roles: Self::default().account_roles, + pub fn near_social_indexer_rule() -> IndexerRule { + let contract = "social.near"; + let method = "set"; + let matching_rule = MatchingRule::ActionFunctionCall { + affected_account_id: contract.to_string(), + function: method.to_string(), + status: Status::Any, + }; + IndexerRule { + indexer_rule_kind: IndexerRuleKind::Action, + matching_rule, + id: None, + name: None, } } @@ -347,7 +253,7 @@ impl Contract { filter_rule } - None => indexer_rule_type::near_social_indexer_rule(), + None => Contract::near_social_indexer_rule(), }; log!( @@ -425,9 +331,29 @@ impl Contract { ) }); - AccountOrAllIndexers::from(account_indexers) + AccountOrAllIndexers::Account( + account_indexers + .iter() + .map(|(function_name, config)| (function_name.clone(), config.clone())) + .collect(), + ) } - None => AccountOrAllIndexers::from(&self.registry), + None => AccountOrAllIndexers::All( + self.registry + .iter() + .map(|(account_id, account_indexers)| { + ( + account_id.clone(), + account_indexers + .iter() + .map(|(function_name, config)| { + (function_name.clone(), config.clone()) + }) + .collect(), + ) + }) + .collect(), + ), } } } @@ -439,107 +365,18 @@ impl Contract { #[cfg(test)] mod tests { use super::*; - use indexer_rule_type::indexer_rule::{IndexerRuleKind, MatchingRule, Status}; - #[test] - fn migrate() { - let mut registry = OldIndexersByAccount::new(StorageKeys::Registry); - let account_id = AccountId::new_unchecked("morgs.near".to_string()); - let mut funcs: OldIndexerConfigByFunctionName = OldIndexerConfigByFunctionName::new( - StorageKeys::Account(env::sha256_array(account_id.as_bytes())), - ); - - funcs.insert( - "test".to_string(), - OldIndexerConfig { - code: "return block;".to_string(), - start_block_height: None, - schema: None, - }, - ); - funcs.insert( - "test2".to_string(), - OldIndexerConfig { - code: "return block2;".to_string(), - start_block_height: None, - schema: None, - }, - ); - registry.insert(AccountId::new_unchecked("morgs.near".to_string()), funcs); - - let mut funcs: OldIndexerConfigByFunctionName = OldIndexerConfigByFunctionName::new( - StorageKeys::Account(env::sha256_array("root.near".as_bytes())), - ); - funcs.insert( - "my_function".to_string(), - OldIndexerConfig { - code: "var x = 1;".to_string(), - start_block_height: Some(1), - schema: None, - }, - ); - registry.insert(AccountId::new_unchecked("root.near".to_string()), funcs); - - let mut funcs: OldIndexerConfigByFunctionName = OldIndexerConfigByFunctionName::new( - StorageKeys::Account(env::sha256_array("roshaan.near".as_bytes())), - ); - funcs.insert( - "another/function".to_string(), - OldIndexerConfig { - code: "console.log('hello');".to_string(), - start_block_height: Some(1), - schema: None, - }, - ); - registry.insert(AccountId::new_unchecked("roshaan.near".to_string()), funcs); - - env::state_write(&OldState { - registry, - account_roles: vec![], - }); - - let contract = Contract::migrate(); - - assert_eq!(contract.registry.len(), 3); - assert_eq!( - contract - .registry - .get(&AccountId::new_unchecked("morgs.near".to_string())) - .unwrap() - .len(), - 2 - ); - assert_eq!( - contract - .registry - .get(&AccountId::new_unchecked("root.near".to_string())) - .unwrap() - .get("my_function") - .unwrap() - .filter, - indexer_rule_type::near_social_indexer_rule() - ); - assert_eq!( - contract - .registry - .get(&AccountId::new_unchecked("roshaan.near".to_string())) - .unwrap() - .len(), - 1 - ); - - assert_eq!(contract.account_roles.len(), 7); - } + use std::collections::HashMap; #[test] fn list_account_roles() { let admins = vec![ AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("flatirons.near".to_string()), + account_id: "flatirons.near".parse().unwrap(), role: Role::User, }, ]; @@ -556,7 +393,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -569,7 +406,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -582,7 +419,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -601,7 +438,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -616,11 +453,11 @@ mod tests { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![ AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("alice.near".to_string()), + account_id: "alice.near".parse().unwrap(), role: Role::Owner, }, ], @@ -635,7 +472,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -650,11 +487,11 @@ mod tests { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![ AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }, AccountRole { - account_id: AccountId::new_unchecked("alice.near".to_string()), + account_id: "alice.near".parse().unwrap(), role: Role::User, }, ], @@ -669,11 +506,11 @@ mod tests { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![ AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }, AccountRole { - account_id: AccountId::new_unchecked("alice.near".to_string()), + account_id: "alice.near".parse().unwrap(), role: Role::User, }, ], @@ -693,7 +530,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -714,7 +551,7 @@ mod tests { let contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -726,7 +563,7 @@ mod tests { let contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -738,7 +575,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -746,7 +583,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; contract.register_indexer_function( @@ -769,7 +606,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -777,7 +614,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; contract.register_indexer_function( "test".to_string(), @@ -835,7 +672,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -855,7 +692,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -871,7 +708,7 @@ mod tests { assert!(contract .registry - .get(&AccountId::new_unchecked("alice.near".to_string())) + .get(&"alice.near".parse::().unwrap()) .unwrap() .get("test") .is_some()); @@ -882,7 +719,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -890,7 +727,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: None, schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; contract.register_indexer_function( @@ -905,7 +742,7 @@ mod tests { assert_eq!( contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .unwrap() .get("test") .unwrap(), @@ -918,7 +755,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -950,7 +787,7 @@ mod tests { assert_eq!( contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .unwrap() .get("test") .unwrap(), @@ -963,7 +800,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -994,7 +831,7 @@ mod tests { assert_eq!( contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .unwrap() .get("test") .unwrap(), @@ -1008,7 +845,7 @@ mod tests { let mut contract = Contract { registry: IndexersByAccount::new(StorageKeys::Registry), account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -1027,7 +864,7 @@ mod tests { #[test] fn register_indexer_function_for_existing_account() { - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1037,7 +874,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1045,7 +882,7 @@ mod tests { let mut contract = Contract { registry, account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -1053,7 +890,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: None, schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; contract.register_indexer_function( @@ -1068,7 +905,7 @@ mod tests { assert_eq!( contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .unwrap() .len(), 2 @@ -1077,7 +914,7 @@ mod tests { #[test] fn users_can_remove_their_own_functions() { - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1087,7 +924,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1095,7 +932,7 @@ mod tests { let mut contract = Contract { registry, account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -1104,13 +941,13 @@ mod tests { assert!(contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .is_none()); } #[test] fn owners_can_remove_their_own_functions() { - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1120,7 +957,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1128,7 +965,7 @@ mod tests { let mut contract = Contract { registry, account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -1137,14 +974,14 @@ mod tests { assert!(contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .is_none()); } #[test] #[should_panic(expected = "Account bob.near does not have one of required roles [Owner]")] fn users_cannot_remove_functions_for_others() { - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1154,7 +991,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1162,7 +999,7 @@ mod tests { let mut contract = Contract { registry, account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::User, }], }; @@ -1172,7 +1009,7 @@ mod tests { #[test] fn owners_can_remove_functions_for_others() { - let account_id = AccountId::new_unchecked("alice.near".to_string()); + let account_id = "alice.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1182,7 +1019,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1190,7 +1027,7 @@ mod tests { let mut contract = Contract { registry, account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse().unwrap(), role: Role::Owner, }], }; @@ -1199,14 +1036,14 @@ mod tests { assert!(contract .registry - .get(&AccountId::new_unchecked("alice.near".to_string())) + .get(&"alice.near".parse::().unwrap()) .is_none()); } #[test] #[should_panic(expected = "Account bob.near does not have any roles")] fn anonymous_cannot_remove_functions() { - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1216,7 +1053,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1231,7 +1068,7 @@ mod tests { #[test] fn remove_one_of_many_indexer_functions_from_account() { - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1241,7 +1078,7 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); account_indexers.insert( @@ -1250,7 +1087,7 @@ mod tests { code: "var x= 2;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }, ); let mut registry = IndexersByAccount::new(StorageKeys::Registry); @@ -1258,7 +1095,7 @@ mod tests { let mut contract = Contract { registry, account_roles: vec![AccountRole { - account_id: AccountId::new_unchecked("bob.near".to_string()), + account_id: "bob.near".parse::().unwrap(), role: Role::User, }], }; @@ -1268,7 +1105,7 @@ mod tests { assert_eq!( contract .registry - .get(&AccountId::new_unchecked("bob.near".to_string())) + .get(&"bob.near".parse::().unwrap()) .unwrap() .len(), 1 @@ -1279,7 +1116,7 @@ mod tests { #[should_panic(expected = "Function test is not registered under account bob.near")] fn read_non_existant_indexer_function() { let mut registry = IndexersByAccount::new(StorageKeys::Registry); - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1298,9 +1135,9 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: None, schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1324,9 +1161,9 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: None, schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; - let account_id = AccountId::new_unchecked("alice.near".to_string()); + let account_id = "alice.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1358,9 +1195,9 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1375,7 +1212,7 @@ mod tests { assert_eq!( contract.list_indexer_functions(None), AccountOrAllIndexers::All(HashMap::from([( - AccountId::new_unchecked("bob.near".to_string()), + "bob.near".parse().unwrap(), HashMap::from([("test".to_string(), config)]) )])) ); @@ -1387,9 +1224,9 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; - let account_id = AccountId::new_unchecked("bob.near".to_string()); + let account_id = "bob.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); @@ -1424,9 +1261,9 @@ mod tests { code: "var x= 1;".to_string(), start_block_height: Some(43434343), schema: None, - filter: indexer_rule_type::near_social_indexer_rule(), + filter: Contract::near_social_indexer_rule(), }; - let account_id = AccountId::new_unchecked("alice.near".to_string()); + let account_id = "alice.near".parse::().unwrap(); let mut account_indexers = IndexerConfigByFunctionName::new(StorageKeys::Account( env::sha256_array(account_id.as_bytes()), )); diff --git a/registry/types/Cargo.lock b/registry/types/Cargo.lock new file mode 100644 index 000000000..44fbbc5eb --- /dev/null +++ b/registry/types/Cargo.lock @@ -0,0 +1,3174 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + +[[package]] +name = "actix" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cba56612922b907719d4a01cf11c8d5b458e7d3dba946d0435f20f58d6795ed2" +dependencies = [ + "actix-macros", + "actix-rt", + "actix_derive", + "bitflags 2.4.1", + "bytes", + "crossbeam-channel", + "futures-core", + "futures-sink", + "futures-task", + "futures-util", + "log", + "once_cell", + "parking_lot", + "pin-project-lite", + "smallvec", + "tokio", + "tokio-util 0.7.10", +] + +[[package]] +name = "actix-macros" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01ed3140b2f8d422c68afa1ed2e85d996ea619c988ac834d255db32138655cb" +dependencies = [ + "quote", + "syn 2.0.41", +] + +[[package]] +name = "actix-rt" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28f32d40287d3f402ae0028a9d54bef51af15c8769492826a69d28f81893151d" +dependencies = [ + "futures-core", + "tokio", +] + +[[package]] +name = "actix_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c7db3d5a9718568e4cf4a537cfd7070e6e6ff7481510d0237fb529ac850f6d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "ahash" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a824f2aa7e75a0c98c5a504fceb80649e9c35265d44525b5f94de4771a395cd" +dependencies = [ + "getrandom 0.2.11", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91429305e9f0a25f6205c5b8e0d2db09e0708a7a6df0f42212bb56c32c8ac97a" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "android-tzdata" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d664a92ecae85fd0a7392615844904654d1d5f5514837f471ddef4a057aba1b6" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "anstyle-parse" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +dependencies = [ + "anstyle", + "windows-sys 0.52.0", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "blake2" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a4e37d16930f5459780f5621038b6382b9bb37c19016f39fb6b5808d831f174" +dependencies = [ + "crypto-mac", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "borsh" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" +dependencies = [ + "borsh-derive 0.9.3", + "hashbrown 0.11.2", +] + +[[package]] +name = "borsh" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4114279215a005bc675e386011e594e1d9b800918cea18fcadadcce864a2046b" +dependencies = [ + "borsh-derive 0.10.3", + "hashbrown 0.13.2", +] + +[[package]] +name = "borsh" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9897ef0f1bd2362169de6d7e436ea2237dc1085d7d1e4db75f4be34d86f309d1" +dependencies = [ + "borsh-derive 1.2.1", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" +dependencies = [ + "borsh-derive-internal 0.9.3", + "borsh-schema-derive-internal 0.9.3", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" +dependencies = [ + "borsh-derive-internal 0.10.3", + "borsh-schema-derive-internal 0.10.3", + "proc-macro-crate 0.1.5", + "proc-macro2", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478b41ff04256c5c8330f3dfdaaae2a5cc976a8e75088bafa4625b0d0208de8c" +dependencies = [ + "once_cell", + "proc-macro-crate 2.0.1", + "proc-macro2", + "quote", + "syn 2.0.41", + "syn_derive", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afb438156919598d2c7bad7e1c0adf3d26ed3840dbc010db1a882a65583ca2fb" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634205cc43f74a1b9046ef87c4540ebda95696ec0f315024860cad7c5b0f5ccd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "bytesize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" +dependencies = [ + "serde", +] + +[[package]] +name = "c2-chacha" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27dae93fe7b1e0424dc57179ac396908c26b035a87234809f5c4dfd1b47dc80" +dependencies = [ + "cipher", + "ppv-lite86", +] + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cfg-if" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + +[[package]] +name = "chrono" +version = "0.4.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" +dependencies = [ + "android-tzdata", + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-targets 0.48.5", +] + +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array", +] + +[[package]] +name = "clap" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfaff671f6b22ca62406885ece523383b9b64022e341e53e009a62ebc47a45f2" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a216b506622bb1d316cd51328dce24e07bdff4a6128a47c7e7fad11878d5adbb" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "cpufeatures" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0" +dependencies = [ + "libc", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c3242926edf34aec4ac3a77108ad4854bffaa2e4ddc1824124ce59231302d5" +dependencies = [ + "cfg-if 1.0.0", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d96137f14f244c37f989d9fff8f95e6c18b918e71f36638f8c49112e4c78f" +dependencies = [ + "cfg-if 1.0.0", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "curve25519-dalek" +version = "3.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.5.1", + "subtle", + "zeroize", +] + +[[package]] +name = "darling" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.41", +] + +[[package]] +name = "darling_macro" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" +dependencies = [ + "darling_core", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "deranged" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8eb30d70a07a3b04884d2677f06bec33509dc67ca60d92949e5535352d3191dc" +dependencies = [ + "powerfmt", + "serde", +] + +[[package]] +name = "derive_arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "crypto-common", +] + +[[package]] +name = "dyn-clone" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "545b22097d44f8a9581187cdf93de7a71e4722bf51200cfaba810865b49a495d" + +[[package]] +name = "easy-ext" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53aff6fdc1b181225acdcb5b14c47106726fd8e486707315b1b138baed68ee31" + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "signature", +] + +[[package]] +name = "ed25519-dalek" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" +dependencies = [ + "curve25519-dalek", + "ed25519", + "rand 0.7.3", + "serde", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "enum-map" +version = "2.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6866f3bfdf8207509a033af1a75a7b08abda06bbaaeae6669323fd5a097df2e9" +dependencies = [ + "enum-map-derive", +] + +[[package]] +name = "enum-map-derive" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f282cfdfe92516eb26c2af8589c274c7c17681f5ecc03c18255fe741c6aa64eb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "futures" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0290714b38af9b4a7b094b8a37086d1b4e61f2df9122c3cad2577669145335" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff4dd66668b557604244583e3e1e1eada8c5c2e96a6d0d6653ede395b78bbacb" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c" + +[[package]] +name = "futures-executor" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f4fb8693db0cf099eadcca0efe2a5a22e4550f98ed16aba6c48700da29597bc" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa" + +[[package]] +name = "futures-sink" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e36d3378ee38c2a36ad710c5d30c2911d752cb941c00c72dbabfb786a7970817" + +[[package]] +name = "futures-task" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efd193069b0ddadc69c46389b740bbccdd97203899b48d09c5f7969591d6bae2" + +[[package]] +name = "futures-util" +version = "0.3.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19526d624e703a3179b3d322efec918b6246ea0fa51d41124525f00f1cc8104" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "h2" +version = "0.3.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d6250322ef6e60f93f9a2162799302cd6f68f79f6e5d85c8c16f14d1d958178" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util 0.7.10", + "tracing", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash 0.7.7", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.6", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "0.14.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8326b86b6cff230b97d0d312a6c40a60726df3332e721f72a1b035f451663b20" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "js-sys" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "json_comments" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dbbfed4e59ba9750e15ba154fdfd9329cee16ff3df539c2666b70f58cc32105" + +[[package]] +name = "keccak" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin", +] + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "memory_units" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.48.0", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "near-abi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bd176820187cfb134a5147330fe803357bf5dab9a14f891d1702beb3d471dfb" +dependencies = [ + "borsh 1.2.1", + "schemars", + "semver", + "serde", +] + +[[package]] +name = "near-account-id" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc0cb40869cab7f5232f934f45db35bffe0f2d2a7cb0cd0346202fbe4ebf2dd7" +dependencies = [ + "borsh 0.10.3", + "serde", +] + +[[package]] +name = "near-account-id" +version = "1.0.0-alpha.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d10d45a9c49c3e975c362cf4d1dc1d7b72a716b30394bea56ee2a8fb225f50b7" +dependencies = [ + "borsh 1.2.1", + "schemars", + "serde", +] + +[[package]] +name = "near-config-utils" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5523e7dce493c45bc3241eb3100d943ec471852f9b1f84b46a34789eadf17031" +dependencies = [ + "anyhow", + "json_comments", + "thiserror", + "tracing", +] + +[[package]] +name = "near-crypto" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff6b382b626e7e0cd372d027c6672ac97b4b6ee6114288c9e58d8180b935d315" +dependencies = [ + "blake2", + "borsh 0.10.3", + "bs58", + "c2-chacha", + "curve25519-dalek", + "derive_more", + "ed25519-dalek", + "hex", + "near-account-id 0.17.0", + "near-config-utils", + "near-stdx", + "once_cell", + "primitive-types", + "rand 0.7.3", + "secp256k1", + "serde", + "serde_json", + "subtle", + "thiserror", +] + +[[package]] +name = "near-fmt" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c44c842c6cfcd9b8c387cccd4cd0619a5f21920cde5d5c292af3cc5d40510672" +dependencies = [ + "near-primitives-core", +] + +[[package]] +name = "near-gas" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14e75c875026229902d065e4435804497337b631ec69ba746b102954273e9ad1" +dependencies = [ + "borsh 1.2.1", + "schemars", + "serde", +] + +[[package]] +name = "near-o11y" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af7d35397b02b131c188c72f3885e97daeccab134ec2fc8cc0073a94cf1cfe19" +dependencies = [ + "actix", + "atty", + "clap", + "near-crypto", + "near-primitives-core", + "once_cell", + "opentelemetry", + "opentelemetry-otlp", + "opentelemetry-semantic-conventions", + "prometheus", + "serde", + "strum", + "thiserror", + "tokio", + "tracing", + "tracing-appender", + "tracing-opentelemetry", + "tracing-subscriber", +] + +[[package]] +name = "near-primitives" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f7051aaf199adc4d068620fca6d5f70f906a1540d03a8bb3701271f8881835" +dependencies = [ + "arbitrary", + "borsh 0.10.3", + "bytesize", + "cfg-if 1.0.0", + "chrono", + "derive_more", + "easy-ext", + "enum-map", + "hex", + "near-crypto", + "near-fmt", + "near-primitives-core", + "near-rpc-error-macro", + "near-stdx", + "near-vm-errors", + "num-rational", + "once_cell", + "primitive-types", + "rand 0.8.5", + "reed-solomon-erasure", + "serde", + "serde_json", + "serde_with", + "serde_yaml", + "smart-default", + "strum", + "thiserror", + "time", + "tracing", +] + +[[package]] +name = "near-primitives-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "775fec19ef51a341abdbf792a9dda5b4cb89f488f681b2fd689b9321d24db47b" +dependencies = [ + "arbitrary", + "base64 0.21.5", + "borsh 0.10.3", + "bs58", + "derive_more", + "enum-map", + "near-account-id 0.17.0", + "num-rational", + "serde", + "serde_repr", + "serde_with", + "sha2 0.10.8", + "strum", + "thiserror", +] + +[[package]] +name = "near-rpc-error-core" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c1eda300e2e78f4f945ae58117d49e806899f4a51ee2faa09eda5ebc2e6571" +dependencies = [ + "quote", + "serde", + "syn 2.0.41", +] + +[[package]] +name = "near-rpc-error-macro" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31d2dadd765101c77e664029dd6fbec090e696877d4ae903c620d02ceda4969a" +dependencies = [ + "fs2", + "near-rpc-error-core", + "serde", + "syn 2.0.41", +] + +[[package]] +name = "near-sdk" +version = "5.0.0-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62385d178cbf20d7b62277e0ffe5d65b133989994240b2789d5510fa7de332da" +dependencies = [ + "base64 0.13.1", + "borsh 1.2.1", + "bs58", + "near-abi", + "near-account-id 1.0.0-alpha.4", + "near-crypto", + "near-gas", + "near-primitives", + "near-primitives-core", + "near-sdk-macros", + "near-sys", + "near-token", + "near-vm-logic", + "once_cell", + "schemars", + "serde", + "serde_json", + "wee_alloc", +] + +[[package]] +name = "near-sdk-macros" +version = "5.0.0-alpha.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d00f960e5f28e8b5a223de7ba35f494c094c213c7b50f94927713a93736013dd" +dependencies = [ + "Inflector", + "darling", + "proc-macro2", + "quote", + "serde", + "serde_json", + "strum", + "strum_macros", + "syn 2.0.41", +] + +[[package]] +name = "near-stdx" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6540152fba5e96fe5d575b79e8cd244cf2add747bb01362426bdc069bc3a23bc" + +[[package]] +name = "near-sys" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397688591acf8d3ebf2c2485ba32d4b24fc10aad5334e3ad8ec0b7179bfdf06b" + +[[package]] +name = "near-token" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b68f3f8a2409f72b43efdbeff8e820b81e70824c49fee8572979d789d1683fb" +dependencies = [ + "borsh 1.2.1", + "schemars", + "serde", +] + +[[package]] +name = "near-vm-errors" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec545d1bede0579e7c15dd2dce9b998dc975c52f2165702ff40bec7ff69728bb" +dependencies = [ + "borsh 0.10.3", + "near-account-id 0.17.0", + "near-rpc-error-macro", + "serde", + "strum", + "thiserror", +] + +[[package]] +name = "near-vm-logic" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d7487c678ed1963a0ecd5033f72bb41caa58debd6fe8025a9bef6e1a6a519a" +dependencies = [ + "borsh 0.10.3", + "ed25519-dalek", + "near-account-id 0.17.0", + "near-crypto", + "near-fmt", + "near-o11y", + "near-primitives", + "near-primitives-core", + "near-stdx", + "near-vm-errors", + "ripemd", + "serde", + "sha2 0.10.8", + "sha3", + "zeropool-bn", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f6f7833f2cbf2360a6cfd58cd41a53aa7a90bd4c202f5b1c7dd2ed73c57b2c3" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-rational" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.3", + "libc", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "opentelemetry" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6105e89802af13fdf48c49d7646d3b533a70e536d818aae7e78ba0433d01acb8" +dependencies = [ + "async-trait", + "crossbeam-channel", + "futures-channel", + "futures-executor", + "futures-util", + "js-sys", + "lazy_static", + "percent-encoding", + "pin-project", + "rand 0.8.5", + "thiserror", + "tokio", + "tokio-stream", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1a6ca9de4c8b00aa7f1a153bd76cb263287155cec642680d79d98706f3d28a" +dependencies = [ + "async-trait", + "futures", + "futures-util", + "http", + "opentelemetry", + "prost", + "thiserror", + "tokio", + "tonic", + "tonic-build", +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "985cc35d832d412224b2cffe2f9194b1b89b6aa5d0bef76d080dce09d90e62bd" +dependencies = [ + "opentelemetry", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if 1.0.0", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "petgraph" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9" +dependencies = [ + "fixedbitset", + "indexmap 2.1.0", +] + +[[package]] +name = "pin-project" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + +[[package]] +name = "proc-macro-crate" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97dc5fea232fc28d2f597b37c4876b348a40e33f3b02cc975c8d006d78d94b1a" +dependencies = [ + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if 1.0.0", + "fnv", + "lazy_static", + "memchr", + "parking_lot", + "protobuf", + "thiserror", +] + +[[package]] +name = "prost" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "444879275cb4fd84958b1a1d5420d15e6fcf7c235fe47f053c9c2a80aceb6001" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62941722fb675d463659e49c4f3fe1fe792ff24fe5bbaa9c08cd3b98a1c354f5" +dependencies = [ + "bytes", + "heck 0.3.3", + "itertools", + "lazy_static", + "log", + "multimap", + "petgraph", + "prost", + "prost-types", + "regex", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9cc1a3263e07e0bf68e96268f37665207b49560d98739662cdfaae215c720fe" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "prost-types" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "534b7a0e836e3c482d2693070f982e39e7611da9695d4d1f5a4b186b51faef0a" +dependencies = [ + "bytes", + "prost", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.11", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "reed-solomon-erasure" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" +dependencies = [ + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.3", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "registry-types" +version = "0.1.0" +dependencies = [ + "borsh 1.2.1", + "near-primitives", + "near-sdk", + "serde", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver", +] + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "schemars" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "semver" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3081f5ffbb02284dda55132aa26daecedd7372a42417bbbab6f14ab7d6bb9145" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_with" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" +dependencies = [ + "base64 0.21.5", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.1.0", + "serde", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_yaml" +version = "0.9.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cc7a1570e38322cfe4154732e5110f887ea57e22b76f4bfd32b5bdd3368666c" +dependencies = [ + "indexmap 2.1.0", + "itoa", + "ryu", + "serde", + "unsafe-libyaml", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if 1.0.0", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "smallvec" +version = "1.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "smart-default" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2", + "quote", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn_derive" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1329189c02ff984e9736652b1631330da25eaa6bc639089ed4915d25446cbe7b" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if 1.0.0", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "thiserror" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a7210f5c9a7156bb50aa36aed4c95afb51df0df00713949448cf9e97d382d2" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266b2e40bc00e5a6c09c3584011e08b06f123c00362c92b975ba9843aaaa14b8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if 1.0.0", + "once_cell", +] + +[[package]] +name = "time" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a34ab300f2dee6e562c10a046fc05e358b29f9bf92277f30c3c8d82275f6f5" +dependencies = [ + "deranged", + "itoa", + "powerfmt", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" + +[[package]] +name = "time-macros" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +dependencies = [ + "time-core", +] + +[[package]] +name = "tokio" +version = "1.28.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7b1cfd2aa4011f2de74c2c4c63665e27a71006b0a192dcd2710272e73dfa2" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.6.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36943ee01a6d67977dd3f84a5a1d2efeb4ada3a1ae771cadfaa535d9d9fc6507" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "log", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "396e4d48bbb2b7554c944bde63101b5ae446cff6ec4a24227428f15eb72ef338" +dependencies = [ + "indexmap 2.1.0", + "toml_datetime", + "winnow", +] + +[[package]] +name = "tonic" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08f4649d10a70ffa3522ca559031285d8e421d727ac85c60825761818f5d0a" +dependencies = [ + "async-stream", + "async-trait", + "base64 0.13.1", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "tokio", + "tokio-stream", + "tokio-util 0.6.10", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic-build" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9403f1bafde247186684b230dc6f38b5cd514584e8bec1dd32514be4745fa757" +dependencies = [ + "proc-macro2", + "prost-build", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.10", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3566e8ce28cc0a3fe42519fc80e6b4c943cc4c8cef275620eb8dac2d3d4e06cf" +dependencies = [ + "crossbeam-channel", + "thiserror", + "time", + "tracing-subscriber", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-opentelemetry" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbbe89715c1dbbb790059e2565353978564924ee85017b5fff365c872ff6721f" +dependencies = [ + "once_cell", + "opentelemetry", + "tracing", + "tracing-core", + "tracing-log 0.1.4", + "tracing-subscriber", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log 0.2.0", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unsafe-libyaml" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28467d3e1d3c6586d8f25fa243f544f5800fec42d97032474e17222c2b75cfa" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" +dependencies = [ + "cfg-if 1.0.0", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" + +[[package]] +name = "wee_alloc" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" +dependencies = [ + "cfg-if 0.1.10", + "libc", + "memory_units", + "winapi", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "winnow" +version = "0.5.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c830786f7720c2fd27a1a0e27a709dbd3c4d009b56d098fc742d4f4eab91fe2" +dependencies = [ + "memchr", +] + +[[package]] +name = "zerocopy" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c4061bedbb353041c12f413700357bec76df2c7e2ca8e4df8bac24c6bf68e3d" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3c129550b3e6de3fd0ba67ba5c81818f9805e58b8d7fee80a3a59d2c9fc601a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zeroize" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "zeropool-bn" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e61de68ede9ffdd69c01664f65a178c5188b73f78faa21f0936016a888ff7c" +dependencies = [ + "borsh 0.9.3", + "byteorder", + "crunchy", + "lazy_static", + "rand 0.8.5", + "rustc-hex", +] diff --git a/registry/types/Cargo.toml b/registry/types/Cargo.toml new file mode 100644 index 000000000..2965f121a --- /dev/null +++ b/registry/types/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "registry-types" +version = "0.1.0" +edition = "2021" + +[dependencies] +borsh = { version = "1.2.1", features = ["derive"], optional = true} +serde = { version = "1.0.193", optional = true } + +near-primitives = { version = "0.17.0", optional = true} +near-sdk = { version = "5.0.0-alpha.1", optional = true } + +[features] +default = ["near-primitives", "borsh", "serde"] +nearsdk = ["near-sdk"] diff --git a/registry/types/src/lib.rs b/registry/types/src/lib.rs new file mode 100644 index 000000000..6f42e09ba --- /dev/null +++ b/registry/types/src/lib.rs @@ -0,0 +1,75 @@ +use std::collections::HashMap; + +#[cfg(feature = "near-sdk")] +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; +#[cfg(feature = "near-sdk")] +use near_sdk::serde::{Deserialize, Serialize}; +#[cfg(feature = "near-sdk")] +use near_sdk::AccountId; + +#[cfg(not(feature = "near-sdk"))] +use borsh::{BorshDeserialize, BorshSerialize}; +#[cfg(not(feature = "near-sdk"))] +use near_primitives::types::AccountId; +#[cfg(not(feature = "near-sdk"))] +use serde::{Deserialize, Serialize}; + +type FunctionName = String; + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +#[serde(rename_all = "SCREAMING_SNAKE_CASE")] +pub enum Status { + Any, + Success, + Fail, +} + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +#[serde(tag = "rule", rename_all = "SCREAMING_SNAKE_CASE")] +pub enum MatchingRule { + ActionAny { + affected_account_id: String, + status: Status, + }, + ActionFunctionCall { + affected_account_id: String, + status: Status, + function: String, + }, + Event { + contract_account_id: String, + standard: String, + version: String, + event: String, + }, +} + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +pub enum IndexerRuleKind { + Action, + Event, + AnyBlock, + Shard, +} + +#[derive(Clone, Debug, Serialize, Deserialize, BorshSerialize, BorshDeserialize, PartialEq, Eq)] +pub struct IndexerRule { + pub indexer_rule_kind: IndexerRuleKind, + pub matching_rule: MatchingRule, + pub id: Option, + pub name: Option, +} + +#[derive(BorshSerialize, BorshDeserialize, Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] +pub struct IndexerConfig { + pub code: String, + pub start_block_height: Option, + pub schema: Option, + pub filter: IndexerRule, +} + +#[derive(Debug, Serialize, Deserialize, PartialEq, Eq)] +pub enum AccountOrAllIndexers { + All(HashMap>), + Account(HashMap), +} From 8fb35febfe375f7c622fb6a41ee5a2e0dce9b281 Mon Sep 17 00:00:00 2001 From: Roshaan Siddiqui Date: Fri, 15 Dec 2023 11:58:40 -0600 Subject: [PATCH 09/10] feat: add reload table button (#450) Adds a button to refresh the logs from indexer logs page. --- frontend/src/components/Logs/IndexerLogs.jsx | 14 +++++++++++++- frontend/src/components/Logs/LogButtons.jsx | 15 +++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Logs/IndexerLogs.jsx b/frontend/src/components/Logs/IndexerLogs.jsx index a2b2f22d2..10e04c190 100644 --- a/frontend/src/components/Logs/IndexerLogs.jsx +++ b/frontend/src/components/Logs/IndexerLogs.jsx @@ -116,7 +116,7 @@ const IndexerLogsComponent = () => { return mergedEntries; }; - useEffect(() => { + const initializeTable = () => { const grid = new Grid({ columns: [ { @@ -204,8 +204,19 @@ const IndexerLogsComponent = () => { }); grid.render(indexerLogsRef.current); + }; + + useEffect(() => { + initializeTable(); }, []); + const reloadData = () => { + indexerLogsRef.current.innerHTML = ""; + setTimeout(() => { + initializeTable(); + }, 500); + }; + return ( <>
{ setHeights={setHeights} latestHeight={height} isUserIndexer={indexerDetails.accountId === currentUserAccountId} + reloadData={reloadData} /> { const { indexerName, @@ -93,6 +94,20 @@ const LogButtons = ({ aria-label="Action Button Group" > <> + Reload Data} + > + + Open Editor} From 61f92a8b81591934b1476824d46d5b670b9065f9 Mon Sep 17 00:00:00 2001 From: Roshaan Siddiqui Date: Tue, 19 Dec 2023 17:53:12 -0600 Subject: [PATCH 10/10] Fix type gen bug (#449) We have an issue where if the formatting of SQL is not current or we encounter a case in which we do not support the type generation library for the context method, we fail very abruptly. This PR handles these errors better. - If sql/code encounters syntax error and formatting fails, we simply return the unformatted code to the editor so the user can fix it. - If code + sql both have syntax errors, the user will now see two different alerts. One for each one of them. - We throw the error, but we also log everything to console for debugging purposes. - We catch and throw type generation errors in a new variable. --- frontend/src/components/Editor/Editor.js | 143 +++++++++-------------- 1 file changed, 53 insertions(+), 90 deletions(-) diff --git a/frontend/src/components/Editor/Editor.js b/frontend/src/components/Editor/Editor.js index b8e379174..75c478c72 100644 --- a/frontend/src/components/Editor/Editor.js +++ b/frontend/src/components/Editor/Editor.js @@ -48,8 +48,10 @@ const Editor = ({ const CODE_STORAGE_KEY = `QueryAPI:Code:${indexerDetails.accountId}#${indexerDetails.indexerName || "new" }`; - const [error, setError] = useState(undefined); const [blockHeightError, setBlockHeightError] = useState(undefined); + const [codeFormattingError, setCodeFormattingError] = useState(undefined); + const [schemaFormattingError, setSchemaFormattingError] = useState(undefined); + const [typesGenerationError, setTypesGenerationError] = useState(undefined); const [fileName, setFileName] = useState("indexingLogic.js"); @@ -91,20 +93,12 @@ const Editor = ({ }, [indexerDetails.code, indexerDetails.schema]); useEffect(() => { - const savedSchema = localStorage.getItem(SCHEMA_STORAGE_KEY); const savedCode = localStorage.getItem(CODE_STORAGE_KEY); if (savedSchema) { setSchema(savedSchema); - try { - setSchemaTypes(pgSchemaTypeGen.generateTypes(savedSchema)); - setError(() => undefined); - } catch (error) { - handleCodeGenError(error); - } - - } + } if (savedCode) setIndexingCode(savedCode); }, [indexerDetails.accountId, indexerDetails.indexerName]); @@ -127,9 +121,10 @@ const Editor = ({ if (fileName === "indexingLogic.js") { try { setSchemaTypes(pgSchemaTypeGen.generateTypes(schema)); - setError(() => undefined); - } catch (error) { - handleCodeGenError(error); + setTypesGenerationError(undefined); + } catch (typesError) { + console.log("typesGenerationError generating types for saved schema.\n", typesError); + setTypesGenerationError("There was an error generating types from your schema. Please fix your schema or file a support ticket."); } } }, [fileName]); @@ -161,18 +156,15 @@ const Editor = ({ let formatted_schema = formatted_sql; try { pgSchemaTypeGen.generateTypes(formatted_sql); // Sanity check - } catch (error) { - handleCodeGenError(error); - return undefined; + } catch (typesError) { + console.log("Error generating types from schema", typesError); + setTypesGenerationError("There was an error generating types from your schema. Please fix your schema or file a support ticket." ); } - + setSchemaFormattingError(undefined); return formatted_schema; - } catch (error) { - console.log("error", error); - setError( - () => - "Please check your SQL schema formatting and specify an Indexer Name" - ); + } catch (formattingError) { + console.log("formattingError", formattingError); + setSchemaFormattingError("Please check your SQL schema formatting and specify an Indexer Name"); return undefined; } }; @@ -194,14 +186,6 @@ const Editor = ({ let formatted_schema = checkSQLSchemaFormatting(); let innerCode = indexingCode.match(/getBlock\s*\([^)]*\)\s*{([\s\S]*)}/)[1]; indexerName = indexerName.replaceAll(" ", "_"); - if (formatted_schema == undefined) { - setError( - () => - "Please check your SQL schema formatting" - ); - return; - } - setError(() => undefined); request("register-function", { indexerName: indexerName, @@ -234,7 +218,6 @@ const Editor = ({ setIndexingCode(defaultCode); setSchema(defaultSchema); setSchemaTypes(defaultSchemaTypes); - setError(() => onLoadErrorText); } else { try { let unformatted_wrapped_indexing_code = wrapCode(data.code) @@ -247,16 +230,10 @@ const Editor = ({ setOriginalSQLCode(unformatted_schema); setSchema(unformatted_schema); } - // if (data.start_block_height) { - // setSelectedOption("specificBlockHeight"); - // setBlockHeight(data.start_block_height); - // } - // if (data.filter) { - // setContractFilter(data.filter.matching_rule.affected_account_id) - // } - await reformat(unformatted_wrapped_indexing_code, unformatted_schema) - } catch (error) { - console.log(error); + + reformatAll(unformatted_wrapped_indexing_code, unformatted_schema); + } catch (formattingError) { + console.log(formattingError); } } setShowResetCodeModel(false); @@ -268,64 +245,40 @@ const Editor = ({ return isUserIndexer ? actionButtonText : "Fork Indexer"; }; - - const handleFormattingError = (fileName) => { - const errorMessage = - fileName === "indexingLogic.js" - ? "Oh snap! We could not format your code. Make sure it is proper Javascript code." - : "Oh snap! We could not format your SQL schema. Make sure it is proper SQL DDL"; - - setError(() => errorMessage); - }; - const reformatAll = (indexingCode, schema) => { - const formattedCode = formatIndexingCode(indexingCode); + let formattedCode = indexingCode + let formattedSql = schema; + try { + formattedCode = formatIndexingCode(indexingCode); + setCodeFormattingError(undefined); + } catch (error) { + console.log("error", error) + setCodeFormattingError("Oh snap! We could not format your code. Make sure it is proper Javascript code."); + } + try { + formattedSql = formatSQL(schema); + setSchemaFormattingError(undefined); + } catch (error) { + setSchemaFormattingError("Could not format your SQL schema. Make sure it is proper SQL DDL"); + } setIndexingCode(formattedCode); - - const formattedSchema = formatSQL(schema); - setSchema(formattedSchema); - - return { formattedCode, formattedSchema } - } - - const reformat = (indexingCode, schema) => { - return new Promise((resolve, reject) => { - try { - let formattedCode; - if (fileName === "indexingLogic.js") { - formattedCode = formatIndexingCode(indexingCode); - setIndexingCode(formattedCode); - } else if (fileName === "schema.sql") { - formattedCode = formatSQL(schema); - setSchema(formattedCode); - } - setError(() => undefined); - resolve(formattedCode); - } catch (error) { - handleFormattingError(fileName); - reject(error); - } - }); + setSchema(formattedSql); + return { formattedCode, formattedSql } }; function handleCodeGen() { try { setSchemaTypes(pgSchemaTypeGen.generateTypes(schema)); attachTypesToMonaco(); // Just in case schema types have been updated but weren't added to monaco - setError(() => undefined); - } catch (error) { - handleCodeGenError(error); + setTypesGenerationError(undefined); + } catch (typesError) { + console.log("typesGenerationError generating types for saved schema.\n", typesError); + setTypesGenerationError("Oh snap! We could not generate types for your SQL schema. Make sure it is proper SQL DDL."); } } - const handleCodeGenError = (error) => { - console.error("Error generating types for saved schema.\n", error); - const errorMessage = "Oh snap! We could not generate types for your SQL schema. Make sure it is proper SQL DDL." - setError(() => errorMessage); - }; - async function handleFormating() { - await reformat(indexingCode, schema); + await reformatAll(indexingCode, schema); } function handleEditorMount(editor) { @@ -423,9 +376,19 @@ const Editor = ({ height: "100%", }} > - {error && ( + {codeFormattingError && ( + + {codeFormattingError} + + )} + {schemaFormattingError && ( + + {schemaFormattingError} + + )} + {typesGenerationError && ( - {error} + {typesGenerationError} )} {debugMode && !debugModeInfoDisabled && (