From 2de3ca3a4ef21be3e6ffbafbb391a7fbd2c63953 Mon Sep 17 00:00:00 2001 From: Hans Moog Date: Thu, 7 Nov 2024 12:53:42 +0100 Subject: [PATCH 01/10] fixed CONFIG_OVERRIDE --- crates/iota-protocol-config/src/lib.rs | 43 ++++++++++++++++---------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/crates/iota-protocol-config/src/lib.rs b/crates/iota-protocol-config/src/lib.rs index 3ca28d34e66..bfe48f2d48f 100644 --- a/crates/iota-protocol-config/src/lib.rs +++ b/crates/iota-protocol-config/src/lib.rs @@ -2,9 +2,9 @@ // Modifications Copyright (c) 2024 IOTA Stiftung // SPDX-License-Identifier: Apache-2.0 -use std::sync::{ - RwLock, - atomic::{AtomicBool, Ordering}, +use std::{ + cell::RefCell, + sync::atomic::{AtomicBool, Ordering}, }; use clap::*; @@ -1083,14 +1083,17 @@ impl ProtocolConfig { let mut ret = Self::get_for_version_impl(version, chain); ret.version = version; - if let Some(override_fn) = &*CONFIG_OVERRIDE.read().unwrap() { - warn!( - "overriding ProtocolConfig settings with custom settings (you should not see this log outside of tests)" - ); - override_fn(version, ret) - } else { - ret - } + CONFIG_OVERRIDE.with(|ovr| { + if let Some(override_fn) = &*ovr.borrow() { + warn!( + "overriding ProtocolConfig settings with custom settings (you should not see this log outside of tests)" + ); + override_fn(version, ret) + } else { + ret + } + }) + } /// Get the value ProtocolConfig that are in effect during the given @@ -1708,10 +1711,12 @@ impl ProtocolConfig { pub fn apply_overrides_for_testing( override_fn: impl Fn(ProtocolVersion, Self) -> Self + Send + Sync + 'static, ) -> OverrideGuard { - let mut option = CONFIG_OVERRIDE.write().unwrap(); - assert!(option.is_none(), "config override already present"); - *option = Some(Box::new(override_fn)); - OverrideGuard + CONFIG_OVERRIDE.with(|ovr| { + let mut cur = ovr.borrow_mut(); + assert!(cur.is_none(), "config override already present"); + *cur = Some(Box::new(override_fn)); + OverrideGuard + }) } } @@ -1760,7 +1765,9 @@ impl ProtocolConfig { type OverrideFn = dyn Fn(ProtocolVersion, ProtocolConfig) -> ProtocolConfig + Send + Sync; -static CONFIG_OVERRIDE: RwLock>> = RwLock::new(None); +thread_local! { + static CONFIG_OVERRIDE: RefCell>> = RefCell::new(None); +} #[must_use] pub struct OverrideGuard; @@ -1768,7 +1775,9 @@ pub struct OverrideGuard; impl Drop for OverrideGuard { fn drop(&mut self) { info!("restoring override fn"); - *CONFIG_OVERRIDE.write().unwrap() = None; + CONFIG_OVERRIDE.with(|ovr| { + *ovr.borrow_mut() = None; + }); } } From b745c3063c3c4e7f626fea456f1898f0303b8bfc Mon Sep 17 00:00:00 2001 From: Hans Moog Date: Thu, 7 Nov 2024 13:12:50 +0100 Subject: [PATCH 02/10] addressed linter remarks --- crates/iota-protocol-config/src/lib.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/crates/iota-protocol-config/src/lib.rs b/crates/iota-protocol-config/src/lib.rs index bfe48f2d48f..fa768f11057 100644 --- a/crates/iota-protocol-config/src/lib.rs +++ b/crates/iota-protocol-config/src/lib.rs @@ -1093,7 +1093,6 @@ impl ProtocolConfig { ret } }) - } /// Get the value ProtocolConfig that are in effect during the given From 0bcb5e80bb4f592de086cee5255cb39ec21f4b33 Mon Sep 17 00:00:00 2001 From: Hans Moog Date: Thu, 7 Nov 2024 15:02:16 +0100 Subject: [PATCH 03/10] fixed broken snapshot --- .../snapshots/snapshot_tests__body_fn.snap | 1550 +---------------- 1 file changed, 26 insertions(+), 1524 deletions(-) diff --git a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap index 3df18d5fc84..be8286c1271 100644 --- a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap +++ b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap @@ -1,5 +1,6 @@ --- source: crates/iota-e2e-tests/tests/snapshot_tests.rs +assertion_line: 75 expression: "run_one(cmds, context).await?" --- [ @@ -7,14 +8,14 @@ expression: "run_one(cmds, context).await?" [ { "data": { - "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "objectId": "0x5b0e7d31f9c3a421f94dae3511983a2be67e04a7071171da2380f82be103239f", "version": "1", - "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ", + "digest": "Ge8nDvU9KCKDfmZqpFwt7omFDKYxfGrGUJ8qc4Gna1Uc", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -23,7 +24,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb" + "id": "0x5b0e7d31f9c3a421f94dae3511983a2be67e04a7071171da2380f82be103239f" } } } @@ -31,14 +32,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "objectId": "0x5ee269cea868091ea1c5da5f15581c2f7b1708413b3bdda3e4c9528f2b3a5bb9", "version": "1", - "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9", + "digest": "7d8gTJskkPoVPFoFsTFLb5JvyY26cuiW9UNkVrnP5Hk8", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -47,7 +48,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4" + "id": "0x5ee269cea868091ea1c5da5f15581c2f7b1708413b3bdda3e4c9528f2b3a5bb9" } } } @@ -55,14 +56,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "objectId": "0x759bb64d0a576b00a8aae6d439da4a72ef7d8797282c90211bab2bc723cd48e5", "version": "1", - "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE", + "digest": "DXLS4WoauDJ8yKdX1iuxbZjhm5KB7FwqoxQ5jZjQhz9J", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -71,7 +72,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1" + "id": "0x759bb64d0a576b00a8aae6d439da4a72ef7d8797282c90211bab2bc723cd48e5" } } } @@ -79,14 +80,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "objectId": "0xa010e1486bfd2f1d7c57a3b2c2edd369e64e8fddc1ca17667314317273cb491d", "version": "1", - "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz", + "digest": "2oNVEnNehMmtkvC5vAYghCj7K7DtUrsjA65HgSbU4fbE", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -95,7 +96,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b" + "id": "0xa010e1486bfd2f1d7c57a3b2c2edd369e64e8fddc1ca17667314317273cb491d" } } } @@ -103,14 +104,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "objectId": "0xb279227ad10111e5d870facc26d048a05bc440859e718cde0e3bbf257765544c", "version": "1", - "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa", + "digest": "GCtoreW1XPSS2bmKxy5aNaFRD1ieK37aXH9Wd8rFoqph", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -119,7 +120,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7" + "id": "0xb279227ad10111e5d870facc26d048a05bc440859e718cde0e3bbf257765544c" } } } @@ -134,14 +135,14 @@ expression: "run_one(cmds, context).await?" "data": { "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", "version": "1", - "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1", + "digest": "EVMF5DELWDiDckUy2J5u8UyfctyFYFPrM9hdqGeVxRLq", "type": "0x3::iota_system::IotaSystemState", "owner": { "Shared": { "initial_shared_version": 1 } }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -163,14 +164,14 @@ expression: "run_one(cmds, context).await?" "data": { "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", "version": "1", - "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1", + "digest": "EVMF5DELWDiDckUy2J5u8UyfctyFYFPrM9hdqGeVxRLq", "type": "0x3::iota_system::IotaSystemState", "owner": { "Shared": { "initial_shared_version": 1 } }, - "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", "storageRebate": "0", "bcs": { "dataType": "moveObject", @@ -192,1506 +193,7 @@ expression: "run_one(cmds, context).await?" } ], "iota client tx-block Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - { - "digest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "transaction": { - "data": { - "messageVersion": "v1", - "transaction": { - "kind": "Genesis", - "objects": [ - "0x0000000000000000000000000000000000000000000000000000000000000001", - "0x0000000000000000000000000000000000000000000000000000000000000002", - "0x0000000000000000000000000000000000000000000000000000000000000003", - "0x0000000000000000000000000000000000000000000000000000000000000005", - "0x0000000000000000000000000000000000000000000000000000000000000006", - "0x0000000000000000000000000000000000000000000000000000000000000008", - "0x000000000000000000000000000000000000000000000000000000000000000b", - "0x0000000000000000000000000000000000000000000000000000000000000403", - "0x000000000000000000000000000000000000000000000000000000000000107a", - "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", - "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", - "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", - "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", - "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", - "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", - "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", - "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", - "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", - "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", - "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", - "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", - "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", - "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", - "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", - "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", - "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", - "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", - "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", - "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", - "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", - "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", - "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", - "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", - "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", - "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", - "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", - "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", - "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", - "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", - "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", - "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", - "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", - "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", - "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", - "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", - "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", - "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", - "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", - "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", - "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", - "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", - "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", - "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", - "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", - "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", - "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", - "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60" - ], - "events": [ - { - "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "eventSeq": "0" - }, - { - "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "eventSeq": "1" - } - ] - }, - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "gasData": { - "payment": [ - { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "version": 0, - "digest": "11111111111111111111111111111111" - } - ], - "owner": "0x0000000000000000000000000000000000000000000000000000000000000000", - "price": "1", - "budget": "0" - } - }, - "txSignatures": [ - "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" - ] - }, - "effects": { - "messageVersion": "v1", - "status": { - "status": "success" - }, - "executedEpoch": "0", - "gasUsed": { - "computationCost": "0", - "storageCost": "0", - "storageRebate": "0", - "nonRefundableStorageFee": "0" - }, - "transactionDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "created": [ - { - "owner": "Immutable", - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000001", - "version": 1, - "digest": "EEzLb1GUJ7T1D7c5YshyZRTUeEbuqJHEXZzVnZSyiP4X" - } - }, - { - "owner": "Immutable", - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000002", - "version": 1, - "digest": "Hfn1skt6xRG4LJWMYfSRihabdYdysbpfW3E37FkZYTNv" - } - }, - { - "owner": "Immutable", - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000003", - "version": 1, - "digest": "8ncmvcNW2hSrxsiA1BAYLfiHT7gq9CrQ5xAZd5icZ7AZ" - } - }, - { - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", - "version": 1, - "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1" - } - }, - { - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000006", - "version": 1, - "digest": "DoYdsHQ3yrPPbeLiP7m86cEvpdZa5u9WR3sfwkAwFzzP" - } - }, - { - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000008", - "version": 1, - "digest": "HcuoW6CpTvpCW6zyXReFRuwG57fWjFao6aFaQ8B6ojqb" - } - }, - { - "owner": "Immutable", - "reference": { - "objectId": "0x000000000000000000000000000000000000000000000000000000000000000b", - "version": 1, - "digest": "7qX7XuWkQdxTey5khTi36fSt7wUaUj6WLcCvHYw7Kt7L" - } - }, - { - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000403", - "version": 1, - "digest": "4MciKuQpwmG4gcXB5j4CpYEsiEEFJADhVHNaLtnD7VgJ" - } - }, - { - "owner": "Immutable", - "reference": { - "objectId": "0x000000000000000000000000000000000000000000000000000000000000107a", - "version": 1, - "digest": "EyPJZsqLWzzuLwUbDmq77YDcYc2n28JUvmR2D3XYXvEx" - } - }, - { - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "reference": { - "objectId": "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", - "version": 1, - "digest": "AgqbZ4SdhbequEufn6KPMegNwUEGHbZeGfNVWM7YEdFD" - } - }, - { - "owner": { - "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" - }, - "reference": { - "objectId": "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", - "version": 1, - "digest": "9Wdw77n2eeCTSha1f6Uj4LvG934xphSbyNRazH83W89j" - } - }, - { - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "reference": { - "objectId": "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", - "version": 1, - "digest": "Ajbmr42uP2PXH3JgpufkeSbHVsc4FRaVgWiA3Na4ryCg" - } - }, - { - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "reference": { - "objectId": "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", - "version": 1, - "digest": "D1czj3Qr4pMCQqhSwPxwiLFbGiMocRTuBkL8LftbsquG" - } - }, - { - "owner": { - "ObjectOwner": "0x7c7b5e9ac86c1c9167861684dc799150ae0bcb20ee35dc027a7b1c3239c43491" - }, - "reference": { - "objectId": "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", - "version": 1, - "digest": "6Gcrhm9g7gENwXs1LJLhM7bG7f7CaCH1UboQDrapPpve" - } - }, - { - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "reference": { - "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", - "version": 1, - "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ" - } - }, - { - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "reference": { - "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", - "version": 1, - "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9" - } - }, - { - "owner": "Immutable", - "reference": { - "objectId": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", - "version": 1, - "digest": "5ceUwwuSyYNbGcn6t92VYhkhrM9WXFrsqjHMBx9hTgui" - } - }, - { - "owner": { - "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" - }, - "reference": { - "objectId": "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", - "version": 1, - "digest": "eLUzrhLUXkLJexz7yRkugTEecsUSatiS97eKDTyRKQ9" - } - }, - { - "owner": { - "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" - }, - "reference": { - "objectId": "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", - "version": 1, - "digest": "5BrMrFjw1CczYMshk7dccVioKF2SSvvEudBSSoVicvgG" - } - }, - { - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "reference": { - "objectId": "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", - "version": 1, - "digest": "RgrevPjn6eRbaBQBFDp5GVkhRHAxX1LN6PX6W7R3b2G" - } - }, - { - "owner": { - "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" - }, - "reference": { - "objectId": "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", - "version": 1, - "digest": "EXw3aJJqk8qBNWnDcLwg64D1qtyZjxhP5haefEbvFyDi" - } - }, - { - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "reference": { - "objectId": "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", - "version": 1, - "digest": "3pwRGNUZmDZcfQp6tvvH63PYDtVZVG2VttFBhYMkDJLZ" - } - }, - { - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "reference": { - "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", - "version": 1, - "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE" - } - }, - { - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "reference": { - "objectId": "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", - "version": 1, - "digest": "HnGKwbms8dfQ6XNxcJDbLbFHDkh2b5NyARjgh8888Nh5" - } - }, - { - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "reference": { - "objectId": "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", - "version": 1, - "digest": "C8kPWM5ksWk5ppVSZUSEvy5axrRBzqeqD3Gw4SfwYLt5" - } - }, - { - "owner": { - "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" - }, - "reference": { - "objectId": "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", - "version": 1, - "digest": "CVQfkwhtZPCWcXEwPNDx2RgJZZZWj9bViZkCG6rp7RT2" - } - }, - { - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "reference": { - "objectId": "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", - "version": 1, - "digest": "GVWnxq3G3VTkrjmzeTCQNsrsZLH2pTv6a8cyJvPTjMPK" - } - }, - { - "owner": { - "ObjectOwner": "0x0ce0659906b775a0dc9bc9923d4933630a3c22e06b78f2f0a0537575929f996a" - }, - "reference": { - "objectId": "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", - "version": 1, - "digest": "BMYF3DduG7R7dkUDQMf2wG1zguhyFVzqMKZDwU9onTiy" - } - }, - { - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "reference": { - "objectId": "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", - "version": 1, - "digest": "CvgY37zCcCY2bRjJdox5sH9oEDUgbovD8jHMGE9FHtmy" - } - }, - { - "owner": { - "ObjectOwner": "0x0000000000000000000000000000000000000000000000000000000000000005" - }, - "reference": { - "objectId": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "version": 1, - "digest": "9P2nsb8D67sXPdtK7xe6W6DPTyZTzEeKhi9KBwkVXbLz" - } - }, - { - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "reference": { - "objectId": "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", - "version": 1, - "digest": "FfKTjzvKHcaEQSdxRK9zx8pbU8BZeU2N3s7f3tKL9eCX" - } - }, - { - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "reference": { - "objectId": "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", - "version": 1, - "digest": "HUMsUSpoXj22qB4M6tECWDjmEaTwxEwsuSy6KFcVn7VY" - } - }, - { - "owner": { - "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" - }, - "reference": { - "objectId": "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", - "version": 1, - "digest": "2WUuBVt8CfxY8SgBK8qxZUK5BUozyn61G6uDUxskz6vB" - } - }, - { - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "reference": { - "objectId": "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", - "version": 1, - "digest": "6iWxLqw2jwbdjyeWW6ahGgPEP96WFQ9QXAW1YUa6QoaT" - } - }, - { - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "reference": { - "objectId": "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", - "version": 1, - "digest": "8YuEfQiV2fGTULQgjgMeuY2GULxxScLxMxJVzGRmEGFh" - } - }, - { - "owner": "Immutable", - "reference": { - "objectId": "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", - "version": 1, - "digest": "CBXqvoJK8TDYHd3z7xHYA2HdpW52UoNMg3hZyd3SS6Mq" - } - }, - { - "owner": { - "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" - }, - "reference": { - "objectId": "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", - "version": 1, - "digest": "qZB2htF7TnbC1erC5brX6usTaccoNbkYvzV1z2T1wRr" - } - }, - { - "owner": { - "ObjectOwner": "0xa638e6c2e51c688fac426e422c56d310ada32abf20ccf9ebdf1acc93e00c2472" - }, - "reference": { - "objectId": "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", - "version": 1, - "digest": "BdXCtcdbth68sFr11iGJZqz45N2fupUEErxB2Px4ZEC9" - } - }, - { - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "reference": { - "objectId": "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", - "version": 1, - "digest": "HX5fgCYDAY4EXAsvS6LwgSUr9hx4aoZYbp5GJbUnq8n4" - } - }, - { - "owner": { - "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" - }, - "reference": { - "objectId": "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", - "version": 1, - "digest": "FkULFZXqhbqU5Fon3honm5pFmUiqJkY7Y6ECbte1Hii9" - } - }, - { - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "reference": { - "objectId": "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", - "version": 1, - "digest": "4V3KqU3gC2eqg9un9WcutPCAiA6vPcGYeFqoTutixkB4" - } - }, - { - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "reference": { - "objectId": "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", - "version": 1, - "digest": "FWeCCocjhoeacrKX1ZVkrEvqNxckJfk1KoyHtFH2Z8ES" - } - }, - { - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "reference": { - "objectId": "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", - "version": 1, - "digest": "8tKfiV8MHaEvrzzX3c9exgsAscHPmgZVF9GZ5LjZNwJz" - } - }, - { - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "reference": { - "objectId": "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", - "version": 1, - "digest": "F7UAZ1nzZSGcEs1ntEuv5yBrtjgE9omqTYsM5MiyP1gg" - } - }, - { - "owner": { - "ObjectOwner": "0x9bc5337781f04e021c5d42b6db841d379794edcf721813534cb5d14dc0290d77" - }, - "reference": { - "objectId": "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", - "version": 1, - "digest": "6Jfkx2oF2DaXgcD7YMF9qeNUKMvGtBRtCmbh3CRZe21V" - } - }, - { - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "reference": { - "objectId": "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", - "version": 1, - "digest": "Cs8zMC43XRRwrM4UxEaKE6R64iWLieh821t7bUh5gPU3" - } - }, - { - "owner": { - "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" - }, - "reference": { - "objectId": "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", - "version": 1, - "digest": "9DbBy8qevsWuEZJQdgyZgX2JTYju838H82fC6ioa6wpw" - } - }, - { - "owner": { - "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" - }, - "reference": { - "objectId": "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", - "version": 1, - "digest": "9cBTiupwFCu1ju2HsegDvB6Z68PSSsYPeXaMcD4RzKfc" - } - }, - { - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "reference": { - "objectId": "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", - "version": 1, - "digest": "AQCi9QJC9fV8SEcpQQA9FKhsETtggm3VWAYuswZ6fXF5" - } - }, - { - "owner": { - "ObjectOwner": "0x25251a73e10849ffe7abc224ed35304d012a18f418611b381298d8be8b2eaf83" - }, - "reference": { - "objectId": "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", - "version": 1, - "digest": "6zzp85oetD1P7Zv4Umd7E4aG9iwbaGDmQgoKmutGpL4e" - } - }, - { - "owner": { - "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" - }, - "reference": { - "objectId": "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", - "version": 1, - "digest": "4Rs6gsJZ478oWm1L9KsosLZZeRXutj1SyrCNB6NzkS7E" - } - }, - { - "owner": { - "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" - }, - "reference": { - "objectId": "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", - "version": 1, - "digest": "Ac7ex9P1Qrs9wQAzZezDzoPPnoMcGqZoSh4LbMeduiui" - } - }, - { - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "reference": { - "objectId": "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", - "version": 1, - "digest": "ECfLmrqxkyF2g16LdCCLAz6Gae51xF5Naka2zHc4sh9H" - } - }, - { - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "reference": { - "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", - "version": 1, - "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz" - } - }, - { - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "reference": { - "objectId": "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", - "version": 1, - "digest": "HEeQgzeThKQWJRqP2F9yMXArCNQD5xYPcCZKZEF8Kfqd" - } - }, - { - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "reference": { - "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", - "version": 1, - "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa" - } - }, - { - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "reference": { - "objectId": "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", - "version": 1, - "digest": "AhEJzhsHTTWbWER6c73s5oAVXXNE7VkDN56mhV8u4Qfn" - } - }, - { - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "reference": { - "objectId": "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60", - "version": 1, - "digest": "CBp9bmMzBTBKhAwHAFLm7KDgy8xSQkW41xaTF1RKHEc8" - } - } - ], - "gasObject": { - "owner": { - "AddressOwner": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "reference": { - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000000", - "version": 0, - "digest": "11111111111111111111111111111111" - } - }, - "eventsDigest": "CaYcJ14pKAFjepdh3zk6S8WBtCEDusER6ZfZh5n5Sfrk" - }, - "events": [ - { - "id": { - "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "eventSeq": "0" - }, - "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", - "transactionModule": "nft", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2::display::DisplayCreated<0x107a::nft::Nft>", - "parsedJson": { - "id": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f" - }, - "bcs": "4eK4Rmo4WPkHRfYunQzeR9sB8FgeBwvS6dmuAkFr91pz" - }, - { - "id": { - "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "eventSeq": "1" - }, - "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", - "transactionModule": "nft", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2::display::VersionUpdated<0x107a::nft::Nft>", - "parsedJson": { - "fields": { - "contents": [ - { - "key": "name", - "value": "{immutable_metadata.name}" - }, - { - "key": "image_url", - "value": "{immutable_metadata.uri}" - }, - { - "key": "description", - "value": "{immutable_metadata.description}" - }, - { - "key": "creator", - "value": "{immutable_metadata.issuer_name}" - }, - { - "key": "version", - "value": "{immutable_metadata.version}" - }, - { - "key": "media_type", - "value": "{immutable_metadata.media_type}" - }, - { - "key": "collection_name", - "value": "{immutable_metadata.collection_name}" - }, - { - "key": "immutable_issuer", - "value": "{immutable_issuer}" - } - ] - }, - "id": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", - "version": 1 - }, - "bcs": "RtmkG7B277UHmHzNeCR4JSjBPk5Jar4EmEM8rps4ibCVajBRYzsvQfF8QM43JPnE8aKATVn8vpGA2B8NS3HSf6tYyEY7SiT7XZcESuZAJDDAstKn2T5jZ4pZs6gqohtCsFoPVqfxMgir1dMYJQRdzBhjnYBHgUHU6U6ErV6wCU7CVk9xKX14hfD3Q4LK5cctwaK72iipJbdmmo4jXWGY177jRp8vAcP82xi28HyYdtu1S79GRmj7CUsn1yok6BD7ux6iqwDU6Xo8tBJBnA76Lmba7LFyS7nqUnVU4K5uiHVYC2jNudZtXvtJWeAcs1oQ5mx4wKpg82DsfePBCDc3WxyooTUZUbS8pJuKfrvbzGtC7iUJvRnTbW821dbBKcWvw8wajSATuPs7LkoBTxyETMCfrpzZCZF4tTmqDkPxKvYizxGhTga8PkSCSCvWMCNCdbRjBzGoxmJky5AWALRYZSA2x1jqdFudcd2U7E" - } - ], - "objectChanges": [ - { - "type": "published", - "packageId": "0x0000000000000000000000000000000000000000000000000000000000000001", - "version": "1", - "digest": "EEzLb1GUJ7T1D7c5YshyZRTUeEbuqJHEXZzVnZSyiP4X", - "modules": [ - "address", - "ascii", - "bcs", - "bit_vector", - "debug", - "fixed_point32", - "hash", - "macros", - "option", - "string", - "type_name", - "u128", - "u16", - "u256", - "u32", - "u64", - "u8", - "vector" - ] - }, - { - "type": "published", - "packageId": "0x0000000000000000000000000000000000000000000000000000000000000002", - "version": "1", - "digest": "Hfn1skt6xRG4LJWMYfSRihabdYdysbpfW3E37FkZYTNv", - "modules": [ - "address", - "authenticator_state", - "bag", - "balance", - "bcs", - "bls12381", - "borrow", - "clock", - "coin", - "coin_manager", - "config", - "deny_list", - "display", - "dynamic_field", - "dynamic_object_field", - "ecdsa_k1", - "ecdsa_r1", - "ecvrf", - "ed25519", - "event", - "groth16", - "group_ops", - "hash", - "hex", - "hmac", - "iota", - "kiosk", - "kiosk_extension", - "labeler", - "linked_table", - "object", - "object_bag", - "object_table", - "package", - "pay", - "poseidon", - "priority_queue", - "prover", - "random", - "system_admin_cap", - "table", - "table_vec", - "timelock", - "token", - "transfer", - "transfer_policy", - "tx_context", - "types", - "url", - "vdf", - "vec_map", - "vec_set", - "versioned", - "zklogin_verified_id", - "zklogin_verified_issuer" - ] - }, - { - "type": "published", - "packageId": "0x0000000000000000000000000000000000000000000000000000000000000003", - "version": "1", - "digest": "8ncmvcNW2hSrxsiA1BAYLfiHT7gq9CrQ5xAZd5icZ7AZ", - "modules": [ - "genesis", - "iota_system", - "iota_system_state_inner", - "staking_pool", - "storage_fund", - "timelocked_staking", - "validator", - "validator_cap", - "validator_set", - "validator_wrapper", - "voting_power" - ] - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "objectType": "0x3::iota_system::IotaSystemState", - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", - "version": "1", - "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "objectType": "0x2::clock::Clock", - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000006", - "version": "1", - "digest": "DoYdsHQ3yrPPbeLiP7m86cEvpdZa5u9WR3sfwkAwFzzP" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "objectType": "0x2::random::Random", - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000008", - "version": "1", - "digest": "HcuoW6CpTvpCW6zyXReFRuwG57fWjFao6aFaQ8B6ojqb" - }, - { - "type": "published", - "packageId": "0x000000000000000000000000000000000000000000000000000000000000000b", - "version": "1", - "digest": "7qX7XuWkQdxTey5khTi36fSt7wUaUj6WLcCvHYw7Kt7L", - "modules": [ - "bridge", - "chain_ids", - "committee", - "crypto", - "limiter", - "message", - "message_types", - "treasury" - ] - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "Shared": { - "initial_shared_version": 1 - } - }, - "objectType": "0x2::deny_list::DenyList", - "objectId": "0x0000000000000000000000000000000000000000000000000000000000000403", - "version": "1", - "digest": "4MciKuQpwmG4gcXB5j4CpYEsiEEFJADhVHNaLtnD7VgJ" - }, - { - "type": "published", - "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", - "version": "1", - "digest": "EyPJZsqLWzzuLwUbDmq77YDcYc2n28JUvmR2D3XYXvEx", - "modules": [ - "address_unlock_condition", - "alias", - "alias_output", - "basic_output", - "expiration_unlock_condition", - "irc27", - "nft", - "nft_output", - "stardust_upgrade_label", - "storage_deposit_return_unlock_condition", - "timelock_unlock_condition", - "utilities" - ] - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", - "version": "1", - "digest": "AgqbZ4SdhbequEufn6KPMegNwUEGHbZeGfNVWM7YEdFD" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" - }, - "objectType": "0x3::staking_pool::StakedIota", - "objectId": "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", - "version": "1", - "digest": "9Wdw77n2eeCTSha1f6Uj4LvG934xphSbyNRazH83W89j" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", - "version": "1", - "digest": "Ajbmr42uP2PXH3JgpufkeSbHVsc4FRaVgWiA3Na4ryCg" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", - "version": "1", - "digest": "D1czj3Qr4pMCQqhSwPxwiLFbGiMocRTuBkL8LftbsquG" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0x7c7b5e9ac86c1c9167861684dc799150ae0bcb20ee35dc027a7b1c3239c43491" - }, - "objectType": "0x2::dynamic_field::Field", - "objectId": "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", - "version": "1", - "digest": "6Gcrhm9g7gENwXs1LJLhM7bG7f7CaCH1UboQDrapPpve" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", - "version": "1", - "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", - "version": "1", - "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": "Immutable", - "objectType": "0x2::display::Display<0x107a::nft::Nft>", - "objectId": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", - "version": "1", - "digest": "5ceUwwuSyYNbGcn6t92VYhkhrM9WXFrsqjHMBx9hTgui" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", - "version": "1", - "digest": "eLUzrhLUXkLJexz7yRkugTEecsUSatiS97eKDTyRKQ9" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" - }, - "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", - "objectId": "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", - "version": "1", - "digest": "5BrMrFjw1CczYMshk7dccVioKF2SSvvEudBSSoVicvgG" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", - "version": "1", - "digest": "RgrevPjn6eRbaBQBFDp5GVkhRHAxX1LN6PX6W7R3b2G" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", - "version": "1", - "digest": "EXw3aJJqk8qBNWnDcLwg64D1qtyZjxhP5haefEbvFyDi" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", - "version": "1", - "digest": "3pwRGNUZmDZcfQp6tvvH63PYDtVZVG2VttFBhYMkDJLZ" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", - "version": "1", - "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", - "objectId": "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", - "version": "1", - "digest": "HnGKwbms8dfQ6XNxcJDbLbFHDkh2b5NyARjgh8888Nh5" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", - "objectId": "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", - "version": "1", - "digest": "C8kPWM5ksWk5ppVSZUSEvy5axrRBzqeqD3Gw4SfwYLt5" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", - "version": "1", - "digest": "CVQfkwhtZPCWcXEwPNDx2RgJZZZWj9bViZkCG6rp7RT2" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", - "objectId": "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", - "version": "1", - "digest": "GVWnxq3G3VTkrjmzeTCQNsrsZLH2pTv6a8cyJvPTjMPK" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0x0ce0659906b775a0dc9bc9923d4933630a3c22e06b78f2f0a0537575929f996a" - }, - "objectType": "0x2::dynamic_field::Field", - "objectId": "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", - "version": "1", - "digest": "BMYF3DduG7R7dkUDQMf2wG1zguhyFVzqMKZDwU9onTiy" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", - "version": "1", - "digest": "CvgY37zCcCY2bRjJdox5sH9oEDUgbovD8jHMGE9FHtmy" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0x0000000000000000000000000000000000000000000000000000000000000005" - }, - "objectType": "0x2::dynamic_field::Field", - "objectId": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", - "version": "1", - "digest": "9P2nsb8D67sXPdtK7xe6W6DPTyZTzEeKhi9KBwkVXbLz" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", - "version": "1", - "digest": "FfKTjzvKHcaEQSdxRK9zx8pbU8BZeU2N3s7f3tKL9eCX" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", - "version": "1", - "digest": "HUMsUSpoXj22qB4M6tECWDjmEaTwxEwsuSy6KFcVn7VY" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" - }, - "objectType": "0x3::staking_pool::StakedIota", - "objectId": "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", - "version": "1", - "digest": "2WUuBVt8CfxY8SgBK8qxZUK5BUozyn61G6uDUxskz6vB" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" - }, - "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", - "objectId": "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", - "version": "1", - "digest": "6iWxLqw2jwbdjyeWW6ahGgPEP96WFQ9QXAW1YUa6QoaT" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", - "version": "1", - "digest": "8YuEfQiV2fGTULQgjgMeuY2GULxxScLxMxJVzGRmEGFh" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": "Immutable", - "objectType": "0x2::coin::CoinMetadata<0x2::iota::IOTA>", - "objectId": "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", - "version": "1", - "digest": "CBXqvoJK8TDYHd3z7xHYA2HdpW52UoNMg3hZyd3SS6Mq" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", - "version": "1", - "digest": "qZB2htF7TnbC1erC5brX6usTaccoNbkYvzV1z2T1wRr" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0xa638e6c2e51c688fac426e422c56d310ada32abf20ccf9ebdf1acc93e00c2472" - }, - "objectType": "0x2::dynamic_field::Field", - "objectId": "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", - "version": "1", - "digest": "BdXCtcdbth68sFr11iGJZqz45N2fupUEErxB2Px4ZEC9" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", - "version": "1", - "digest": "HX5fgCYDAY4EXAsvS6LwgSUr9hx4aoZYbp5GJbUnq8n4" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" - }, - "objectType": "0x3::staking_pool::StakedIota", - "objectId": "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", - "version": "1", - "digest": "FkULFZXqhbqU5Fon3honm5pFmUiqJkY7Y6ECbte1Hii9" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", - "version": "1", - "digest": "4V3KqU3gC2eqg9un9WcutPCAiA6vPcGYeFqoTutixkB4" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", - "version": "1", - "digest": "FWeCCocjhoeacrKX1ZVkrEvqNxckJfk1KoyHtFH2Z8ES" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", - "version": "1", - "digest": "8tKfiV8MHaEvrzzX3c9exgsAscHPmgZVF9GZ5LjZNwJz" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", - "version": "1", - "digest": "F7UAZ1nzZSGcEs1ntEuv5yBrtjgE9omqTYsM5MiyP1gg" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0x9bc5337781f04e021c5d42b6db841d379794edcf721813534cb5d14dc0290d77" - }, - "objectType": "0x2::dynamic_field::Field", - "objectId": "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", - "version": "1", - "digest": "6Jfkx2oF2DaXgcD7YMF9qeNUKMvGtBRtCmbh3CRZe21V" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", - "version": "1", - "digest": "Cs8zMC43XRRwrM4UxEaKE6R64iWLieh821t7bUh5gPU3" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" - }, - "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", - "objectId": "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", - "version": "1", - "digest": "9DbBy8qevsWuEZJQdgyZgX2JTYju838H82fC6ioa6wpw" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" - }, - "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", - "objectId": "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", - "version": "1", - "digest": "9cBTiupwFCu1ju2HsegDvB6Z68PSSsYPeXaMcD4RzKfc" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", - "version": "1", - "digest": "AQCi9QJC9fV8SEcpQQA9FKhsETtggm3VWAYuswZ6fXF5" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "ObjectOwner": "0x25251a73e10849ffe7abc224ed35304d012a18f418611b381298d8be8b2eaf83" - }, - "objectType": "0x2::dynamic_field::Field", - "objectId": "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", - "version": "1", - "digest": "6zzp85oetD1P7Zv4Umd7E4aG9iwbaGDmQgoKmutGpL4e" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" - }, - "objectType": "0x3::staking_pool::StakedIota", - "objectId": "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", - "version": "1", - "digest": "4Rs6gsJZ478oWm1L9KsosLZZeRXutj1SyrCNB6NzkS7E" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" - }, - "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", - "objectId": "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", - "version": "1", - "digest": "Ac7ex9P1Qrs9wQAzZezDzoPPnoMcGqZoSh4LbMeduiui" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", - "version": "1", - "digest": "ECfLmrqxkyF2g16LdCCLAz6Gae51xF5Naka2zHc4sh9H" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", - "version": "1", - "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", - "version": "1", - "digest": "HEeQgzeThKQWJRqP2F9yMXArCNQD5xYPcCZKZEF8Kfqd" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", - "version": "1", - "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", - "version": "1", - "digest": "AhEJzhsHTTWbWER6c73s5oAVXXNE7VkDN56mhV8u4Qfn" - }, - { - "type": "created", - "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", - "owner": { - "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" - }, - "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", - "objectId": "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60", - "version": "1", - "digest": "CBp9bmMzBTBKhAwHAFLm7KDgy8xSQkW41xaTF1RKHEc8" - } - ], - "timestampMs": "1641175496000", - "checkpoint": "0" - }, + "ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo)].\", data: None }", "iota client tx-block EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8", "ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8)].\", data: None }" ] From bf7965a156f90eae357164cc1f33d835e2b7f16f Mon Sep 17 00:00:00 2001 From: Hans Moog <3293976+hmoog@users.noreply.github.com> Date: Thu, 7 Nov 2024 15:02:49 +0100 Subject: [PATCH 04/10] Update crates/iota-protocol-config/src/lib.rs Co-authored-by: DaughterOfMars --- crates/iota-protocol-config/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/iota-protocol-config/src/lib.rs b/crates/iota-protocol-config/src/lib.rs index fa768f11057..d13df4dfaab 100644 --- a/crates/iota-protocol-config/src/lib.rs +++ b/crates/iota-protocol-config/src/lib.rs @@ -1765,7 +1765,7 @@ impl ProtocolConfig { type OverrideFn = dyn Fn(ProtocolVersion, ProtocolConfig) -> ProtocolConfig + Send + Sync; thread_local! { - static CONFIG_OVERRIDE: RefCell>> = RefCell::new(None); + static CONFIG_OVERRIDE: RefCell>> = const { RefCell::new(None) }; } #[must_use] From 500c3fdcc0f68e94fab536070896875405a14f70 Mon Sep 17 00:00:00 2001 From: Hans Moog Date: Fri, 8 Nov 2024 12:46:54 +0100 Subject: [PATCH 05/10] reverse changes to snapshot file --- .../snapshots/snapshot_tests__body_fn.snap | 1552 ++++++++++++++++- 1 file changed, 1525 insertions(+), 27 deletions(-) diff --git a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap index be8286c1271..e80b809e2a5 100644 --- a/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap +++ b/crates/iota-e2e-tests/tests/snapshots/snapshot_tests__body_fn.snap @@ -1,6 +1,5 @@ --- source: crates/iota-e2e-tests/tests/snapshot_tests.rs -assertion_line: 75 expression: "run_one(cmds, context).await?" --- [ @@ -8,14 +7,14 @@ expression: "run_one(cmds, context).await?" [ { "data": { - "objectId": "0x5b0e7d31f9c3a421f94dae3511983a2be67e04a7071171da2380f82be103239f", + "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", "version": "1", - "digest": "Ge8nDvU9KCKDfmZqpFwt7omFDKYxfGrGUJ8qc4Gna1Uc", + "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -24,7 +23,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0x5b0e7d31f9c3a421f94dae3511983a2be67e04a7071171da2380f82be103239f" + "id": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb" } } } @@ -32,14 +31,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0x5ee269cea868091ea1c5da5f15581c2f7b1708413b3bdda3e4c9528f2b3a5bb9", + "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", "version": "1", - "digest": "7d8gTJskkPoVPFoFsTFLb5JvyY26cuiW9UNkVrnP5Hk8", + "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -48,7 +47,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0x5ee269cea868091ea1c5da5f15581c2f7b1708413b3bdda3e4c9528f2b3a5bb9" + "id": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4" } } } @@ -56,14 +55,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0x759bb64d0a576b00a8aae6d439da4a72ef7d8797282c90211bab2bc723cd48e5", + "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", "version": "1", - "digest": "DXLS4WoauDJ8yKdX1iuxbZjhm5KB7FwqoxQ5jZjQhz9J", + "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -72,7 +71,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0x759bb64d0a576b00a8aae6d439da4a72ef7d8797282c90211bab2bc723cd48e5" + "id": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1" } } } @@ -80,14 +79,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0xa010e1486bfd2f1d7c57a3b2c2edd369e64e8fddc1ca17667314317273cb491d", + "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", "version": "1", - "digest": "2oNVEnNehMmtkvC5vAYghCj7K7DtUrsjA65HgSbU4fbE", + "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -96,7 +95,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0xa010e1486bfd2f1d7c57a3b2c2edd369e64e8fddc1ca17667314317273cb491d" + "id": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b" } } } @@ -104,14 +103,14 @@ expression: "run_one(cmds, context).await?" }, { "data": { - "objectId": "0xb279227ad10111e5d870facc26d048a05bc440859e718cde0e3bbf257765544c", + "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", "version": "1", - "digest": "GCtoreW1XPSS2bmKxy5aNaFRD1ieK37aXH9Wd8rFoqph", + "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa", "type": "0x2::coin::Coin<0x2::iota::IOTA>", "owner": { "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -120,7 +119,7 @@ expression: "run_one(cmds, context).await?" "fields": { "balance": "30000000000000000", "id": { - "id": "0xb279227ad10111e5d870facc26d048a05bc440859e718cde0e3bbf257765544c" + "id": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7" } } } @@ -135,14 +134,14 @@ expression: "run_one(cmds, context).await?" "data": { "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", "version": "1", - "digest": "EVMF5DELWDiDckUy2J5u8UyfctyFYFPrM9hdqGeVxRLq", + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1", "type": "0x3::iota_system::IotaSystemState", "owner": { "Shared": { "initial_shared_version": 1 } }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "content": { "dataType": "moveObject", @@ -164,14 +163,14 @@ expression: "run_one(cmds, context).await?" "data": { "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", "version": "1", - "digest": "EVMF5DELWDiDckUy2J5u8UyfctyFYFPrM9hdqGeVxRLq", + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1", "type": "0x3::iota_system::IotaSystemState", "owner": { "Shared": { "initial_shared_version": 1 } }, - "previousTransaction": "iRCtWGJaBCVJyQ87kZZEubgBY69ZFnYXfCznyjs4Avb", + "previousTransaction": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", "storageRebate": "0", "bcs": { "dataType": "moveObject", @@ -193,7 +192,1506 @@ expression: "run_one(cmds, context).await?" } ], "iota client tx-block Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", - "ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo)].\", data: None }", + { + "digest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "transaction": { + "data": { + "messageVersion": "v1", + "transaction": { + "kind": "Genesis", + "objects": [ + "0x0000000000000000000000000000000000000000000000000000000000000001", + "0x0000000000000000000000000000000000000000000000000000000000000002", + "0x0000000000000000000000000000000000000000000000000000000000000003", + "0x0000000000000000000000000000000000000000000000000000000000000005", + "0x0000000000000000000000000000000000000000000000000000000000000006", + "0x0000000000000000000000000000000000000000000000000000000000000008", + "0x000000000000000000000000000000000000000000000000000000000000000b", + "0x0000000000000000000000000000000000000000000000000000000000000403", + "0x000000000000000000000000000000000000000000000000000000000000107a", + "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", + "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", + "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", + "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", + "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", + "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", + "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", + "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", + "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", + "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", + "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", + "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", + "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", + "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", + "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", + "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", + "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", + "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", + "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", + "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", + "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", + "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", + "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", + "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", + "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", + "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", + "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", + "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", + "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", + "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", + "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", + "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", + "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", + "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", + "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", + "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", + "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", + "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", + "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", + "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", + "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", + "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60" + ], + "events": [ + { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "0" + }, + { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "1" + } + ] + }, + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "gasData": { + "payment": [ + { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000000", + "version": 0, + "digest": "11111111111111111111111111111111" + } + ], + "owner": "0x0000000000000000000000000000000000000000000000000000000000000000", + "price": "1", + "budget": "0" + } + }, + "txSignatures": [ + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==" + ] + }, + "effects": { + "messageVersion": "v1", + "status": { + "status": "success" + }, + "executedEpoch": "0", + "gasUsed": { + "computationCost": "0", + "storageCost": "0", + "storageRebate": "0", + "nonRefundableStorageFee": "0" + }, + "transactionDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "created": [ + { + "owner": "Immutable", + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000001", + "version": 1, + "digest": "EEzLb1GUJ7T1D7c5YshyZRTUeEbuqJHEXZzVnZSyiP4X" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000002", + "version": 1, + "digest": "Hfn1skt6xRG4LJWMYfSRihabdYdysbpfW3E37FkZYTNv" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000003", + "version": 1, + "digest": "8ncmvcNW2hSrxsiA1BAYLfiHT7gq9CrQ5xAZd5icZ7AZ" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", + "version": 1, + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000006", + "version": 1, + "digest": "DoYdsHQ3yrPPbeLiP7m86cEvpdZa5u9WR3sfwkAwFzzP" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000008", + "version": 1, + "digest": "HcuoW6CpTvpCW6zyXReFRuwG57fWjFao6aFaQ8B6ojqb" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x000000000000000000000000000000000000000000000000000000000000000b", + "version": 1, + "digest": "7qX7XuWkQdxTey5khTi36fSt7wUaUj6WLcCvHYw7Kt7L" + } + }, + { + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000403", + "version": 1, + "digest": "4MciKuQpwmG4gcXB5j4CpYEsiEEFJADhVHNaLtnD7VgJ" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "version": 1, + "digest": "EyPJZsqLWzzuLwUbDmq77YDcYc2n28JUvmR2D3XYXvEx" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", + "version": 1, + "digest": "AgqbZ4SdhbequEufn6KPMegNwUEGHbZeGfNVWM7YEdFD" + } + }, + { + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "reference": { + "objectId": "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", + "version": 1, + "digest": "9Wdw77n2eeCTSha1f6Uj4LvG934xphSbyNRazH83W89j" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", + "version": 1, + "digest": "Ajbmr42uP2PXH3JgpufkeSbHVsc4FRaVgWiA3Na4ryCg" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", + "version": 1, + "digest": "D1czj3Qr4pMCQqhSwPxwiLFbGiMocRTuBkL8LftbsquG" + } + }, + { + "owner": { + "ObjectOwner": "0x7c7b5e9ac86c1c9167861684dc799150ae0bcb20ee35dc027a7b1c3239c43491" + }, + "reference": { + "objectId": "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", + "version": 1, + "digest": "6Gcrhm9g7gENwXs1LJLhM7bG7f7CaCH1UboQDrapPpve" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "version": 1, + "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "version": 1, + "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "version": 1, + "digest": "5ceUwwuSyYNbGcn6t92VYhkhrM9WXFrsqjHMBx9hTgui" + } + }, + { + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "reference": { + "objectId": "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", + "version": 1, + "digest": "eLUzrhLUXkLJexz7yRkugTEecsUSatiS97eKDTyRKQ9" + } + }, + { + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "reference": { + "objectId": "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", + "version": 1, + "digest": "5BrMrFjw1CczYMshk7dccVioKF2SSvvEudBSSoVicvgG" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", + "version": 1, + "digest": "RgrevPjn6eRbaBQBFDp5GVkhRHAxX1LN6PX6W7R3b2G" + } + }, + { + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "reference": { + "objectId": "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", + "version": 1, + "digest": "EXw3aJJqk8qBNWnDcLwg64D1qtyZjxhP5haefEbvFyDi" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", + "version": 1, + "digest": "3pwRGNUZmDZcfQp6tvvH63PYDtVZVG2VttFBhYMkDJLZ" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "version": 1, + "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", + "version": 1, + "digest": "HnGKwbms8dfQ6XNxcJDbLbFHDkh2b5NyARjgh8888Nh5" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", + "version": 1, + "digest": "C8kPWM5ksWk5ppVSZUSEvy5axrRBzqeqD3Gw4SfwYLt5" + } + }, + { + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "reference": { + "objectId": "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", + "version": 1, + "digest": "CVQfkwhtZPCWcXEwPNDx2RgJZZZWj9bViZkCG6rp7RT2" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", + "version": 1, + "digest": "GVWnxq3G3VTkrjmzeTCQNsrsZLH2pTv6a8cyJvPTjMPK" + } + }, + { + "owner": { + "ObjectOwner": "0x0ce0659906b775a0dc9bc9923d4933630a3c22e06b78f2f0a0537575929f996a" + }, + "reference": { + "objectId": "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", + "version": 1, + "digest": "BMYF3DduG7R7dkUDQMf2wG1zguhyFVzqMKZDwU9onTiy" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", + "version": 1, + "digest": "CvgY37zCcCY2bRjJdox5sH9oEDUgbovD8jHMGE9FHtmy" + } + }, + { + "owner": { + "ObjectOwner": "0x0000000000000000000000000000000000000000000000000000000000000005" + }, + "reference": { + "objectId": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "version": 1, + "digest": "9P2nsb8D67sXPdtK7xe6W6DPTyZTzEeKhi9KBwkVXbLz" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", + "version": 1, + "digest": "FfKTjzvKHcaEQSdxRK9zx8pbU8BZeU2N3s7f3tKL9eCX" + } + }, + { + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "reference": { + "objectId": "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", + "version": 1, + "digest": "HUMsUSpoXj22qB4M6tECWDjmEaTwxEwsuSy6KFcVn7VY" + } + }, + { + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "reference": { + "objectId": "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", + "version": 1, + "digest": "2WUuBVt8CfxY8SgBK8qxZUK5BUozyn61G6uDUxskz6vB" + } + }, + { + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "reference": { + "objectId": "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", + "version": 1, + "digest": "6iWxLqw2jwbdjyeWW6ahGgPEP96WFQ9QXAW1YUa6QoaT" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", + "version": 1, + "digest": "8YuEfQiV2fGTULQgjgMeuY2GULxxScLxMxJVzGRmEGFh" + } + }, + { + "owner": "Immutable", + "reference": { + "objectId": "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", + "version": 1, + "digest": "CBXqvoJK8TDYHd3z7xHYA2HdpW52UoNMg3hZyd3SS6Mq" + } + }, + { + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "reference": { + "objectId": "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", + "version": 1, + "digest": "qZB2htF7TnbC1erC5brX6usTaccoNbkYvzV1z2T1wRr" + } + }, + { + "owner": { + "ObjectOwner": "0xa638e6c2e51c688fac426e422c56d310ada32abf20ccf9ebdf1acc93e00c2472" + }, + "reference": { + "objectId": "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", + "version": 1, + "digest": "BdXCtcdbth68sFr11iGJZqz45N2fupUEErxB2Px4ZEC9" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", + "version": 1, + "digest": "HX5fgCYDAY4EXAsvS6LwgSUr9hx4aoZYbp5GJbUnq8n4" + } + }, + { + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "reference": { + "objectId": "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", + "version": 1, + "digest": "FkULFZXqhbqU5Fon3honm5pFmUiqJkY7Y6ECbte1Hii9" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", + "version": 1, + "digest": "4V3KqU3gC2eqg9un9WcutPCAiA6vPcGYeFqoTutixkB4" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", + "version": 1, + "digest": "FWeCCocjhoeacrKX1ZVkrEvqNxckJfk1KoyHtFH2Z8ES" + } + }, + { + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "reference": { + "objectId": "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", + "version": 1, + "digest": "8tKfiV8MHaEvrzzX3c9exgsAscHPmgZVF9GZ5LjZNwJz" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", + "version": 1, + "digest": "F7UAZ1nzZSGcEs1ntEuv5yBrtjgE9omqTYsM5MiyP1gg" + } + }, + { + "owner": { + "ObjectOwner": "0x9bc5337781f04e021c5d42b6db841d379794edcf721813534cb5d14dc0290d77" + }, + "reference": { + "objectId": "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", + "version": 1, + "digest": "6Jfkx2oF2DaXgcD7YMF9qeNUKMvGtBRtCmbh3CRZe21V" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", + "version": 1, + "digest": "Cs8zMC43XRRwrM4UxEaKE6R64iWLieh821t7bUh5gPU3" + } + }, + { + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "reference": { + "objectId": "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", + "version": 1, + "digest": "9DbBy8qevsWuEZJQdgyZgX2JTYju838H82fC6ioa6wpw" + } + }, + { + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "reference": { + "objectId": "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", + "version": 1, + "digest": "9cBTiupwFCu1ju2HsegDvB6Z68PSSsYPeXaMcD4RzKfc" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", + "version": 1, + "digest": "AQCi9QJC9fV8SEcpQQA9FKhsETtggm3VWAYuswZ6fXF5" + } + }, + { + "owner": { + "ObjectOwner": "0x25251a73e10849ffe7abc224ed35304d012a18f418611b381298d8be8b2eaf83" + }, + "reference": { + "objectId": "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", + "version": 1, + "digest": "6zzp85oetD1P7Zv4Umd7E4aG9iwbaGDmQgoKmutGpL4e" + } + }, + { + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "reference": { + "objectId": "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", + "version": 1, + "digest": "4Rs6gsJZ478oWm1L9KsosLZZeRXutj1SyrCNB6NzkS7E" + } + }, + { + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "reference": { + "objectId": "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", + "version": 1, + "digest": "Ac7ex9P1Qrs9wQAzZezDzoPPnoMcGqZoSh4LbMeduiui" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", + "version": 1, + "digest": "ECfLmrqxkyF2g16LdCCLAz6Gae51xF5Naka2zHc4sh9H" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "version": 1, + "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz" + } + }, + { + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "reference": { + "objectId": "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", + "version": 1, + "digest": "HEeQgzeThKQWJRqP2F9yMXArCNQD5xYPcCZKZEF8Kfqd" + } + }, + { + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "reference": { + "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "version": 1, + "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", + "version": 1, + "digest": "AhEJzhsHTTWbWER6c73s5oAVXXNE7VkDN56mhV8u4Qfn" + } + }, + { + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "reference": { + "objectId": "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60", + "version": 1, + "digest": "CBp9bmMzBTBKhAwHAFLm7KDgy8xSQkW41xaTF1RKHEc8" + } + } + ], + "gasObject": { + "owner": { + "AddressOwner": "0x0000000000000000000000000000000000000000000000000000000000000000" + }, + "reference": { + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000000", + "version": 0, + "digest": "11111111111111111111111111111111" + } + }, + "eventsDigest": "CaYcJ14pKAFjepdh3zk6S8WBtCEDusER6ZfZh5n5Sfrk" + }, + "events": [ + { + "id": { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "0" + }, + "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "transactionModule": "nft", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2::display::DisplayCreated<0x107a::nft::Nft>", + "parsedJson": { + "id": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f" + }, + "bcs": "4eK4Rmo4WPkHRfYunQzeR9sB8FgeBwvS6dmuAkFr91pz" + }, + { + "id": { + "txDigest": "Cq8LK5uVL4CXgG71iXEuDoLEXcT8AAwYQRxNWV8GEREo", + "eventSeq": "1" + }, + "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "transactionModule": "nft", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2::display::VersionUpdated<0x107a::nft::Nft>", + "parsedJson": { + "fields": { + "contents": [ + { + "key": "name", + "value": "{immutable_metadata.name}" + }, + { + "key": "image_url", + "value": "{immutable_metadata.uri}" + }, + { + "key": "description", + "value": "{immutable_metadata.description}" + }, + { + "key": "creator", + "value": "{immutable_metadata.issuer_name}" + }, + { + "key": "version", + "value": "{immutable_metadata.version}" + }, + { + "key": "media_type", + "value": "{immutable_metadata.media_type}" + }, + { + "key": "collection_name", + "value": "{immutable_metadata.collection_name}" + }, + { + "key": "immutable_issuer", + "value": "{immutable_issuer}" + } + ] + }, + "id": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "version": 1 + }, + "bcs": "RtmkG7B277UHmHzNeCR4JSjBPk5Jar4EmEM8rps4ibCVajBRYzsvQfF8QM43JPnE8aKATVn8vpGA2B8NS3HSf6tYyEY7SiT7XZcESuZAJDDAstKn2T5jZ4pZs6gqohtCsFoPVqfxMgir1dMYJQRdzBhjnYBHgUHU6U6ErV6wCU7CVk9xKX14hfD3Q4LK5cctwaK72iipJbdmmo4jXWGY177jRp8vAcP82xi28HyYdtu1S79GRmj7CUsn1yok6BD7ux6iqwDU6Xo8tBJBnA76Lmba7LFyS7nqUnVU4K5uiHVYC2jNudZtXvtJWeAcs1oQ5mx4wKpg82DsfePBCDc3WxyooTUZUbS8pJuKfrvbzGtC7iUJvRnTbW821dbBKcWvw8wajSATuPs7LkoBTxyETMCfrpzZCZF4tTmqDkPxKvYizxGhTga8PkSCSCvWMCNCdbRjBzGoxmJky5AWALRYZSA2x1jqdFudcd2U7E" + } + ], + "objectChanges": [ + { + "type": "published", + "packageId": "0x0000000000000000000000000000000000000000000000000000000000000001", + "version": "1", + "digest": "EEzLb1GUJ7T1D7c5YshyZRTUeEbuqJHEXZzVnZSyiP4X", + "modules": [ + "address", + "ascii", + "bcs", + "bit_vector", + "debug", + "fixed_point32", + "hash", + "macros", + "option", + "string", + "type_name", + "u128", + "u16", + "u256", + "u32", + "u64", + "u8", + "vector" + ] + }, + { + "type": "published", + "packageId": "0x0000000000000000000000000000000000000000000000000000000000000002", + "version": "1", + "digest": "Hfn1skt6xRG4LJWMYfSRihabdYdysbpfW3E37FkZYTNv", + "modules": [ + "address", + "authenticator_state", + "bag", + "balance", + "bcs", + "bls12381", + "borrow", + "clock", + "coin", + "coin_manager", + "config", + "deny_list", + "display", + "dynamic_field", + "dynamic_object_field", + "ecdsa_k1", + "ecdsa_r1", + "ecvrf", + "ed25519", + "event", + "groth16", + "group_ops", + "hash", + "hex", + "hmac", + "iota", + "kiosk", + "kiosk_extension", + "labeler", + "linked_table", + "object", + "object_bag", + "object_table", + "package", + "pay", + "poseidon", + "priority_queue", + "prover", + "random", + "system_admin_cap", + "table", + "table_vec", + "timelock", + "token", + "transfer", + "transfer_policy", + "tx_context", + "types", + "url", + "vdf", + "vec_map", + "vec_set", + "versioned", + "zklogin_verified_id", + "zklogin_verified_issuer" + ] + }, + { + "type": "published", + "packageId": "0x0000000000000000000000000000000000000000000000000000000000000003", + "version": "1", + "digest": "8ncmvcNW2hSrxsiA1BAYLfiHT7gq9CrQ5xAZd5icZ7AZ", + "modules": [ + "genesis", + "iota_system", + "iota_system_state_inner", + "staking_pool", + "storage_fund", + "timelocked_staking", + "validator", + "validator_cap", + "validator_set", + "validator_wrapper", + "voting_power" + ] + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x3::iota_system::IotaSystemState", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000005", + "version": "1", + "digest": "9YBBaSbQMRgqSUFr82Sj9XnQ9xt1XnC5NvDn4KdJeJH1" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x2::clock::Clock", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000006", + "version": "1", + "digest": "DoYdsHQ3yrPPbeLiP7m86cEvpdZa5u9WR3sfwkAwFzzP" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x2::random::Random", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000008", + "version": "1", + "digest": "HcuoW6CpTvpCW6zyXReFRuwG57fWjFao6aFaQ8B6ojqb" + }, + { + "type": "published", + "packageId": "0x000000000000000000000000000000000000000000000000000000000000000b", + "version": "1", + "digest": "7qX7XuWkQdxTey5khTi36fSt7wUaUj6WLcCvHYw7Kt7L", + "modules": [ + "bridge", + "chain_ids", + "committee", + "crypto", + "limiter", + "message", + "message_types", + "treasury" + ] + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "Shared": { + "initial_shared_version": 1 + } + }, + "objectType": "0x2::deny_list::DenyList", + "objectId": "0x0000000000000000000000000000000000000000000000000000000000000403", + "version": "1", + "digest": "4MciKuQpwmG4gcXB5j4CpYEsiEEFJADhVHNaLtnD7VgJ" + }, + { + "type": "published", + "packageId": "0x000000000000000000000000000000000000000000000000000000000000107a", + "version": "1", + "digest": "EyPJZsqLWzzuLwUbDmq77YDcYc2n28JUvmR2D3XYXvEx", + "modules": [ + "address_unlock_condition", + "alias", + "alias_output", + "basic_output", + "expiration_unlock_condition", + "irc27", + "nft", + "nft_output", + "stardust_upgrade_label", + "storage_deposit_return_unlock_condition", + "timelock_unlock_condition", + "utilities" + ] + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x0658bc0b0d7fbc21787e3c0cb499355da97a2676b1d89fe4b30d163b8c62e7ed", + "version": "1", + "digest": "AgqbZ4SdhbequEufn6KPMegNwUEGHbZeGfNVWM7YEdFD" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0x075763a78e8a77cba94dfb46a7d7ffff8ed330d0774ec244a9c066b87376bf85", + "version": "1", + "digest": "9Wdw77n2eeCTSha1f6Uj4LvG934xphSbyNRazH83W89j" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x17e76e42843454d5d030ad02dd96b08d27dd1baea95ec33f61422d2a474fc64e", + "version": "1", + "digest": "Ajbmr42uP2PXH3JgpufkeSbHVsc4FRaVgWiA3Na4ryCg" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x1c91896da60a3b83c30c4ec462b01b7b58620fef39a66464b48a94c0eb129017", + "version": "1", + "digest": "D1czj3Qr4pMCQqhSwPxwiLFbGiMocRTuBkL8LftbsquG" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x7c7b5e9ac86c1c9167861684dc799150ae0bcb20ee35dc027a7b1c3239c43491" + }, + "objectType": "0x2::dynamic_field::Field", + "objectId": "0x2a655cbb998089faa8412a2c2a92fa00a8b8398df3df42f39d576434ee7572fa", + "version": "1", + "digest": "6Gcrhm9g7gENwXs1LJLhM7bG7f7CaCH1UboQDrapPpve" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x2c1a8cb28b43af1413d879e6a3acccb29eded14f952877582b027338c567bfcb", + "version": "1", + "digest": "Gqd4PCCzQDf2ZYqzzD2p3XAoh94NHo1A6WaSP4NHX8xQ" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x339053ddf13ae59297c29300bd68ddfd3af6c7a5d3cf94dbb877978149392da4", + "version": "1", + "digest": "6F2itozbAXqk9Ak8diF6DGVpC5skK2r24TCgwkyNjNf9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": "Immutable", + "objectType": "0x2::display::Display<0x107a::nft::Nft>", + "objectId": "0x3621f85e6d15240ebe5ed168e14b5bb76e6f44bbf0f8c2a3a5b3ab66af6d0a2f", + "version": "1", + "digest": "5ceUwwuSyYNbGcn6t92VYhkhrM9WXFrsqjHMBx9hTgui" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x3f17533f07520a49ef52abfbf7b9317e234f29e0196b33afc84d163ef8034d03", + "version": "1", + "digest": "eLUzrhLUXkLJexz7yRkugTEecsUSatiS97eKDTyRKQ9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0x434480a6195e420a99448287684aceb12e88bae1004166e8d3e84910257af130", + "version": "1", + "digest": "5BrMrFjw1CczYMshk7dccVioKF2SSvvEudBSSoVicvgG" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x464079306127b6f089328b16d1f2de3efef3b6ddc099bf9850f6914cd64bcfa5", + "version": "1", + "digest": "RgrevPjn6eRbaBQBFDp5GVkhRHAxX1LN6PX6W7R3b2G" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x4b44af5c085eb56a4b0cd9e09b9e5cd8fb33119a93238dd3768c7437175a9df5", + "version": "1", + "digest": "EXw3aJJqk8qBNWnDcLwg64D1qtyZjxhP5haefEbvFyDi" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x4c85212134d410410c2a5ee0f03f3595884fa739931d03742833d02f9f4d890b", + "version": "1", + "digest": "3pwRGNUZmDZcfQp6tvvH63PYDtVZVG2VttFBhYMkDJLZ" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x4cccff02ad9fbfd4e77f071636d88fddad4e48629813518cd39b2100072e15d1", + "version": "1", + "digest": "DPcMjDP4X3jp2t7J2zTZF7CBjhJ87fP1rxFHsDh9bRPE" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x532489afdc0d76972e374298baaee6730bfeee3d68b26abfecd616a56690d902", + "version": "1", + "digest": "HnGKwbms8dfQ6XNxcJDbLbFHDkh2b5NyARjgh8888Nh5" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x5396282be36c868aec019959977a2a2b3e35e32ca8e9d0418a73d5d7f06c45f3", + "version": "1", + "digest": "C8kPWM5ksWk5ppVSZUSEvy5axrRBzqeqD3Gw4SfwYLt5" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x58010842a21daf70d03f28e14a55c3b44c9e1f2c82bf6e79643c440e7e260231", + "version": "1", + "digest": "CVQfkwhtZPCWcXEwPNDx2RgJZZZWj9bViZkCG6rp7RT2" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x5e199335497052f88a5179fe1b336aa3908278987d5d8cbfc01ae1d20eafa7bc", + "version": "1", + "digest": "GVWnxq3G3VTkrjmzeTCQNsrsZLH2pTv6a8cyJvPTjMPK" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x0ce0659906b775a0dc9bc9923d4933630a3c22e06b78f2f0a0537575929f996a" + }, + "objectType": "0x2::dynamic_field::Field", + "objectId": "0x5fb62a31bea23630d03f4a650cd8faa3b60e636d82f79aa9b61e35cf70861712", + "version": "1", + "digest": "BMYF3DduG7R7dkUDQMf2wG1zguhyFVzqMKZDwU9onTiy" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x601abe73257d8782de41888a16e9e04465a781e321f929c4c9c348c8a9a1110c", + "version": "1", + "digest": "CvgY37zCcCY2bRjJdox5sH9oEDUgbovD8jHMGE9FHtmy" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x0000000000000000000000000000000000000000000000000000000000000005" + }, + "objectType": "0x2::dynamic_field::Field", + "objectId": "0x6af2a2b7ca60bf76174adfd3e9c4957f8e937759603182f9b46c7f6c5f19c6d2", + "version": "1", + "digest": "9P2nsb8D67sXPdtK7xe6W6DPTyZTzEeKhi9KBwkVXbLz" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x72995e676bcc6c290a2f4c42f8a5846c7ef0063b9af7728ef5d4123de9ac8bbc", + "version": "1", + "digest": "FfKTjzvKHcaEQSdxRK9zx8pbU8BZeU2N3s7f3tKL9eCX" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2f1c55f14bcab32b91bccbf9909aa2818d644d4a1f6401c37f97383e4d8275ca" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x72ee17dff740e4aefa6a03e6212533f3615005d79a206698bcd47e9b34d1df1a", + "version": "1", + "digest": "HUMsUSpoXj22qB4M6tECWDjmEaTwxEwsuSy6KFcVn7VY" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b2a0b010344ffda7202ecd5f76b742b78516cfcdb208e3314d65a4157654c4b" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0x76742eed3be4ac1fbf108ae112a743f314a8f8ac90c66b5beb0efe39a58ca6b6", + "version": "1", + "digest": "2WUuBVt8CfxY8SgBK8qxZUK5BUozyn61G6uDUxskz6vB" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xdfa435dca12a14a0e032df1774310db7f9c33510231aba16399e13b44c388919" + }, + "objectType": "0x2::dynamic_field::Field<0x2::object::ID, address>", + "objectId": "0x778aafce25aa78d5cb0a77b78b816d4ef61e574a590fa5b5787c448c2eb56ce5", + "version": "1", + "digest": "6iWxLqw2jwbdjyeWW6ahGgPEP96WFQ9QXAW1YUa6QoaT" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x8371569f0f25fa2bef413dc333f74a8df4c1ad6cf31dc80048887ae85eecd527", + "version": "1", + "digest": "8YuEfQiV2fGTULQgjgMeuY2GULxxScLxMxJVzGRmEGFh" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": "Immutable", + "objectType": "0x2::coin::CoinMetadata<0x2::iota::IOTA>", + "objectId": "0x83d61ef9fc69752099b356a702283468748b46057b97466da021ad966e2e1362", + "version": "1", + "digest": "CBXqvoJK8TDYHd3z7xHYA2HdpW52UoNMg3hZyd3SS6Mq" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x8f6303e1c51abe1dd7808d8c3d3c96cbaa53565e9dd243ee1bb65a3259947ec5", + "version": "1", + "digest": "qZB2htF7TnbC1erC5brX6usTaccoNbkYvzV1z2T1wRr" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0xa638e6c2e51c688fac426e422c56d310ada32abf20ccf9ebdf1acc93e00c2472" + }, + "objectType": "0x2::dynamic_field::Field", + "objectId": "0x9798a9772438b077f07c4b5a29d90e8b1d1c774424043645ed27e5a0c79d2499", + "version": "1", + "digest": "BdXCtcdbth68sFr11iGJZqz45N2fupUEErxB2Px4ZEC9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0x98038db1bfffc9a021aa9b1711288f56756a203112017ac615bdd49e0ddfe768", + "version": "1", + "digest": "HX5fgCYDAY4EXAsvS6LwgSUr9hx4aoZYbp5GJbUnq8n4" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0x99bc508c5440067cf58e4b6e671416a2b04e4f60456b711a81b2a9f549ec6892", + "version": "1", + "digest": "FkULFZXqhbqU5Fon3honm5pFmUiqJkY7Y6ECbte1Hii9" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xae837285a73c2d23f86206314d8acfdc7adf4af36e33807e3e535cc24edcddda", + "version": "1", + "digest": "4V3KqU3gC2eqg9un9WcutPCAiA6vPcGYeFqoTutixkB4" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xb1930538959be08dee8ab76c7898c85be25e429f967913cc90f3d1b1ab496717", + "version": "1", + "digest": "FWeCCocjhoeacrKX1ZVkrEvqNxckJfk1KoyHtFH2Z8ES" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa0146b1188ebad1dab40317cfb41b64eea8452d2e3b4696f115b2bcf70a62620" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xb2d16c38972ef51ed6995d84fee1d5e938eb64d8ab4b8cadc68170f60a778486", + "version": "1", + "digest": "8tKfiV8MHaEvrzzX3c9exgsAscHPmgZVF9GZ5LjZNwJz" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xc1f45dae29fcdc6611af2ac3b42443fa28fb337e89850cf61b97b048c6cfe121", + "version": "1", + "digest": "F7UAZ1nzZSGcEs1ntEuv5yBrtjgE9omqTYsM5MiyP1gg" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x9bc5337781f04e021c5d42b6db841d379794edcf721813534cb5d14dc0290d77" + }, + "objectType": "0x2::dynamic_field::Field", + "objectId": "0xc98cbb8b969eccb46b7a487eaa75ac486faa3a55b719731aa9a6b7fdcc90cbc3", + "version": "1", + "digest": "6Jfkx2oF2DaXgcD7YMF9qeNUKMvGtBRtCmbh3CRZe21V" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xcdb39cadb88f872448b2836e131c7ef076be9c644ca4d18795e4db5911267fa3", + "version": "1", + "digest": "Cs8zMC43XRRwrM4UxEaKE6R64iWLieh821t7bUh5gPU3" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x786c73ac358652b660d32e1097d11ea2723cfada4ab861288855c70f8c5b7fe9" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0xd23f565f9f5472944be8a2a7e36e2ce71a8c4f8b52f8da559f8545ac912347f6", + "version": "1", + "digest": "9DbBy8qevsWuEZJQdgyZgX2JTYju838H82fC6ioa6wpw" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xd4ab7d9834d2755f11fe022dd53feecd86cb447425496fc4d02cb7b73348c688" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0xd2cba88d7ce541ad591c502ccf59c6c59d7dd432b663cc13a36781a6976bf5bb", + "version": "1", + "digest": "9cBTiupwFCu1ju2HsegDvB6Z68PSSsYPeXaMcD4RzKfc" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xd5e3ee6fa97b35e816e608f24f775ffd69630f04d1f5131627fb86153a003e47", + "version": "1", + "digest": "AQCi9QJC9fV8SEcpQQA9FKhsETtggm3VWAYuswZ6fXF5" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "ObjectOwner": "0x25251a73e10849ffe7abc224ed35304d012a18f418611b381298d8be8b2eaf83" + }, + "objectType": "0x2::dynamic_field::Field", + "objectId": "0xda50ca1f674de8e7166d0c0265dd4175f0a69f461c00ac65107d6957cd168348", + "version": "1", + "digest": "6zzp85oetD1P7Zv4Umd7E4aG9iwbaGDmQgoKmutGpL4e" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "objectType": "0x3::staking_pool::StakedIota", + "objectId": "0xda89bac08a36b187df7de02a08ac3b6a98016b1610c64cde2970f5f4b59125d4", + "version": "1", + "digest": "4Rs6gsJZ478oWm1L9KsosLZZeRXutj1SyrCNB6NzkS7E" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0xa76e9ed3ad7f9e542674c2128d42dfe094540b485eba58f6e980ef8082230507" + }, + "objectType": "0x3::validator_cap::UnverifiedValidatorOperationCap", + "objectId": "0xdc94ba8e8d952bb19047335bc1517d556b21d2ce96722885214c5f5241ac4ad0", + "version": "1", + "digest": "Ac7ex9P1Qrs9wQAzZezDzoPPnoMcGqZoSh4LbMeduiui" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xdf0d86e9d8d2ab9d598062da57d512d39e0102425ecea598aee9a1d73e883619", + "version": "1", + "digest": "ECfLmrqxkyF2g16LdCCLAz6Gae51xF5Naka2zHc4sh9H" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xe0b08d48248e495318c2aa10da651a1cd69f49ddb38a349b0000dea55415f48b", + "version": "1", + "digest": "5UbcKdRD7iyfUn2upZ1c9wuWRiD9J9h9hCCE1jX1EHSz" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x44f42943b20151d6a0c3cb0f84006b3441bb3378c668a6df71fa36cb441538c8" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xe6a48ab793151dfceb21d185730b05319ede87e6e415fd1fec41bafe4e0779f6", + "version": "1", + "digest": "HEeQgzeThKQWJRqP2F9yMXArCNQD5xYPcCZKZEF8Kfqd" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x2868fed4dbeb23d2ace3ee3ad6e39061423c5692a2b289b39c643c0baf2d8d85" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xee188f7b5964b56105a062dcfddd10e4f4e427db489f9bf562a264b76e6bf9d7", + "version": "1", + "digest": "A5Tnjugpa5gCcKLcwiVNJnYGRHuuADX7YtpgUtgfKfXa" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xf9f32e362d5d343046fde898a7372ea2a6a7d4d36bda1b1ab31f1724a92a1982", + "version": "1", + "digest": "AhEJzhsHTTWbWER6c73s5oAVXXNE7VkDN56mhV8u4Qfn" + }, + { + "type": "created", + "sender": "0x0000000000000000000000000000000000000000000000000000000000000000", + "owner": { + "AddressOwner": "0x4b578d914e64de1ca47bead61bcfa0932646e16de6063089810cfa904eb8b06f" + }, + "objectType": "0x2::coin::Coin<0x2::iota::IOTA>", + "objectId": "0xfd211f3ecaa7a6f275351ac86570183daf1fba722faf7c5cb64f04210113dc60", + "version": "1", + "digest": "CBp9bmMzBTBKhAwHAFLm7KDgy8xSQkW41xaTF1RKHEc8" + } + ], + "timestampMs": "1641175496000", + "checkpoint": "0" + }, "iota client tx-block EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8", "ErrorObject { code: InvalidParams, message: \"Could not find the referenced transaction [TransactionDigest(EgMTHQygMi6SRsBqrPHAEKZCNrpShXurCp9rcb9qbSg8)].\", data: None }" -] +] \ No newline at end of file From 1eb23531d5ab319e222843ea15684ba04700589c Mon Sep 17 00:00:00 2001 From: Thoralf-M <46689931+Thoralf-M@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:03:46 +0100 Subject: [PATCH 06/10] feat(dashboards): remove empty file (#4036) --- dashboards/README.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 dashboards/README.md diff --git a/dashboards/README.md b/dashboards/README.md deleted file mode 100644 index e69de29bb2d..00000000000 From 1a648b4af9f168a73c9750edc8aa77f1dc0c4381 Mon Sep 17 00:00:00 2001 From: DaughterOfMars Date: Wed, 13 Nov 2024 11:06:40 -0500 Subject: [PATCH 07/10] chore(CI): Add more nightly jobs (#3971) * chore(CI): Add more nightly jobs * cleanup * rename and fix error * simplify * dprint * color split cluster output * external tests --- .github/workflows/_e2e.yml | 33 +++++++++---------- .github/workflows/_external_rust_tests.yml | 22 ++++--------- .github/workflows/_rust.yml | 38 +++++++++++++++++++--- .github/workflows/_rust_tests.yml | 25 +++++--------- .github/workflows/_vercel_deploy.yml | 16 +++------ .github/workflows/hierarchy.yml | 5 +-- .github/workflows/nightly.yml | 33 +++++++++++++++---- .github/workflows/split_cluster.yml | 7 ++++ 8 files changed, 103 insertions(+), 76 deletions(-) diff --git a/.github/workflows/_e2e.yml b/.github/workflows/_e2e.yml index 42eb66e2c64..21cccf3a81c 100644 --- a/.github/workflows/_e2e.yml +++ b/.github/workflows/_e2e.yml @@ -5,25 +5,22 @@ on: inputs: isRust: type: boolean - required: true + required: false isExplorer: type: boolean - required: true + required: false isAppsBackend: type: boolean - required: true + required: false isTypescriptSDK: type: boolean - required: true + required: false isWallet: type: boolean - required: true + required: false isGraphQlTransport: type: boolean - required: true - isDevelop: - type: boolean - required: true + required: false concurrency: group: e2e-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -33,7 +30,7 @@ jobs: # Run e2e test against localnet built on the develop branch localnet: name: Localnet - if: inputs.isExplorer || inputs.isTypescriptSDK || inputs.isWallet || inputs.isRust || inputs.isDevelop + if: inputs.isExplorer || inputs.isTypescriptSDK || inputs.isWallet || inputs.isRust || github.ref_name == 'develop' runs-on: self-hosted services: postgres: @@ -70,27 +67,27 @@ jobs: echo "E2E_RUN_LOCAL_NET_CMD=(RUST_LOG=info RUST_BACKTRACE=1 $(echo $PWD/target/debug/iota) start --with-faucet --force-regenesis --with-indexer --with-graphql)" >> $GITHUB_ENV - name: Run TS SDK e2e tests - if: inputs.isTypescriptSDK || inputs.isRust || inputs.isDevelop + if: inputs.isTypescriptSDK || inputs.isRust || github.ref_name == 'develop' run: pnpm dlx concurrently --kill-others --success command-1 "$E2E_RUN_LOCAL_NET_CMD" 'pnpm --filter @iota/iota-sdk test:e2e' - name: Run RPC/GraphQL compatibility e2e tests - if: inputs.isGraphQlTransport || inputs.isRust || inputs.isDevelop + if: inputs.isGraphQlTransport || inputs.isRust || github.ref_name == 'develop' run: pnpm dlx concurrently --kill-others --success command-1 "$E2E_RUN_LOCAL_NET_CMD" 'pnpm --filter @iota/graphql-transport test:e2e' - name: Build apps-backend - if: inputs.isAppsBackend || inputs.isDevelop + if: inputs.isAppsBackend || github.ref_name == 'develop' run: pnpm --filter apps-backend build - name: Run apps-backend e2e tests - if: inputs.isAppsBackend || inputs.isDevelop + if: inputs.isAppsBackend || github.ref_name == 'develop' run: pnpm --filter apps-backend test:e2e - name: Build explorer - if: inputs.isTypescriptSDK || inputs.isExplorer || inputs.isRust || inputs.isDevelop + if: inputs.isTypescriptSDK || inputs.isExplorer || inputs.isRust || github.ref_name == 'develop' run: pnpm turbo --filter=iota-explorer build - name: Run Explorer e2e tests - if: inputs.isTypescriptSDK || inputs.isExplorer || inputs.isRust || inputs.isDevelop + if: inputs.isTypescriptSDK || inputs.isExplorer || inputs.isRust || github.ref_name == 'develop' run: pnpm --filter iota-explorer playwright test - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # pin@v4 if: always() @@ -111,11 +108,11 @@ jobs: run: cargo run --bin iota start --force-regenesis --with-faucet --epoch-duration-ms 10000 & - name: Build Wallet - if: inputs.isWallet || inputs.isRust || inputs.isTypescriptSDK || inputs.isDevelop + if: inputs.isWallet || inputs.isRust || inputs.isTypescriptSDK || github.ref_name == 'develop' run: pnpm wallet build - name: Run Wallet e2e tests - if: inputs.isWallet || inputs.isRust || inputs.isTypescriptSDK || inputs.isDevelop + if: inputs.isWallet || inputs.isRust || inputs.isTypescriptSDK || github.ref_name == 'develop' run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- pnpm --filter iota-wallet playwright test - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # pin@v4 diff --git a/.github/workflows/_external_rust_tests.yml b/.github/workflows/_external_rust_tests.yml index 1b064b0ec1b..015ff4b7676 100644 --- a/.github/workflows/_external_rust_tests.yml +++ b/.github/workflows/_external_rust_tests.yml @@ -1,6 +1,11 @@ name: Rust tests -on: workflow_call +on: + workflow_call: + inputs: + changedCrates: + type: string + required: false concurrency: group: ext-rust-tests-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -12,21 +17,8 @@ env: CARGO_INCREMENTAL: 0 jobs: - changes: - runs-on: [self-hosted] - outputs: - components: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4 - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3 - id: filter - with: - list-files: "json" - filters: .github/external-crates-filters.yml - test: name: Test external crates - needs: changes if: (!cancelled()) env: # Tests written with #[sim_test] are often flaky if run as #[tokio::test] - this var @@ -43,7 +35,7 @@ jobs: run: pip install pyopenssl --upgrade --break-system-packages - name: cargo test run: | - array=(${{ join(fromJson(needs.changes.outputs.components), ' ') }}) + array=(${{ inputs.changedCrates }}) result="" diff --git a/.github/workflows/_rust.yml b/.github/workflows/_rust.yml index e9564763513..806466ae426 100644 --- a/.github/workflows/_rust.yml +++ b/.github/workflows/_rust.yml @@ -43,19 +43,47 @@ jobs: deny: uses: ./.github/workflows/_cargo_deny.yml - rust-tests: + crates-changes: + needs: rust-lints + runs-on: [self-hosted] + outputs: + components: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3 + id: filter + with: + list-files: "json" + filters: .github/crates-filters.yml + + external-changes: + needs: rust-lints + runs-on: [self-hosted] + outputs: + components: ${{ steps.filter.outputs.changes }} + steps: + - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4 + - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3 + id: filter + with: + list-files: "json" + filters: .github/external-crates-filters.yml + + crates-tests: if: | !cancelled() && !failure() && inputs.isRust && github.event.pull_request.draft == false - needs: - - rust-lints + needs: crates-changes uses: ./.github/workflows/_rust_tests.yml + with: + changedCrates: ${{ join(fromJson(needs.crates-changes.outputs.components), ' ') }} external-tests: if: | !cancelled() && !failure() && inputs.isRust && github.event.pull_request.draft == false - needs: - - rust-lints + needs: external-changes uses: ./.github/workflows/_external_rust_tests.yml + with: + changedCrates: ${{ join(fromJson(needs.external-changes.outputs.components), ' ') }} execution-cut: if: | diff --git a/.github/workflows/_rust_tests.yml b/.github/workflows/_rust_tests.yml index 59857d2b1a8..7b2857f27fc 100644 --- a/.github/workflows/_rust_tests.yml +++ b/.github/workflows/_rust_tests.yml @@ -1,6 +1,11 @@ name: Rust tests -on: workflow_call +on: + workflow_call: + inputs: + changedCrates: + type: string + required: false concurrency: group: rust-tests-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -21,21 +26,8 @@ env: RUSTDOCFLAGS: -D warnings jobs: - changes: - runs-on: [self-hosted] - outputs: - components: ${{ steps.filter.outputs.changes }} - steps: - - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # pin@v4 - - uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # pin@v3 - id: filter - with: - list-files: "json" - filters: .github/crates-filters.yml - test: name: Test rust crates - needs: changes if: (!cancelled()) env: # Tests written with #[sim_test] are often flaky if run as #[tokio::test] - this var @@ -50,7 +42,7 @@ jobs: tool: nextest - name: cargo test run: | - array=(${{ join(fromJson(needs.changes.outputs.components), ' ') }}) + array=(${{ inputs.changedCrates }}) result="" @@ -126,7 +118,6 @@ jobs: simtest: name: Simtest rust - needs: changes timeout-minutes: 45 runs-on: [self-hosted] env: @@ -138,7 +129,7 @@ jobs: tool: nextest - name: setup filter run: | - array=(${{ join(fromJson(needs.changes.outputs.components), ' ') }}) + array=(${{ inputs.changedCrates }}) result="" diff --git a/.github/workflows/_vercel_deploy.yml b/.github/workflows/_vercel_deploy.yml index 2047ca432ab..d85f6664fff 100644 --- a/.github/workflows/_vercel_deploy.yml +++ b/.github/workflows/_vercel_deploy.yml @@ -21,15 +21,9 @@ on: shouldDeployPreview: type: boolean required: true - isDevelop: - type: boolean - required: true - githubRef: - type: string - required: true concurrency: - group: ${{ github.workflow }}-${{ inputs.githubRef }} + group: vercel-deploy-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: @@ -44,7 +38,7 @@ jobs: explorer-staging: name: Vercel Explorer Staging - if: inputs.isDevelop + if: github.ref_name == 'develop' uses: ./.github/workflows/apps_explorer_deploy.yml secrets: inherit with: @@ -61,7 +55,7 @@ jobs: ui-kit-prod: name: Vercel UI Kit Production - if: inputs.isDevelop + if: github.ref_name == 'develop' uses: ./.github/workflows/apps_ui_kit_deploy.yml secrets: inherit with: @@ -77,7 +71,7 @@ jobs: wallet-dashboard-prod: name: Vercel Wallet Dashboard Production - if: inputs.isDevelop + if: github.ref_name == 'develop' uses: ./.github/workflows/apps_wallet_dashboard_deploy.yml secrets: inherit with: @@ -93,7 +87,7 @@ jobs: apps-backend-prod: name: Vercel apps-backend Production - if: inputs.isDevelop + if: github.ref_name == 'develop' uses: ./.github/workflows/apps_backend_deploy.yml secrets: inherit with: diff --git a/.github/workflows/hierarchy.yml b/.github/workflows/hierarchy.yml index 612d35b03a0..309d1e93e72 100644 --- a/.github/workflows/hierarchy.yml +++ b/.github/workflows/hierarchy.yml @@ -148,7 +148,6 @@ jobs: isAppsBackend: ${{ needs.diff.outputs.isAppsBackend == 'true' }} isTypescriptSDK: ${{ needs.diff.outputs.isTypescriptSDK == 'true' }} isGraphQlTransport: ${{ needs.diff.outputs.isGraphQlTransport == 'true' }} - isDevelop: ${{ github.ref_name == 'develop' }} vercel-deploy: if: (!cancelled() && !failure()) @@ -160,14 +159,12 @@ jobs: uses: ./.github/workflows/_vercel_deploy.yml secrets: inherit with: - shouldDeployPreview: ${{github.event_name == 'pull_request' && github.event.pull_request.draft == false}} + shouldDeployPreview: ${{ github.event_name == 'pull_request' && github.event.pull_request.draft == false }} isExplorer: ${{ needs.diff.outputs.isExplorer == 'true' }} isTypescriptSDK: ${{ needs.diff.outputs.isTypescriptSDK == 'true' }} isAppsBackend: ${{ needs.diff.outputs.isAppsBackend == 'true' }} isAppsUiKit: ${{ needs.diff.outputs.isAppsUiKit == 'true' }} isWalletDashboard: ${{ needs.diff.outputs.isWalletDashboard == 'true' }} - isDevelop: ${{ github.ref_name == 'develop' }} - githubRef: ${{ github.event.pull_request.number || github.ref }} ledgernano: if: (!cancelled() && !failure()) && needs.diff.outputs.isLedgerjs == 'true' && github.event.pull_request.draft == false diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4af2b2bcc34..f2b54ab7aac 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,4 +1,4 @@ -name: Nightly binary build +name: Nightly checks on: schedule: @@ -29,11 +29,6 @@ env: RUST_BACKTRACE: short jobs: - cargo-deny-external: - uses: ./.github/workflows/_cargo_deny.yml - with: - manifest-path: external-crates/move/Cargo.toml - release: name: build release binaries runs-on: ${{ matrix.os }} @@ -72,3 +67,29 @@ jobs: with: command: build args: --all-targets --all-features --release + + tests: + uses: ./.github/workflows/_rust_tests.yml + + external-tests: + uses: ./.github/workflows/_external_rust_tests.yml + + move-tests: + uses: ./.github/workflows/_move_tests.yml + + deny: + uses: ./.github/workflows/_cargo_deny.yml + + deny-external: + uses: ./.github/workflows/_cargo_deny.yml + with: + manifest-path: external-crates/move/Cargo.toml + + e2e: + uses: ./.github/workflows/_e2e.yml + + execution-cut: + uses: ./.github/workflows/_execution_cut.yml + + split-cluster: + uses: ./.github/workflows/split_cluster.yml diff --git a/.github/workflows/split_cluster.yml b/.github/workflows/split_cluster.yml index 6da472a4073..31ce2cc9389 100644 --- a/.github/workflows/split_cluster.yml +++ b/.github/workflows/split_cluster.yml @@ -1,9 +1,16 @@ name: Split Cluster Check on: + workflow_call: pull_request: types: [opened, synchronize, reopened, ready_for_review] +env: + CARGO_TERM_COLOR: always + RUST_LOG: "error" + # Don't emit giant backtraces in the CI logs. + RUST_BACKTRACE: short + jobs: # TODO: re-enable https://github.com/iotaledger/iota/issues/3862 # validate-mainnet: From d558b1ebeee0c5fdf027c087af75c33e408dab68 Mon Sep 17 00:00:00 2001 From: Pavlo Botnar Date: Wed, 13 Nov 2024 21:11:38 +0200 Subject: [PATCH 08/10] feat(docs/developer/move-2024) ensure move 2024 and enums documented (#3790) * feat(docs/advanced): add move 2024 introduction mdx for further updates * refactor(docs/advanced): how to migrate section has been removed , missed sections like - (Macro Functions, Enums, Postfix `has` ability declarations, Type inference holes `_` on type annotations, Named blocks with enhanced control flow operations) have been added. Renaming to IOTA * refactor(docs/advanced): Update links * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Mirko Zichichi * refactor(docs/advanced): Remove VSCode extension and move-analyzer part * Refactoring of Move 2024 doc * Apply suggestions from code review Co-authored-by: salaheldinsoliman <49910731+salaheldinsoliman@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> * Fix text style(according to review comments) * Update docs/content/developer/advanced/introducing-move-2024.mdx Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> --------- Co-authored-by: nonast <29281463+nonast@users.noreply.github.com> Co-authored-by: Mirko Zichichi Co-authored-by: Levente Pap Co-authored-by: salaheldinsoliman <49910731+salaheldinsoliman@users.noreply.github.com> Co-authored-by: Lucas Tortora <85233773+lucas-tortora@users.noreply.github.com> --- .../advanced/introducing-move-2024.mdx | 470 ++++++++++++++++++ docs/content/sidebars/developer.js | 1 + 2 files changed, 471 insertions(+) create mode 100644 docs/content/developer/advanced/introducing-move-2024.mdx diff --git a/docs/content/developer/advanced/introducing-move-2024.mdx b/docs/content/developer/advanced/introducing-move-2024.mdx new file mode 100644 index 00000000000..99d53feedcb --- /dev/null +++ b/docs/content/developer/advanced/introducing-move-2024.mdx @@ -0,0 +1,470 @@ +--- +title: Introducing Move 2024 +description: New features are becoming available to Move in 2024. These features are opt-in, so existing code will continue to function as expected. If you want to use these features in code you've already written, however, there are some steps you must take and breaking changes to be aware of to migrate to Move 2024. +--- + +IOTA launches with the "Move 2024.beta" edition, bringing enhanced features to improve both the writing and readability of Move code. These updates refine the source language without impacting the on-chain binary representation, allowing users to enjoy a smoother experience with the latest language improvements. + +The primary goal of the "Move 2024.beta" edition is to make Move easier to write and, ideally, easier to read. The minimal breaking changes introduced in the source language are designed to better prepare Move for future advancements. + +This document highlights some new features to try out and shows how to use them in your existing modules. + +:::info + +Please, provide any feedback or report any issues you encounter via [GitHub](https://github.com/iotaledger/iota/issues/new/choose) or [Discord](https://discord.iota.org/). + +::: + +## New features + +:::info + +Below are examples of how to rewrite some legacy code in the Move 2024 edition. +If you find legacy code in the Move examples and would like to rewrite it based on Move 2024, refer to these examples. + +::: + + +### Method Syntax + +You can now call certain function methods using the `.` syntax. For example, the following call: + +```move +vector::push_back(&mut v, coin::value(&c)); +``` + +Can now be written as: + +```move +v.push_back(c.value()); +``` + +Where the receiver of the method (`v` and `c` in this example) is automatically borrowed if necessary (as `&mut v` and `&c` respectively). + +You can call any function defined in the same module as the receiver's type as a method if it takes the receiver as its first argument. + +For functions defined outside the module, you can declare methods using `public use fun` and `use fun`. + +### Index Syntax + +With method syntax, you can annotate certain functions as being `#[syntax(index)]` methods. You then call these methods using `v[i]`-style calls. + +For example, + +```move +*&mut v[i] = v[j]; +``` + +resolves to + +```move +*vector::borrow_mut(&mut v, i) = *vector::borrow(&v, j); +``` + +### Macro Functions + +Higher-order functions (such as `map,` `filter,` `fold,` `for_each,` etc.) are useful in many languages for concisely transforming collections. Move does not have lambdas, closures, or function pointers, making defining these operations impossible. +Macro functions will allow for Move to mimic these sorts of operations without supporting the behavior at runtime. The body of the macro mimicking the "higher-order function" will be inlined at each call site. And the call site can provide a "lambda" that will be substituted as the macro is expanded. For example: + +```move +let v2 = v.map!(|x| x + 1); +``` + +Or + +```move +v.for_each!(|x| foo(x)); +``` + +The "lambdas" additionally will support control flow through break and return. + +### Enums + +Enumerations allow you to define a single type that may hold multiple different shapes of data. Unlike structs, which always have the same fields, enums can have different fields depending on the variant of the enum. For example, in `enum Option { None, Some(T) }`, the variant None has no fields, and the variant Some has a single field of type `T`. +Move allows destructuring enums using match expressions. Some examples of enums in Move are the following: + +```move +public enum Color { + RGB { red: u8, green: u8, blue: u8 }, + HSL { hue: u16, saturation: u8, lightness: u8 }, + Hex(u32) +} + +public enum Option { + None, + Some(T), +} + +public fun is_rgb_color(color: &Color): bool { + match (color) { + Color::RGB { red: _, green: _, blue: _ } => true, + _ => false, + } +} + +const EOptionIsNone: u64 = 0; +public fun unwrap_some(option: Option): T { + match (option) { + Option::Some(x) => x, + Option::None => abort EOptionIsNone, + } +} +``` + +Move will add support for basic high-level enums that have similar visibility rules to structs in Move today; the enumeration type is publicly visible, just like struct types, but the variants of the enumeration are not public, much like fields. However, we plan to add public variants in the future. Similarly, enumerations cannot be recursive at release, but we plan to support this in the future. + +### public(package) + +`friend` declarations, and the associated `public(friend)` visibility modifiers, are deprecated. In their place is the `public(package)` visibility modifier, which allows calling functions only within the same package where they are defined. + +### Positional Fields + +You can now define `struct`s with positional fields, which are accessed by zero-based index. For example, + +```move +public struct Pair(u64, u64) has copy, drop, store; +``` + +then to access each field, + +```move +public fun sum(p: &Pair): u64 { + p.0 + p.1 +} +``` + +And as this example shows, you can now declare abilities after the struct field list. + +### Postfix `has` Ability Declarations + +With positional fields, it is a bit awkward to read `has` declarations in the middle of a declaration. As an alternative, `has` can now be written after the fields. For example, both will be valid: + +```move +struct Wrapper1 has copy, drop, store (u64) +``` + +```move +struct Wrapper2(u64) has copy, drop, store; +``` + +### Nested `use` and Standard Library Defaults + +You can now nest `use` aliases for more conciseness. + +```move +use iota::{balance, coin::{Self, Coin}}; +``` + +Additionally, the following `use` declarations are now automatically included in every module: + +```move +use std::vector; +use std::option::{Self, Option}; +use iota::object::{Self, ID, UID}; +use iota::transfer; +use iota::tx_context::{Self, TxContext}; +``` + +### Automatic Referencing in Equality + +Equality operations, `==` and `!=`, now automatically borrow if one side is a reference and the other is not. For example, + +```move +fun check(x: u64, r: &u64): bool { + x == r +} +``` + +is equivalent to + +```move +fun check(x: u64, r: &u64): bool { + &x == r +} +``` + +This automatic borrowing can occur on either side of `==` and `!=`. + +### Loop Labels + +When nesting loops, it can be convenient to break to the outer loop. For example, + +```move +let mut i = 0; +let mut j = 0; +let mut terminate_loop = false; +while (i < 10) { + while (j < 10) { + if (haystack(i, j) == needle) { + terminate_loop = true; + break; + }; + j = j + 1; + }; + if (terminate_loop) break; + i = i + 1; +} +``` + +Now, you can directly name the outer loop (`outer` in this case) and break it all at once: + +```move +let mut i = 0; +let mut j = 0; +'outer: while (i < 10) { + while (j < 10) { + if (haystack(i, j) == needle) break'outer; + j = j + 1; + }; + i = i + 1; +} +``` +### Type Inference Holes `_` On Type Annotations + +With type directed programming, often you need to annotate a variable declaration or provide type arguments. But, sometimes you really only need to annotate on specific type, but the other types can be inferred. `_` will be added to allow that type to still be inferred, even when other parts of the type are annotated. For example + +```move +dynamic_field::borrow_mut>(&mut id, owner) +``` + +could be rewritten as + +```move +dynamic_field::borrow_mut<_, Coin>(&mut id, owner) +``` + +where the `_` would be inferred as `address` + + +### `break` With Value + +It's now possible to `break` with a value from a `loop`. For example, + +```move +let mut i = 0; +let x: u64 = loop { + if (v[i] > 10) break i; + i = i + 1; +}; +``` + +You can achieve this with labels, as well. For example, + +```move +let mut i = 0; +let mut j = 0; +let item = 'outer: loop { + while (j < 10) { + let item = haystack(i, j); + if (item == needle) break'outer option::some(item); + j = j + 1; + }; + i = i + 1; + if (i == 10) break option::none(); +}; +``` + +### Named Blocks With Enhanced Control Flow Operations + +Move 2024 supports naming `loop`, `while`, and normal blocks, allowing for more-complex control +flow. + +Previous code with nested `while` loops (such as this simplified excerpt from deepbook) would need to +set a flag to break both loops: + +```move +let mut terminate_loop = false; + +while (...loop_condition...) { + while (...inner_condition...) { + ... + if (...break_condition...) { + terminate_loop = true; + } + ... + if (terminate_loop) { + break; + } + } + if (terminate_loop) { + break; + } +} +``` + +Now, you can directly name the outer loop and break it all at once: + +```move +let mut terminate_loop = false; + +while (...loop_condition...) 'outer: { + while (...inner_condition...) { + ... + if (...break_condition...) { + terminate_loop = true; + } + ... + if (terminate_loop) { + break 'outer; + } + } +} +``` + +This will immediately break to the outer loop, allowing more precise control flow when you'd like +to escape from loops. + +This feature also works with normal loop forms, including breaks with values: + +```move +let y = loop 'outer: { + let _x = loop 'inner: { + if (true) { + break 'outer 10; + } else { + break 'inner 20 + } + }; +}; +``` + +In this toy example, `y` will take on the value `10` because the first `break` will break the +'outer` loop with that value. + +Finally, this feature can be applied to normal blocks in Move, but instead utilizes the `return` +keyword. This can be useful when sequencing a block of code that may need early returns with values. + +```move +public fun auth_user(auth_one: EasyAuth, auth_two: AuthTwo): u64 { + let auth_token = 'auth: { + let maybe_auth_token = try_auth(auth_one); + if (valid_auth(maybe_auth_token)) { + return 'auth unpack_auth(maybe_auth_token); + } + // ... more complicated code involving auth_two + }; + // ... code using the auth_token +} +``` + +While we do not expect programmers to use named blocks with return in everyday cases, we anticipate +that they will ease the development and usage of macros significantly. + + +## Breaking Changes + +### Datatype Visibility Requirements + +Currently, all structs in Move are, by convention, public: any other module or package can import them and refer to them by type. To make this clearer, Move 2024 requires that all structs be declared with the `public` keyword. For example: + +```move +// legacy code +struct S { x: u64 } + +// Move 2024 code +public struct S { x: u64 } +``` + +Any non-public struct produces an error at this time, though the Move team is working on new visibility options for future releases. + +### Mutability Requirements + +Previously, all variables in Move were implicitly mutable. For example: + +```move +fun f(s: S, y: u64): u64 { + let a = 0; + let S { x } = s; + a = 1; + x = 10; + y = 5; + x + y +} +``` + +Now, you must declare mutable variables explicitly: + +```move +fun f(s: S, mut y: u64): u64 { + let mut a = 0; + let S { mut x } = 5; + a = 1; + x = 10; + y = 5; + x + y +} +``` + +The compiler now produces an error if you attempt to reassign or borrow a variable mutably without this explicit declaration. + +### Removing Friends and `public(friend)` + +Friends and the `public(friend)` visibilities were introduced early in Move's development, predating even the package system. As indicated in the [public(package)](#publicpackage) section, `public(package)` deprecates `public(friend)` in Move 2024. + +The following declaration now produces an error: + +```move +module pkg::m { + friend pkg::a; + public(friend) fun f() { ... } +} + +module pkg::a { + fun calls_f() { ... pkg::m::f() ... } +} +``` + +Instead, if you want your function to be visible only in the package, write: + +```move +module pkg::m { + public(package) fun f() { ... } +} + +module pkg::a { + // this now works directly + fun calls_f() { ... pkg::m::f() ... } +} +``` + +### New Keywords + +Looking toward the future, Move 2024 Beta adds the following keywords to the language: `enum`, `for`, `match`, `mut`, and `type`. Unfortunately, the compiler now produces parsing errors when it finds these in other positions. This is a necessary change as the language matures. + +### Revised Paths and Namespaces + +Move 2024 revises how paths and namespaces work compared to legacy Move, toward easing `enum` aliasing in the future. Consider the following snippet from a test annotation in the `iota_system` library: + +```move +use iota_system::iota_system; +... +#[expected_failure(abort_code = iota_system::validator_set::EInvalidCap)] +``` + +Legacy Move would always treat a three-part name as an address(`iota_system`), module(`validator_set`), and module member (`EInvalidCap`). Move 2024 respects scope for `use`, so `iota_system` in the attribute resolves to the module, producing a name resolution error overall. + +To avoid cases where this is the intended behavior, Move 2024 introduces a prefix operation for global qualification. To use, you can rewrite this annotation as: + +```move +use iota_system::iota_system; +... +#[expected_failure(abort_code = ::iota_system::validator_set::EInvalidCap)] + // ^ note `::` here +``` + + +## Move 2024 Editions + +The beta release of Move 2024 comes with some powerful new features in addition to the breaking changes described here. There are also more on the horizon, such as syntactic macros, enums with pattern matching, and other user-defined syntax extensions. + +#### `beta` Edition +- `beta` (specified via `edition = "2024.beta"`) is the recommended edition. It includes all the new + features mentioned above and all breaking changes. While there is the risk of breaking changes or + bugs in `beta`, you should feel comfortable using it in your projects. As new features are added + and tested, they will be included in the `beta` edition. The `beta` edition will end after _all_ + features for the year have been added and finalized. + + #### `alpha` Edition +- `alpha` (specified via `edition = "2024.alpha"`) will get new features and changes as they are + developed. Breaking changes to features in `alpha` should be expected. As such, take caution when + using`alpha` in your projects. diff --git a/docs/content/sidebars/developer.js b/docs/content/sidebars/developer.js index 9d714144131..1ce2575c18b 100644 --- a/docs/content/sidebars/developer.js +++ b/docs/content/sidebars/developer.js @@ -312,6 +312,7 @@ const developer = [ id: 'developer/advanced', }, items: [ + 'developer/advanced/introducing-move-2024', 'developer/advanced/iota-repository', 'developer/advanced/custom-indexer', 'developer/advanced/onchain-randomness', From 4265d9217d53ac3135b79d7e48b97ddfa2d0b0f5 Mon Sep 17 00:00:00 2001 From: Konstantinos Demartinos Date: Thu, 14 Nov 2024 09:25:22 +0200 Subject: [PATCH 09/10] fix(iota-indexer): add fallback query to get total packages metric (#4043) --- crates/iota-indexer/src/indexer_reader.rs | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/crates/iota-indexer/src/indexer_reader.rs b/crates/iota-indexer/src/indexer_reader.rs index 94fa737b6d6..3915588184f 100644 --- a/crates/iota-indexer/src/indexer_reader.rs +++ b/crates/iota-indexer/src/indexer_reader.rs @@ -63,7 +63,7 @@ use crate::{ }, schema::{ address_metrics, checkpoints, display, epochs, events, move_call_metrics, objects, - objects_snapshot, transactions, + objects_snapshot, packages, transactions, }, store::{diesel_macro::*, package_resolver::IndexerStorePackageResolver}, types::{IndexerResult, OwnerType}, @@ -1509,10 +1509,17 @@ impl IndexerReader { } pub fn get_latest_network_metrics(&self) -> IndexerResult { - let metrics = run_query!(&self.pool, |conn| { + let mut metrics = run_query!(&self.pool, |conn| { diesel::sql_query("SELECT * FROM network_metrics;") .get_result::(conn) })?; + if metrics.total_packages == -1 { + // this implies that the estimate is not available in the db + // so we fallback to the more expensive count query + metrics.total_packages = run_query!(&self.pool, |conn| { + packages::dsl::packages.count().get_result::(conn) + })?; + } Ok(metrics.into()) } From ac01bde0a7384dc98ec96f6809c8e964431e0abc Mon Sep 17 00:00:00 2001 From: Sergiu Popescu <44298302+sergiupopescu199@users.noreply.github.com> Date: Thu, 14 Nov 2024 09:06:43 +0100 Subject: [PATCH 10/10] docs(iota-indexer): update ERD diagram and README (#4028) * docs(iota-indexer): update ERD diagram and README * fixup! docs(iota-indexer): update ERD diagram and README --- crates/iota-indexer/database_schema.svg | 2 +- crates/iota-indexer/schema.md | 167 ++++++++++++++++++------ 2 files changed, 128 insertions(+), 41 deletions(-) diff --git a/crates/iota-indexer/database_schema.svg b/crates/iota-indexer/database_schema.svg index 86997161b05..4b785446071 100644 --- a/crates/iota-indexer/database_schema.svg +++ b/crates/iota-indexer/database_schema.svg @@ -1,4 +1,4 @@ -
display
PK
object_type text NN
bcs      bytea NN
id      bytea NN
version         int2 NN
objects
PK
object_id  bytea NN
checkpoint_sequence_number ref(checkpoints)    int8 NN
coin_balance                    int8
coint_type             text
df_kind            int2
df_name             bytea
df_object_id             bytea
df_object_type                  text
object_digest                 bytea NN
object_type            text
object_version                 in8 NN
owner_id             bytea
owner_type              int2 NN
serialized_object            bytea NN
objects_snapshot
PK
object_id  ref(objects_history) bytea NN
checkpoint_sequence_number   int8 NN
coin_balance                          int8
coint_type          text
df_kind              int2
df_name           bytea
df_object_id           bytea
df_object_type              text
object_digest                       bytea
object_status             int2 NN
object_type       text
object_version                     in8 NN
owner_id               bytea
owner_type                      int2
serialized_object                          bytea
objects_history
PK
checkpoint_sequence_number ref(checkpoints) int8 NN
PK
object_id  ref(objects) bytea NN
PK
object_version  int8 NN
coin_balance                                               int8
coint_type            text
df_kind           int2
df_name   bytea
df_object_id   bytea
df_object_type      text
object_digest                bytea
object_status           int2 NN
object_type      text
owner_id    bytea
owner_type                   int2
serialized_object                 bytea
epochs
PK
epoch  int8 NN
burn_leftover_amount             int8
burn_tokens_amount              int8
epoch_commitments      bytea
epoch_end_timestamp             int8
epoch_start_timestamp int8 NN
epoch_total_transactions             int8
first_checkpoint_id ref(checkpoints) int8 NN
last_checkpoint_id ref(checkpoints)            int8
minted_tokens_amount             int8
protocol_version                 int8 NN
reference_gas_price int8 NN
stake_subsidy_amount             int8
storage_charge             int8
storage_fund_balance int8 NN
storage_rebate             int8
system_state          bytea NN
total_gas_fees             int8
total_stake int8 NN
total_stake_reward_distributed            int8
checkpoints
PK
sequence_number  int8 NN
checkpoint_digest           bytea NN
epoch      int8 NN
network_total_transactions     int8 NN
previous_checkpoint_digest    bytea
end_of_epoch        bool NN
end_of_epoch_data    bytea
tx_digests    bytea[] NN
timestamp_ms                        int8 NN
total_gas_cost                        int8 NN
computation_cost                   int8 NN
storage_cost                           int8 NN
storage_rebate                       int8 NN
non_refundable_storage_fee int8 NN
checkpoint_commitments    bytea NN
validator_signature              bytea NN
end_of_epoch_data                   bytea
transactions
PK
checkpoint_sequence_number     ref(checkpoints) int8 NN
PK
tx_sequence_number int8 NN
balance_changes                         bytea[] NN
events                                           bytea[] NN
object_changes                                 bytea[] NN
raw_effects                                             bytea NN
raw_transaction                                   bytea NN
success_command_count                    int2 NN
timestamp_ms    ref(checkpoints)                                   int8 NN
transaction_digest    ref(checkpoints)                          bytea NN
transaction_kind                                    int2 NN
events
PK
event_ sequence_number int8 NN
PK
tx_sequence_number    ref(transactions) int8 NN
bcs                        bytea NN
checkpoint_sequence_number    ref(checkpoints) int8 NN
event_type         text NN
module text NN
package            bytea NN
senders                bytea[] NN
timestamp_ms    ref(checkpoints)                            int8 NN
transaction_digest    ref(transactions)                         bytea NN
tx_senders
PK
sender bytea NN
PK
tx_sequence_number    ref(transactions).    int8 NN
tx_recipients
PK
recipient bytea NN
PK
tx_sequence_number    ref(transactions).   int8 NN
tx_calls
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions)   int8 NN
bcs        bytea NN
id      bytea NN
version             int2 NN
tx_input_objects
PK
object_id bytea NN
PK
tx_sequence_number     ref(transactions)    int8 NN
tx_changed_objects
PK
object_id bytea NN
PK
tx_sequence_number     ref(transactions)  int8 NN
packages
PK
package_id bytea NN
move_package bytea NN
__diesel_schema_migrations
PK
version varchar(50) NN
run_on                       timestamp NN
Legend
Database schema
ref(< table-name >)    Possible Foreign Key link
tx_count_metrics
PK
checkpoint_sequence_number  ref(checkpoints) int8 NN
epoch ref(epochs) int8 NN
timestamp_ms       int8 NN
total_transaction_blocks       int8 NN
total_successful_transaction_blocks                    int8 NN
total_successful_transactions       int8 NN
move_calls
PK
transactions_sequence_number ref(transactions) int8 NN
PK
move_package     bytea NN
PK
move_module text NN
PK
move_function text NN
checkpoint_sequence_number ref(checkpoints) int8 NN
epoch ref(epochs) int8 NN
move_call_metrics
PK
id  bigserial NN
count  int8 NN
day   int8 NN
epoch ref(epochs)   int8 NN
move_function text NN
move_module text NN
move_package text NN
addresses
PK
address bytea NN
first_appearance_time   int8 NN
first_appearance_tx    int8 NN
last_appearance_time    int8 NN
last_appearance_tx int8 NN
active_addresses
PK
address bytea NN
first_appearance_time   int8 NN
first_appearance_tx    int8 NN
last_appearance_time    int8 NN
last_appearance_tx int8 NN
address_metrics
PK
checkpoint ref(checkpoints) int8 NN
cumulative_active_addresses   int8 NN
cumulative_addresses     int8 NN
daily_active_addresses     int8 NN
epoch ref(epochs) int8 NN
timestamp_ms int8 NN
epoch_peak_tps
PK
epoch ref(epochs) int8 NN
peak_tps          float8 NN
peak_tps_30d              float8 NN
\ No newline at end of file +
display
PK
object_type text NN
bcs      bytea NN
id      bytea NN
version         int2 NN
objects
PK
object_id  bytea NN
checkpoint_sequence_number ref(checkpoints)    int8 NN
coin_balance                    int8
coint_type             text
df_kind            int2
df_name             bytea
df_object_id             bytea
df_object_type                  text
object_digest                 bytea NN
object_type            text
object_type_module            text
object_type_name            text
object_type_package                bytea
object_version                 in8 NN
owner_id             bytea
owner_type              int2 NN
serialized_object            bytea NN
objects_snapshot
PK
object_id  ref(objects_history) bytea NN
checkpoint_sequence_number ref(checkpoints)    int8 NN
coin_balance                          int8
coint_type          text
df_kind                int2
df_name                 bytea
df_object_id                 bytea
df_object_type               text
object_digest                             bytea
object_status                 int2 NN
object_type        text
object_type_module         text
object_type_name        text
object_type_package             bytea
object_version                         in8 NN
owner_id                     bytea
owner_type                       int2
serialized_object                                bytea
objects_history
PK
checkpoint_sequence_number ref(checkpoints) int8 NN
PK
object_id  ref(objects) bytea NN
PK
object_version  int8 NN
coin_balance                                               int8
coint_type            text
df_kind           int2
df_name   bytea
df_object_id   bytea
df_object_type      text
object_digest                bytea
object_status           int2 NN
object_type      text
object_type_module      text
object_type_name      text
object_type_package   bytea
owner_id    bytea
owner_type                   int2
serialized_object                 bytea
epochs
PK
epoch  int8 NN
burn_tokens_amount              int8
epoch_commitments      bytea
epoch_end_timestamp             int8
epoch_start_timestamp int8 NN
epoch_total_transactions             int8
first_checkpoint_id ref(checkpoints) int8 NN
last_checkpoint_id ref(checkpoints)            int8
minted_tokens_amount             int8
protocol_version                 int8 NN
reference_gas_price int8 NN
storage_charge             int8
storage_fund_balance int8 NN
storage_rebate             int8
system_state          bytea NN
total_gas_fees             int8
total_stake int8 NN
total_stake_reward_distributed            int8
checkpoints
PK
sequence_number  int8 NN
checkpoint_commitments     bytea NN
checkpoint_digest            bytea NN
computation_cost                    int8 NN
end_of_epoch         bool NN
end_of_epoch_data     bytea
epoch       int8 NN
max_tx_sequence_number            int8
min_tx_sequence_number         int8
network_total_transactions      int8 NN
non_refundable_storage_fee   int8 NN
previous_checkpoint_digest    bytea
storage_cost                           int8 NN
storage_rebate                       int8 NN
timestamp_ms                        int8 NN
total_gas_cost                        int8 NN
tx_digests    bytea[] NN
validator_signature              bytea NN
transactions
PK
tx_sequence_number int8 NN
balance_changes                         bytea[] NN
checkpoint_sequence_number     ref(checkpoints) int8 NN
events                                           bytea[] NN
object_changes                                 bytea[] NN
raw_effects                                             bytea NN
raw_transaction                                   bytea NN
success_command_count                    int2 NN
timestamp_ms    ref(checkpoints)                                   int8 NN
transaction_digest    ref(checkpoints)                          bytea NN
transaction_kind                                    int2 NN
events
PK
event_ sequence_number int8 NN
PK
tx_sequence_number    ref(transactions) int8 NN
bcs                        bytea NN
event_type         text NN
module text NN
package            bytea NN
senders                bytea[] NN
timestamp_ms    ref(checkpoints)                            int8 NN
transaction_digest    ref(transactions)                         bytea NN
tx_senders
PK
sender bytea NN
PK
tx_sequence_number    ref(transactions)    int8 NN
tx_recipients
PK
recipient bytea NN
PK
tx_sequence_number    ref(transactions)   int8 NN
sender    bytea NN
packages
PK
original_id bytea NN
PK
package_id bytea NN
PK
package_version int8 NN
checkpoint_sequence_number ref(checkpoints)    int8 NN
move_package bytea NN
__diesel_schema_migrations
PK
version varchar(50) NN
run_on                       timestamp NN
Legend
Database schema
ref(< table-name >)    Possible Foreign Key link
Database View
tx_count_metrics
PK
checkpoint_sequence_number  ref(checkpoints) int8 NN
epoch ref(epochs) int8 NN
timestamp_ms       int8 NN
total_successful_transaction_blocks                    int8 NN
total_successful_transactions       int8 NN
total_transaction_blocks       int8 NN
move_calls
PK
move_function text NN
PK
move_module text NN
PK
move_package     bytea NN
PK
transactions_sequence_number ref(transactions) int8 NN
checkpoint_sequence_number ref(checkpoints) int8 NN
epoch ref(epochs) int8 NN
move_call_metrics
PK
id  bigserial NN
count  int8 NN
day   int8 NN
epoch ref(epochs)   int8 NN
move_function text NN
move_module text NN
move_package text NN
addresses
PK
address bytea NN
first_appearance_time   int8 NN
first_appearance_tx    int8 NN
last_appearance_time    int8 NN
last_appearance_tx int8 NN
active_addresses
PK
address bytea NN
first_appearance_time   int8 NN
first_appearance_tx    int8 NN
last_appearance_time    int8 NN
last_appearance_tx int8 NN
address_metrics
PK
checkpoint ref(checkpoints) int8 NN
cumulative_active_addresses   int8 NN
cumulative_addresses     int8 NN
daily_active_addresses     int8 NN
epoch ref(epochs) int8 NN
timestamp_ms int8 NN
epoch_peak_tps
PK
epoch ref(epochs) int8 NN
peak_tps          float8 NN
peak_tps_30d              float8 NN
chain_identifier
PK
checkpoint_digest ref(checkpoints) bytea NN
real_time_tps
recent_tps float8
tx_digests
PK
tx_digest    bytea NN
tx_sequence_number  ref(transactions)  int8 NN
tx_kinds
PK
tx_kind int2 NN
PK
tx_sequence_number ref(transactions)  int8 NN
event_senders
PK
event_sequence_number ref(events) int8 NN
PK
sender      bytea NN
PK
tx_sequence_number ref(transactions)   int8 NN
feature_flags
PK
flag_name text NN
PK
protocol_version int8 NN
flag_value        bool NN
protocol_configs
PK
config_name text NN
PK
protocol_version int8 NN
config_value               text
objects_version
PK
object_id ref(objects) bytea NN
PK
object_version ref(objects) int8 NN
cp_sequence_number ref(checkpoints) int8 NN
pruner_cp_watermark
PK
checkpoint_sequence_number ref(checkpoints) int8 NN
PK
max_tx_sequence_number int8 NN
min_tx_sequence_number int8 NN
tx_changed_objects
PK
object_id    ref(objects)  bytea NN
PK
tx_sequence_number    ref(transactions)   int8 NN
sender         bytea NN
tx_input_objects
PK
object_id    ref(objects)  bytea NN
PK
tx_sequence_number    ref(transactions)   int8 NN
sender         bytea NN
event_emit_package
PK
event_sequence_number    ref(events) int8 NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
sender             bytea NN
event_struct_package
PK
event_sequence_number    ref(events) int8 NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
sender             bytea NN
event_emit_module
PK
event_sequence_number    ref(events) int8 NN
PK
module text NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
sender             bytea NN
network_metrics
current_checkpoint int8
current_epoch int8
current_tps     float8
total_addresses int8
total_objects int8
total_packages int8
tps_30_days     float8
event_struct_instantiation
PK
event_sequence_number    ref(events) int8 NN
PK
module text NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
PK
type_instantiation text NN
sender             bytea NN
event_struct_name
PK
event_sequence_number    ref(events) int8 NN
PK
module text NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
PK
type_name text NN
sender             bytea NN
tx_calls_fun
PK
func text NN
PK
module text NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
sender             bytea NN
tx_calls_mod
PK
module text NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
sender             bytea NN
tx_calls_pkg
PK
package    ref(packages)  bytea NN
PK
tx_sequence_number    ref(transactions)   int8 NN
sender         bytea NN
event_struct_module
PK
event_sequence_number    ref(events) int8 NN
PK
module text NN
PK
package    ref(packages)     bytea NN
PK
tx_sequence_number    ref(transactions) int8 NN
sender             bytea NN
\ No newline at end of file diff --git a/crates/iota-indexer/schema.md b/crates/iota-indexer/schema.md index 39b99baf6b2..675d030fb2b 100644 --- a/crates/iota-indexer/schema.md +++ b/crates/iota-indexer/schema.md @@ -11,7 +11,8 @@ The Indexer pulls checkpoint data from the full node and populates the tables sh > Migrations are generated by diesel cli, the basic schema can be found [schema.rs](src/schema.rs). > For more in depth understanding of the database tables, go to [migrations](migrations) folder, in the contained `SQL` the indexes, partitions & constraints are declared. > -> - Tables `objects_history` & `transactions` have partitions, each partition is created based on `checkpoint_sequence_number` (related form the `checkpoints` table) it goes from `0` to `MAXVALUE` +> - The table `objects_history` has partitions, each partition is created based on `checkpoint_sequence_number` (related from the `checkpoints` table) it goes from `0` to `MAXVALUE` +> - The table `transactions` has partitions, each partition is created based on `tx_sequence_number` (related from the `transactions` table) it goes from `0` to `MAXVALUE` > - `__diesel_schema_migrations` table is managed by `diesel` cli when applying migrations ## Indexes @@ -23,40 +24,83 @@ The Indexer pulls checkpoint data from the full node and populates the tables sh | checkpoints_epoch | epoch, sequence_number | | checkpoints_digest | checkpoint_digest | +### Table `event_emit_package` + +| Index name | Keys | +| ------------------------- | ---------------------------------------------------------- | +| event_emit_package_sender | sender, package, tx_sequence_number, event_sequence_number | + +### Table `event_emit_module` + +| Index name | Keys | +| ------------------------ | ------------------------------------------------------------------ | +| event_emit_module_sender | sender, package, module, tx_sequence_number, event_sequence_number | + +### Table `event_struct_package` + +| Index name | Keys | +| --------------------------- | ---------------------------------------------------------- | +| event_struct_package_sender | sender, package, tx_sequence_number, event_sequence_number | + +### Table `event_struct_module` + +| Index name | Keys | +| -------------------------- | ------------------------------------------------------------------ | +| event_struct_module_sender | sender, package, module, tx_sequence_number, event_sequence_number | + +### Table `event_struct_name` + +| Index name | Keys | +| ------------------------ | ----------------------------------------------------------------------------- | +| event_struct_name_sender | sender, package, module, type_name, tx_sequence_number, event_sequence_number | + +### Table `event_struct_instantiation` + +| Index name | Keys | +| --------------------------------- | -------------------------------------------------------------------------------------- | +| event_struct_instantiation_sender | sender, package, module, type_instantiation, tx_sequence_number, event_sequence_number | + ### Table `events` -| Index name | Keys | -| --------------------------------- | ----------------------------------------------------------------------- | -| events_package | package, tx_sequence_number, event_sequence_number | -| events_package_module | package, module, tx_sequence_number, event_sequence_number | -| events_event_type | event_type, text_pattern_ops, tx_sequence_number, event_sequence_number | -| events_checkpoint_sequence_number | checkpoint_sequence_number | +| Index name | Keys | +| --------------------- | ----------------------------------------------------------------------- | +| events_package | package, tx_sequence_number, event_sequence_number | +| events_package_module | package, module, tx_sequence_number, event_sequence_number | +| events_event_type | event_type, text_pattern_ops, tx_sequence_number, event_sequence_number | ### Table `objects` -| Index name | Keys | Condition | -| ---------------------------------- | -------------------------- | --------------------------------------------------------- | -| objects_owner | owner_type, owner_id | WHERE owner_type BETWEEN 1 AND 2 AND owner_id IS NOT NULL | -| objects_coin | owner_id, coin_type | WHERE coin_type IS NOT NULL AND owner_type = 1 | -| objects_checkpoint_sequence_number | checkpoint_sequence_number | | -| objects_type | object_type | | +| Index name | Keys | Condition | +| ------------------------------------------- | -------------------------------------------------------------------------------- | --------------------------------------------------------- | +| objects_owner | owner_type, owner_id | WHERE owner_type BETWEEN 1 AND 2 AND owner_id IS NOT NULL | +| objects_coin | owner_id, coin_type | WHERE coin_type IS NOT NULL AND owner_type = 1 | +| objects_checkpoint_sequence_number | checkpoint_sequence_number | | +| objects_package_module_name_full_type | object_type_package, object_type_module, object_type_name, object_type | | +| objects_owner_package_module_name_full_type | owner_id, object_type_package, object_type_module, object_type_name, object_type | | ### Table `objects_snapshot` -| Index name | Keys | Condition | -| ------------------------------------------- | ------------------------------- | --------------------------------------------------------- | -| objects_snapshot_checkpoint_sequence_number | checkpoint_sequence_number | | -| objects_snapshot_coin | owner_id, coin_type, object_id | WHERE coin_type IS NOT NULL AND owner_type = 1 | -| objects_snapshot_type | object_type, object_id | | -| objects_snapshot_owner | owner_type, owner_id, object_id | WHERE owner_type BETWEEN 1 AND 2 AND owner_id IS NOT NULL | +| Index name | Keys | Condition | +| ---------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------- | +| objects_snapshot_checkpoint_sequence_number | checkpoint_sequence_number | | +| objects_snapshot_owner | owner_type, owner_id, object_id | WHERE owner_type BETWEEN 1 AND 2 AND owner_id IS NOT NULL | +| objects_snapshot_coin_owner | owner_id, coin_type, object_id | WHERE coin_type IS NOT NULL AND owner_type = 1 | +| objects_snapshot_coin_only | coin_type, object_id | WHERE coin_type IS NOT NULL | +| objects_snapshot_type_id | object_type_package, object_type_module, object_type_name, object_type, object_id | | +| objects_snapshot_id_type | object_id, object_type_package, object_type_module, object_type_name, object_type | | +| objects_snapshot_owner_package_module_name_full_type | owner_id, object_type_package, object_type_module, object_type_name, object_type | | ### Table `objects_history` -| Index name | Keys | Condition | -| --------------------- | ------------------------------------------------ | --------------------------------------------------------- | -| objects_history_owner | checkpoint_sequence_number, owner_type, owner_id | WHERE owner_type BETWEEN 1 AND 2 AND owner_id IS NOT NULL | -| objects_history_coin | checkpoint_sequence_number, owner_id, coin_type | WHERE coin_type IS NOT NULL AND owner_type = 1 | -| objects_history_type | checkpoint_sequence_number, object_type | | +| Index name | Keys | Condition | +| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------- | +| objects_history_id_version | object_id, object_version, checkpoint_sequence_number | | +| objects_history_owner | checkpoint_sequence_number, owner_type, owner_id | WHERE owner_type BETWEEN 1 AND 2 AND owner_id IS NOT NULL | +| objects_history_coin_owner | checkpoint_sequence_number, owner_id, coin_type, object_id | WHERE coin_type IS NOT NULL AND owner_type = 1 | +| objects_history_coin_only | checkpoint_sequence_number, coin_type, object_id | WHERE coin_type IS NOT NULL | +| objects_history_type | checkpoint_sequence_number, object_type | | +| objects_history_package_module_name_full_type | checkpoint_sequence_number, object_type_package, object_type_module, object_type_name, object_type | | +| objects_history_owner_package_module_name_full_type | checkpoint_sequence_number, owner_id, object_type_package, object_type_module, object_type_name, object_type | | ### Table `transactions` @@ -66,25 +110,18 @@ The Indexer pulls checkpoint data from the full node and populates the tables sh | transactions_checkpoint_sequence_number | checkpoint_sequence_number | | | transactions_transaction_kind | transaction_kind | WHERE transaction_kind = 1 | -### Table `tx_calls` +### Table `tx_input_objects` -| Index name | Keys | -| --------------------------- | ----------------------------------------- | -| tx_calls_module | package, module, tx_sequence_number | -| tx_calls_func | package, module, func, tx_sequence_number | -| tx_calls_tx_sequence_number | tx_sequence_number | - -### Table `tx_senders` - -| Index name | Keys | Condition | -| ----------------------------------- | ------------------ | --------- | -| tx_senders_tx_sequence_number_index | tx_sequence_number | ASC | +| Index name | Keys | Condition | +| ----------------------------------------- | ------------------------------------- | --------- | +| tx_input_objects_tx_sequence_number_index | tx_sequence_number | | +| tx_input_objects_sender | sender, object_id, tx_sequence_number | | ### Tables `tx_recipients` -| Index name | Keys | Condition | -| -------------------------------------- | ------------------ | --------- | -| tx_recipients_tx_sequence_number_index | tx_sequence_number | ASC | +| Index name | Keys | Condition | +| -------------------- | ------------------------------------- | --------- | +| tx_recipients_sender | sender, recipient, tx_sequence_number | | ### Table `tx_count_metrics` @@ -93,6 +130,37 @@ The Indexer pulls checkpoint data from the full node and populates the tables sh | tx_count_metrics_epoch | epoch | | tx_count_metrics_timestamp_ms | timestamp_ms | +### Table `tx_changed_objects` + +| Index name | Keys | +| ------------------------------------------- | ------------------------------------- | +| tx_changed_objects_tx_sequence_number_index | tx_sequence_number | +| tx_changed_objects_sender | sender, object_id, tx_sequence_number | + +### Table `tx_calls_pkg` + +| Index name | Keys | +| ------------------- | ----------------------------------- | +| tx_calls_pkg_sender | sender, package, tx_sequence_number | + +### Table `tx_calls_mod` + +| Index name | Keys | +| ------------------- | ------------------------------------------- | +| tx_calls_mod_sender | sender, package, module, tx_sequence_number | + +### Table `tx_calls_fun` + +| Index name | Keys | +| ------------------- | ------------------------------------------------- | +| tx_calls_fun_sender | sender, package, module, func, tx_sequence_number | + +### Table `tx_digests` + +| Index name | Keys | +| ----------------------------- | ------------------ | +| tx_digests_tx_sequence_number | tx_sequence_number | + ### Table `move_calls` | Index name | Keys | @@ -111,10 +179,29 @@ The Indexer pulls checkpoint data from the full node and populates the tables sh | ------------------------- | ----- | | address_metrics_epoch_idx | epoch | +### Table `packages` + +| Index name | Keys | +| ---------------------- | -------------------------------------------------------- | +| packages_cp_id_version | checkpoint_sequence_number, original_id, package_version | +| packages_id_version_cp | original_id, package_version, checkpoint_sequence_number | + ## Partitions -### Tables `transactions`, `objects_history` +### Table `objects_history` | Keys | Condition | | -------------------------- | --------------------------------- | | checkpoint_sequence_number | FOR VALUES FROM (0) TO (MAXVALUE) | + +### Table `objects_version` + +| Keys | Condition | +| --------- | ------------------------------------------------------------- | +| object_id | custom function, create a partition for each first byte value | + +### Tables `transactions` & `events` + +| Keys | Condition | +| ------------------ | --------------------------------- | +| tx_sequence_number | FOR VALUES FROM (0) TO (MAXVALUE) |