diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml index 99cf2031f1986..3badfd14bb702 100644 --- a/.github/workflows/lint-test.yaml +++ b/.github/workflows/lint-test.yaml @@ -45,7 +45,7 @@ jobs: - uses: taiki-e/install-action@v1.5.6 with: tool: nextest - - run: cargo nextest run --profile ci --workspace --exclude smoke-test --exclude backup-cli --exclude testcases --retries 3 --no-fail-fast + - run: cargo nextest run --profile ci --workspace --exclude smoke-test --exclude backup-cli --exclude testcases --exclude forge --retries 3 --no-fail-fast rust-smoke-test: runs-on: furuensu diff --git a/CODEOWNERS b/CODEOWNERS index 78a70f6d72323..e69147d43f081 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -20,6 +20,9 @@ /aptos-move/parallel-executor/ @gelash @zekun000 /aptos-move/vm-genesis/ @davidiw @movekevin +# Owner for logger config +/config/src/config/logger_config.rs @markuze + # Owners for the `/consensus` directory and all its subdirectories. /consensus/ @zekun000 @@ -48,6 +51,10 @@ /crates/aptos-rosetta @gregnazario /crates/aptos-rosetta-cli @gregnazario +# Owners for the `telemetry` related crates. +/crates/aptos-telemetry @ibalajiarun @geekflyer +/crates/aptos-telemetry-service @ibalajiarun @geekflyer + # Owners for the `/dashboards` directory and all its subdirectories. /dashboards/ @aptos-labs/prod-eng diff --git a/Cargo.lock b/Cargo.lock index c40eef75cf58f..365e1418c06d0 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -139,7 +139,7 @@ dependencies = [ [[package]] name = "aptos" -version = "0.3.4" +version = "0.3.6" dependencies = [ "anyhow", "aptos-bitvec", @@ -150,6 +150,7 @@ dependencies = [ "aptos-gas", "aptos-genesis", "aptos-github-client", + "aptos-global-constants", "aptos-keygen", "aptos-logger", "aptos-module-verifier", @@ -188,6 +189,7 @@ dependencies = [ "tokio", "tokio-util 0.7.3", "toml", + "vm-genesis", "walkdir", ] @@ -216,6 +218,7 @@ dependencies = [ "aptos-api-types", "aptos-config", "aptos-crypto", + "aptos-gas", "aptos-logger", "aptos-mempool", "aptos-metrics-core", @@ -452,6 +455,7 @@ dependencies = [ "anyhow", "aptos-config", "aptos-crypto", + "aptos-global-constants", "aptos-infallible", "aptos-keygen", "aptos-logger", @@ -496,46 +500,29 @@ version = "0.1.0" dependencies = [ "anyhow", "aptos-api", - "aptos-api-test-context", "aptos-api-types", "aptos-bitvec", "aptos-config", - "aptos-crypto", - "aptos-genesis", - "aptos-global-constants", "aptos-logger", "aptos-mempool", "aptos-metrics-core", - "aptos-proptest-helpers", "aptos-protos", - "aptos-sdk", - "aptos-secure-storage", - "aptos-temppath", "aptos-types", "aptos-vm", - "aptosdb", "base64 0.13.0", "bytes 1.2.1", "chrono", - "executor", - "executor-types", "fail 0.5.0", - "framework", "futures", - "goldenfile", "hex", "hyper", - "mempool-notifications", "move-deps", "once_cell", "prost 0.10.4", - "rand 0.7.3", - "regex", "serde 1.0.144", "serde_json", "storage-interface", "tokio", - "vm-validator", ] [[package]] @@ -606,14 +593,21 @@ dependencies = [ name = "aptos-gas" version = "0.1.0" dependencies = [ + "anyhow", + "aptos-global-constants", "aptos-types", + "bcs", + "clap 3.2.17", "framework", "gas-algebra-ext", "move-binary-format", "move-core-types", + "move-model", "move-stdlib", "move-table-extension", "move-vm-types", + "package-builder", + "tempfile", ] [[package]] @@ -684,12 +678,14 @@ dependencies = [ "diesel_migrations", "field_count", "futures", + "hex", "once_cell", "reqwest", "reqwest-middleware", "reqwest-retry", "serde 1.0.144", "serde_json", + "sha2 0.9.9", "storage-interface", "tokio", "url", @@ -763,6 +759,7 @@ dependencies = [ "serde_json", "strum", "strum_macros", + "tokio", "tracing", "tracing-subscriber", ] @@ -1033,10 +1030,12 @@ dependencies = [ "anyhow", "aptos-api-types", "aptos-crypto", + "aptos-infallible", "aptos-logger", "aptos-types", "bcs", "bytes 1.2.1", + "futures", "hex", "move-deps", "poem-openapi", @@ -1071,6 +1070,7 @@ dependencies = [ "anyhow", "aptos-config", "aptos-crypto", + "aptos-global-constants", "aptos-logger", "aptos-node", "aptos-rest-client", @@ -1089,6 +1089,7 @@ dependencies = [ "reqwest", "serde 1.0.144", "serde_json", + "serde_yaml 0.8.26", "tokio", "url", "warp", @@ -1116,6 +1117,7 @@ version = "0.0.3" dependencies = [ "anyhow", "aptos-crypto", + "aptos-global-constants", "aptos-rest-client", "aptos-types", "bcs", @@ -1187,45 +1189,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "aptos-sf-indexer" -version = "0.0.1" -dependencies = [ - "anyhow", - "aptos-crypto", - "aptos-logger", - "aptos-metrics-core", - "aptos-protos", - "aptos-rest-client", - "aptos-types", - "async-stream", - "async-trait", - "bigdecimal", - "bytes 1.2.1", - "chrono", - "clap 3.2.17", - "diesel", - "diesel_migrations", - "field_count", - "futures", - "http", - "hyper", - "inspection-service", - "once_cell", - "pbjson", - "prost 0.10.4", - "prost-types 0.10.1", - "reqwest", - "reqwest-middleware", - "reqwest-retry", - "serde 1.0.144", - "serde_json", - "tokio", - "tokio-retry", - "tonic 0.7.2", - "url", -] - [[package]] name = "aptos-state-view" version = "0.1.0" @@ -1270,9 +1233,11 @@ dependencies = [ "serde_json", "state-sync-driver", "sysinfo", + "thiserror", "tokio", "tokio-retry", "tokio-stream", + "url", "uuid", ] @@ -1288,13 +1253,16 @@ dependencies = [ "aptos-logger", "aptos-rest-client", "aptos-types", + "base64 0.13.0", "bcs", "chrono", "clap 3.2.17", "flate2", "gcp-bigquery-client", "hex", + "httpmock", "jsonwebtoken", + "prometheus", "rand 0.7.3", "rand_core 0.5.1", "reqwest", @@ -1304,6 +1272,7 @@ dependencies = [ "serde_yaml 0.8.26", "thiserror", "tokio", + "tracing", "url", "warp", ] @@ -1695,7 +1664,7 @@ version = "1.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ab006897723d9352f63e2b13047177c3982d8d79709d713ce7747a8f19fd1b0" dependencies = [ - "autocfg", + "autocfg 1.1.0", "concurrent-queue", "futures-lite", "libc", @@ -1734,7 +1703,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02111fd8655a613c25069ea89fc8d9bb89331fa77486eb3bc059ee757cfa481c" dependencies = [ "async-io", - "autocfg", + "autocfg 1.1.0", "blocking", "cfg-if", "event-listener", @@ -1827,6 +1796,15 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "autocfg" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78" +dependencies = [ + "autocfg 1.1.0", +] + [[package]] name = "autocfg" version = "1.1.0" @@ -1864,9 +1842,9 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.2.7" +version = "0.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4f44a0e6200e9d11a1cdc989e4b358f6e3d354fbf48478f345a17f4e43f8635" +checksum = "d9f0c0a60006f2a293d82d571f635042a72edf927539b7685bd62d361963839b" dependencies = [ "async-trait", "bytes 1.2.1", @@ -1874,6 +1852,8 @@ dependencies = [ "http", "http-body", "mime", + "tower-layer", + "tower-service", ] [[package]] @@ -2018,7 +1998,7 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1374191e2dd25f9ae02e3aa95041ed5d747fc77b3c102b49fe2dd9a8117a6244" dependencies = [ - "num-bigint 0.2.6", + "num-bigint 0.2.3", "num-integer", "num-traits 0.2.15", "serde 1.0.144", @@ -2196,7 +2176,7 @@ checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytecode-interpreter-crypto" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "curve25519-dalek-fiat", @@ -2377,7 +2357,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6995bbe186456c36307f8ea36be3eefe42f49d106896414e18efc4fb2f846b5" dependencies = [ - "autocfg", + "autocfg 1.1.0", ] [[package]] @@ -2606,6 +2586,7 @@ dependencies = [ "itertools", "mirai-annotations", "proptest", + "rayon", "serde 1.0.144", "serde_json", "short-hex-str", @@ -2632,8 +2613,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e57ff02e8ad8e06ab9731d5dc72dc23bef9200778eae1a89d555d8c42e5d4a86" dependencies = [ "prost 0.11.0", - "prost-types 0.11.1", - "tonic 0.8.0", + "prost-types", + "tonic", "tracing-core", ] @@ -2649,13 +2630,13 @@ dependencies = [ "futures", "hdrhistogram", "humantime 2.1.0", - "prost-types 0.11.1", + "prost-types", "serde 1.0.144", "serde_json", "thread_local", "tokio", "tokio-stream", - "tonic 0.8.0", + "tonic", "tracing", "tracing-core", "tracing-subscriber", @@ -2864,7 +2845,7 @@ version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" dependencies = [ - "autocfg", + "autocfg 1.1.0", "cfg-if", "crossbeam-utils", "memoffset", @@ -3200,15 +3181,17 @@ checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" [[package]] name = "diesel" -version = "1.4.8" -source = "git+https://github.com/aptos-labs/diesel?branch=1.4.x#1346b2087fb11ba2feca1153a88a598a17da0d38" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01e2adfd0a7a81070ed7beec0c62636458926326c16fedb77796d41e447b282d" dependencies = [ "bigdecimal", "bitflags", "byteorder", "chrono", "diesel_derives", - "num-bigint 0.2.6", + "itoa 1.0.3", + "num-bigint 0.2.3", "num-integer", "num-traits 0.2.15", "pq-sys", @@ -3218,10 +3201,11 @@ dependencies = [ [[package]] name = "diesel_derives" -version = "1.4.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3" +checksum = "22a7ab9d7967e6a1a247ea38aedf88ab808b4ac0c159576bc71866ab8f9f9250" dependencies = [ + "proc-macro-error", "proc-macro2 1.0.43", "quote 1.0.21", "syn 1.0.99", @@ -3229,10 +3213,11 @@ dependencies = [ [[package]] name = "diesel_migrations" -version = "1.4.0" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c" +checksum = "e9ae22beef5e9d6fab9225ddb073c1c6c1a7a6ded5019d5da11d1e5c5adc34e2" dependencies = [ + "diesel", "migrations_internals", "migrations_macros", ] @@ -3363,6 +3348,7 @@ dependencies = [ "itertools", "language-e2e-tests", "move-deps", + "package-builder", "project-root", "proptest", "rand 0.7.3", @@ -3794,8 +3780,10 @@ version = "0.0.0" dependencies = [ "again", "anyhow", + "aptos", "aptos-config", "aptos-genesis", + "aptos-global-constants", "aptos-infallible", "aptos-logger", "aptos-rest-client", @@ -3814,6 +3802,7 @@ dependencies = [ "hyper-tls", "inspection-service", "itertools", + "json-patch", "k8s-openapi", "kube", "num_cpus", @@ -3841,6 +3830,7 @@ name = "forge-cli" version = "0.0.0" dependencies = [ "anyhow", + "aptos-global-constants", "aptos-logger", "aptos-rest-client", "aptos-sdk", @@ -4675,7 +4665,7 @@ version = "1.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" dependencies = [ - "autocfg", + "autocfg 1.1.0", "hashbrown", ] @@ -4847,6 +4837,17 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "json-patch" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f995a3c8f2bc3dd52a18a583e90f9ec109c047fa1603a853e46bcda14d2e279d" +dependencies = [ + "serde 1.0.144", + "serde_json", + "treediff", +] + [[package]] name = "jsonpath_lib" version = "0.2.6" @@ -4911,6 +4912,7 @@ dependencies = [ "hyper", "hyper-timeout", "hyper-tls", + "json-patch", "jsonpath_lib", "k8s-openapi", "log", @@ -5019,6 +5021,7 @@ dependencies = [ "move-deps", "proptest", "serde 1.0.144", + "vm-genesis", ] [[package]] @@ -5315,7 +5318,7 @@ version = "0.6.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" dependencies = [ - "autocfg", + "autocfg 1.1.0", ] [[package]] @@ -5344,23 +5347,23 @@ dependencies = [ [[package]] name = "migrations_internals" -version = "1.4.1" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b4fc84e4af020b837029e017966f86a1c2d5e83e64b589963d5047525995860" +checksum = "c493c09323068c01e54c685f7da41a9ccf9219735c3766fbfd6099806ea08fbc" dependencies = [ - "diesel", + "serde 1.0.144", + "toml", ] [[package]] name = "migrations_macros" -version = "1.4.2" +version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9753f12909fd8d923f75ae5c3258cae1ed3c8ec052e1b38c93c21a6d157f789c" +checksum = "8a8ff27a350511de30cdabb77147501c36ef02e0451d957abea2f30caffb2b58" dependencies = [ "migrations_internals", "proc-macro2 1.0.43", "quote 1.0.21", - "syn 1.0.99", ] [[package]] @@ -5470,7 +5473,7 @@ checksum = "5474f8732dc7e0635ae9df6595bcd39cd30e3cfe8479850d4fa3e69306c19712" [[package]] name = "move-abigen" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5487,7 +5490,7 @@ dependencies = [ [[package]] name = "move-binary-format" version = "0.0.3" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-core-types", @@ -5502,12 +5505,12 @@ dependencies = [ [[package]] name = "move-borrow-graph" version = "0.0.1" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" [[package]] name = "move-bytecode-source-map" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5522,7 +5525,7 @@ dependencies = [ [[package]] name = "move-bytecode-utils" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-binary-format", @@ -5534,7 +5537,7 @@ dependencies = [ [[package]] name = "move-bytecode-verifier" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-binary-format", @@ -5546,7 +5549,7 @@ dependencies = [ [[package]] name = "move-bytecode-viewer" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "clap 3.2.17", @@ -5563,7 +5566,7 @@ dependencies = [ [[package]] name = "move-cli" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5609,7 +5612,7 @@ dependencies = [ [[package]] name = "move-command-line-common" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "difference", @@ -5626,7 +5629,7 @@ dependencies = [ [[package]] name = "move-compiler" version = "0.0.1" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5655,7 +5658,7 @@ dependencies = [ [[package]] name = "move-core-types" version = "0.0.4" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5672,7 +5675,7 @@ dependencies = [ [[package]] name = "move-coverage" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5726,7 +5729,7 @@ dependencies = [ [[package]] name = "move-disassembler" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "clap 3.2.17", @@ -5744,7 +5747,7 @@ dependencies = [ [[package]] name = "move-docgen" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "codespan", @@ -5762,7 +5765,7 @@ dependencies = [ [[package]] name = "move-errmapgen" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5788,7 +5791,7 @@ dependencies = [ [[package]] name = "move-ir-compiler" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5807,7 +5810,7 @@ dependencies = [ [[package]] name = "move-ir-to-bytecode" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "codespan-reporting", @@ -5826,7 +5829,7 @@ dependencies = [ [[package]] name = "move-ir-to-bytecode-syntax" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "hex", @@ -5839,7 +5842,7 @@ dependencies = [ [[package]] name = "move-ir-types" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "hex", @@ -5853,7 +5856,7 @@ dependencies = [ [[package]] name = "move-model" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "codespan", @@ -5879,7 +5882,7 @@ dependencies = [ [[package]] name = "move-package" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -5915,7 +5918,7 @@ dependencies = [ [[package]] name = "move-prover" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "async-trait", @@ -5952,7 +5955,7 @@ dependencies = [ [[package]] name = "move-prover-boogie-backend" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "async-trait", @@ -5980,7 +5983,7 @@ dependencies = [ [[package]] name = "move-prover-test-utils" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-command-line-common", @@ -5991,7 +5994,7 @@ dependencies = [ [[package]] name = "move-read-write-set-types" version = "0.0.3" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-binary-format", @@ -6002,7 +6005,7 @@ dependencies = [ [[package]] name = "move-resource-viewer" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -6017,7 +6020,7 @@ dependencies = [ [[package]] name = "move-stackless-bytecode" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "codespan", "codespan-reporting", @@ -6044,7 +6047,7 @@ dependencies = [ [[package]] name = "move-stackless-bytecode-interpreter" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bytecode-interpreter-crypto", @@ -6062,7 +6065,7 @@ dependencies = [ [[package]] name = "move-stdlib" version = "0.1.1" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "log", @@ -6084,7 +6087,7 @@ dependencies = [ [[package]] name = "move-symbol-pool" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "once_cell", "serde 1.0.144", @@ -6093,7 +6096,7 @@ dependencies = [ [[package]] name = "move-table-extension" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "bcs", @@ -6110,7 +6113,7 @@ dependencies = [ [[package]] name = "move-transactional-test-runner" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "clap 3.2.17", @@ -6141,7 +6144,7 @@ dependencies = [ [[package]] name = "move-unit-test" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "better_any", @@ -6172,7 +6175,7 @@ dependencies = [ [[package]] name = "move-vm-runtime" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "better_any", "fail 0.4.0", @@ -6189,7 +6192,7 @@ dependencies = [ [[package]] name = "move-vm-test-utils" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-binary-format", @@ -6203,7 +6206,7 @@ dependencies = [ [[package]] name = "move-vm-types" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "bcs", "move-binary-format", @@ -6424,7 +6427,9 @@ dependencies = [ "aptos-infallible", "aptos-logger", "aptos-metrics-core", + "cfg-if", "once_cell", + "procfs", "prometheus", "sysinfo", ] @@ -6481,11 +6486,11 @@ dependencies = [ [[package]] name = "num-bigint" -version = "0.2.6" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +checksum = "f9c3f34cdd24f334cb265d9bf8bfa8a241920d026916785747a92f0e55541a1a" dependencies = [ - "autocfg", + "autocfg 0.1.8", "num-integer", "num-traits 0.2.15", ] @@ -6496,7 +6501,7 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-integer", "num-traits 0.2.15", ] @@ -6527,7 +6532,7 @@ version = "0.1.45" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-traits 0.2.15", ] @@ -6537,7 +6542,7 @@ version = "0.1.43" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-integer", "num-traits 0.2.15", ] @@ -6548,7 +6553,7 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" dependencies = [ - "autocfg", + "autocfg 1.1.0", "num-bigint 0.4.3", "num-integer", "num-traits 0.2.15", @@ -6569,7 +6574,7 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ - "autocfg", + "autocfg 1.1.0", ] [[package]] @@ -6671,7 +6676,7 @@ version = "0.9.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5f9bd0c2710541a3cda73d6f9ac4f1b240de4ae261065d309dbe73d9dceb42f" dependencies = [ - "autocfg", + "autocfg 1.1.0", "cc", "libc", "pkg-config", @@ -6725,6 +6730,18 @@ dependencies = [ "winapi 0.3.9", ] +[[package]] +name = "package-builder" +version = "0.1.0" +dependencies = [ + "anyhow", + "framework", + "itertools", + "move-command-line-common", + "move-package", + "tempfile", +] + [[package]] name = "parking" version = "2.0.0" @@ -7164,7 +7181,7 @@ version = "2.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899b00b9c8ab553c743b3e11e87c5c7d423b2a2de229ba95b24a756344748011" dependencies = [ - "autocfg", + "autocfg 1.1.0", "cfg-if", "libc", "log", @@ -7341,6 +7358,21 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "procfs" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dfb6451c91904606a1abe93e83a8ec851f45827fa84273f256ade45dc095818" +dependencies = [ + "bitflags", + "byteorder", + "chrono", + "flate2", + "hex", + "lazy_static 1.4.0", + "rustix", +] + [[package]] name = "project-root" version = "0.2.2" @@ -7463,16 +7495,6 @@ dependencies = [ "syn 1.0.99", ] -[[package]] -name = "prost-types" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d0a014229361011dc8e69c8a1ec6c2e8d0f2af7c91e3ea3f5b2170298461e68" -dependencies = [ - "bytes 1.2.1", - "prost 0.10.4", -] - [[package]] name = "prost-types" version = "0.11.1" @@ -7708,7 +7730,7 @@ version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" dependencies = [ - "autocfg", + "autocfg 1.1.0", "crossbeam-deque", "either", "rayon-core", @@ -7729,7 +7751,7 @@ dependencies = [ [[package]] name = "read-write-set" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-binary-format", @@ -7744,7 +7766,7 @@ dependencies = [ [[package]] name = "read-write-set-dynamic" version = "0.1.0" -source = "git+https://github.com/bobchainer/move?rev=c73b6b22#c73b6b228fbe4f3ffdc2f7411fa9a5712c2eaa0f" +source = "git+https://github.com/Mamoru-Foundation/move?branch=main#df00eacf475cc788cc51f53d4fd59eb5ef32d297" dependencies = [ "anyhow", "move-binary-format", @@ -8678,7 +8700,7 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" dependencies = [ - "autocfg", + "autocfg 1.1.0", ] [[package]] @@ -9187,6 +9209,7 @@ version = "0.0.0" dependencies = [ "anyhow", "aptos", + "aptos-global-constants", "aptos-logger", "aptos-rest-client", "aptos-sdk", @@ -9345,7 +9368,7 @@ version = "1.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "89797afd69d206ccd11fb0ea560a44bbb87731d020670e79416d442919257d42" dependencies = [ - "autocfg", + "autocfg 1.1.0", "bytes 1.2.1", "libc", "memchr", @@ -9512,42 +9535,6 @@ dependencies = [ "serde 1.0.144", ] -[[package]] -name = "tonic" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9d60db39854b30b835107500cf0aca0b0d14d6e1c3de124217c23a29c2ddb" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.13.0", - "bytes 1.2.1", - "flate2", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost 0.10.4", - "prost-derive 0.10.1", - "rustls-native-certs", - "rustls-pemfile 1.0.1", - "tokio", - "tokio-rustls 0.23.4", - "tokio-stream", - "tokio-util 0.7.3", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - [[package]] name = "tonic" version = "0.8.0" @@ -9709,6 +9696,7 @@ name = "transaction-emitter" version = "0.0.0" dependencies = [ "anyhow", + "aptos-global-constants", "aptos-logger", "aptos-sdk", "clap 3.2.17", @@ -9729,6 +9717,7 @@ dependencies = [ "aptos", "aptos-config", "aptos-crypto", + "aptos-global-constants", "aptos-infallible", "aptos-logger", "aptos-rest-client", @@ -9745,6 +9734,15 @@ dependencies = [ "url", ] +[[package]] +name = "treediff" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "761e8d5ad7ce14bb82b7e61ccc0ca961005a275a060b9644a2431aa11553c2ff" +dependencies = [ + "serde_json", +] + [[package]] name = "try-lock" version = "0.2.3" diff --git a/Cargo.toml b/Cargo.toml index 5c5adbe86c4be..e514eb905d672 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,7 @@ members = [ "aptos-move/move-deps", "aptos-move/move-examples", "aptos-move/mvhashmap", + "aptos-move/package-builder", "aptos-move/parallel-executor", "aptos-move/vm-genesis", "aptos-move/writeset-transaction-generator", @@ -74,8 +75,6 @@ members = [ "crates/transaction-emitter-lib", "ecosystem/node-checker", "ecosystem/node-checker/fn-check-client", - "ecosystem/sf-indexer/aptos-sf-indexer", - "ecosystem/sf-indexer/firehose-stream", "execution/db-bootstrapper", "execution/executor", "execution/executor-benchmark", @@ -128,10 +127,7 @@ members = [ "vm-validator", ] -exclude =[ - "crates/aptos-protos", - "ecosystem/sf-indexer/aptos-substreams", -] +exclude = ["crates/aptos-protos", "ecosystem/sf-indexer"] # NOTE: default-members is the complete list of binaries that form the "production Aptos codebase". These members should # never include crates that require fuzzing features or test features. These are the crates we want built with no extra @@ -183,35 +179,44 @@ debug = true [patch.crates-io] rocksdb = { git = 'https://github.com/aptos-labs/rust-rocksdb' } serde-reflection = { git = "https://github.com/aptos-labs/serde-reflection", rev = "839aed62a20ddccf043c08961cfe74875741ccba" } -diesel = { git = "https://github.com/aptos-labs/diesel", branch = "1.4.x" } # Replacing original dependences of "move-language/move" [patch."https://github.com/move-language/move"] -move-abigen = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-binary-format = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-bytecode-utils = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-bytecode-verifier = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-cli = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-command-line-common = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-compiler = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-core-types = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-docgen = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-errmapgen = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-ir-compiler = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-model = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-package = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-prover = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-prover-boogie-backend = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-prover-test-utils = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-resource-viewer = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-stackless-bytecode-interpreter = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-stdlib = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-symbol-pool = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-table-extension = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-transactional-test-runner = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-unit-test = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-vm-runtime = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-vm-test-utils = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -move-vm-types = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -read-write-set = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } -read-write-set-dynamic = { git = "https://github.com/bobchainer/move", rev = "c73b6b22" } +move-abigen = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-binary-format = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-bytecode-utils = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-bytecode-verifier = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-bytecode-source-map = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-cli = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-command-line-common = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-compiler = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-coverage = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-core-types = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-disassembler = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-docgen = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-errmapgen = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-ir-compiler = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-model = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-package = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-prover = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-prover-boogie-backend = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-prover-test-utils = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-resource-viewer = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-stackless-bytecode-interpreter = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-ir-to-bytecode = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-ir-to-bytecode-syntax = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-ir-types = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-stdlib = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-symbol-pool = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-table-extension = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-transactional-test-runner = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-unit-test = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-vm-runtime = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-vm-test-utils = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-vm-types = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +read-write-set = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +read-write-set-dynamic = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } + +[patch."https://github.com/aptos-labs/move"] +move-command-line-common = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } +move-package = { git = "https://github.com/Mamoru-Foundation/move", branch = "main" } diff --git a/api/Cargo.toml b/api/Cargo.toml index 1e5545668703f..9454f84582594 100644 --- a/api/Cargo.toml +++ b/api/Cargo.toml @@ -31,6 +31,7 @@ url = "2.2.2" aptos-api-types = { path = "./types", package = "aptos-api-types" } aptos-config = { path = "../config" } aptos-crypto = { path = "../crates/aptos-crypto" } +aptos-gas = { path = "../aptos-move/aptos-gas" } aptos-logger = { path = "../crates/aptos-logger" } aptos-mempool = { path = "../mempool" } aptos-metrics-core = { path = "../crates/aptos-metrics-core" } @@ -43,6 +44,7 @@ storage-interface = { path = "../storage/storage-interface" } [dev-dependencies] aptos-api-test-context = { path = "./test-context", package = "aptos-api-test-context" } +aptos-gas = { path = "../aptos-move/aptos-gas", features = ["testing"] } aptos-proptest-helpers = { path = "../crates/aptos-proptest-helpers" } aptos-sdk = { path = "../sdk" } percent-encoding = "2.1.0" diff --git a/api/doc/.version b/api/doc/.version index 9084fa2f716a7..26aaba0e86632 100644 --- a/api/doc/.version +++ b/api/doc/.version @@ -1 +1 @@ -1.1.0 +1.2.0 diff --git a/api/doc/CHANGELOG.md b/api/doc/CHANGELOG.md index bd29aae7f0bd8..85dd679aa4eb0 100644 --- a/api/doc/CHANGELOG.md +++ b/api/doc/CHANGELOG.md @@ -4,6 +4,11 @@ All notable changes to the Aptos Node API will be captured in this file. This ch **Note**: The Aptos Node API does not follow semantic version while we are in active development. Instead, breaking changes will be announced with each devnet cut. Once we launch our mainnet, the API will follow semantic versioning closely. +## Unreleased +- **[Breaking Changes]** Following the deprecation notice from the previous release, the following breaking changes have landed in this release. Please see the notes from last release for information on the new endpoints you must migrate to: + - The `/events/{event_key}` endpoint has been removed. + - The `key` field in the `Event` struct has been removed. + ## 1.1.0 (2022-09-08) - A new endpoint has been added for getting events: `/accounts/{address}/events/{creation_number}`. If you would make a request to `/events/{event_key}` like in `Example A` below, you would use the new endpoint like in `Example B`. See [#4012](https://github.com/aptos-labs/aptos-core/pull/4012) for more information on this change. - **[Deprecated]** The `/events/{event_key}` endpoint is now deprecated. In the next release it will be removed entirely. You must migrate to the new endpoint, `/accounts/{address}/events/{creation_number}`, by then. diff --git a/api/doc/spec.json b/api/doc/spec.json index e149212563357..441ee1a888e10 100644 --- a/api/doc/spec.json +++ b/api/doc/spec.json @@ -3,7 +3,7 @@ "info": { "title": "Aptos Node API", "description": "The Aptos Node API is a RESTful API for client applications to interact with the Aptos blockchain.", - "version": "1.1.0", + "version": "1.2.0", "contact": { "name": "Aptos Labs", "url": "https://github.com/aptos-labs/aptos-core" @@ -1909,7 +1909,7 @@ "Blocks" ], "summary": "Get blocks by height", - "description": "This endpoint allows you to get the transactions in a block\nand the corresponding block information.\n\nIf the block is pruned, it will return a 410", + "description": "This endpoint allows you to get the transactions in a block\nand the corresponding block information.\n\nTransactions are limited by max default transactions size. If not all transactions\nare present, the user will need to query for the rest of the transactions via the\nget transactions API.\n\nIf the block is pruned, it will return a 410", "parameters": [ { "name": "block_height", @@ -2438,7 +2438,7 @@ "Blocks" ], "summary": "Get blocks by version", - "description": "This endpoint allows you to get the transactions in a block\nand the corresponding block information given a version in the block.\n\nIf the block has been pruned, it will return a 410", + "description": "This endpoint allows you to get the transactions in a block\nand the corresponding block information given a version in the block.\n\nTransactions are limited by max default transactions size. If not all transactions\nare present, the user will need to query for the rest of the transactions via the\nget transactions API.\n\nIf the block has been pruned, it will return a 410", "parameters": [ { "name": "version", @@ -2961,550 +2961,6 @@ "operationId": "get_block_by_version" } }, - "/events/{event_key}": { - "get": { - "tags": [ - "Events" - ], - "summary": "Get events by event key", - "description": "This endpoint allows you to get a list of events of a specific type\nas identified by its event key, which is a globally unique ID.", - "parameters": [ - { - "name": "event_key", - "schema": { - "$ref": "#/components/schemas/EventKey" - }, - "in": "path", - "description": "Event key to retrieve events by", - "required": true, - "deprecated": false, - "explode": true - }, - { - "name": "start", - "schema": { - "$ref": "#/components/schemas/U64" - }, - "in": "query", - "description": "Starting sequence number of events.\n\nIf unspecified, by default will retrieve the most recent events", - "required": false, - "deprecated": false, - "explode": true - }, - { - "name": "limit", - "schema": { - "type": "integer", - "format": "uint16" - }, - "in": "query", - "description": "Max number of events to retrieve.\n\nIf unspecified, defaults to default page size", - "required": false, - "deprecated": false, - "explode": true - } - ], - "responses": { - "200": { - "description": "", - "content": { - "application/json": { - "schema": { - "type": "array", - "items": { - "$ref": "#/components/schemas/VersionedEvent" - } - } - }, - "application/x-bcs": { - "schema": { - "type": "array", - "items": { - "type": "integer", - "format": "uint8" - } - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "required": true, - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - }, - "400": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AptosError" - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - }, - "403": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AptosError" - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - }, - "404": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AptosError" - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - }, - "410": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AptosError" - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - }, - "500": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AptosError" - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - }, - "503": { - "description": "", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AptosError" - } - } - }, - "headers": { - "X-APTOS-CHAIN-ID": { - "description": "Chain ID of the current chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint8" - } - }, - "X-APTOS-LEDGER-VERSION": { - "description": "Current ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-OLDEST-VERSION": { - "description": "Oldest non-pruned ledger version of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-LEDGER-TIMESTAMPUSEC": { - "description": "Current timestamp of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-EPOCH": { - "description": "Current epoch of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-BLOCK-HEIGHT": { - "description": "Current block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - }, - "X-APTOS-OLDEST-BLOCK-HEIGHT": { - "description": "Oldest non-pruned block height of the chain", - "deprecated": false, - "schema": { - "type": "integer", - "format": "uint64" - } - } - } - } - }, - "deprecated": true, - "operationId": "get_events_by_event_key" - } - }, "/accounts/{address}/events/{creation_number}": { "get": { "tags": [ @@ -9855,6 +9311,30 @@ ], "summary": "Simulate transaction", "description": "The output of the transaction will have the exact transaction outputs and events that running\nan actual signed transaction would have. However, it will not have the associated state\nhashes, as they are not updated in storage. This can be used to estimate the maximum gas\nunits for a submitted transaction.\n\nTo use this, you must:\n- Create a SignedTransaction with a zero-padded signature.\n- Submit a SubmitTransactionRequest containing a UserTransactionRequest containing that signature.\n\nTo use this endpoint with BCS, you must submit a SignedTransaction\nencoded as BCS. See SignedTransaction in types/src/transaction/mod.rs.", + "parameters": [ + { + "name": "estimate_max_gas_amount", + "schema": { + "type": "boolean" + }, + "in": "query", + "description": "If set to true, the max gas value in the transaction will be ignored\nand the maximum possible gas will be used", + "required": false, + "deprecated": false, + "explode": true + }, + { + "name": "estimate_gas_unit_price", + "schema": { + "type": "boolean" + }, + "in": "query", + "description": "If set to true, the gas unit price in the transaction will be ignored\nand the estimated value will be used", + "required": false, + "deprecated": false, + "explode": true + } + ], "requestBody": { "content": { "application/json": { @@ -11603,16 +11083,12 @@ "type": "object", "description": "An event from a transaction", "required": [ - "key", "guid", "sequence_number", "type", "data" ], "properties": { - "key": { - "$ref": "#/components/schemas/EventKey" - }, "guid": { "$ref": "#/components/schemas/EventGuid" }, @@ -11642,12 +11118,6 @@ } } }, - "EventKey": { - "type": "string", - "format": "hex", - "description": "Event key is a global index for an event stream.\n\nIt is hex-encoded BCS bytes of `EventHandle` `guid` field value, which is\na combination of a `uint64` creation number and account address (without\ntrimming leading zeros).\n\nFor example, event key `0x000000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1` is combined by the following 2 parts:\n 1. `0000000000000000`: `uint64` representation of `0`.\n 2. `88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1`: 32 bytes of account address.\n", - "example": "0x000000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1 " - }, "GasEstimation": { "type": "object", "description": "Struct holding the outputs of the estimate gas API", @@ -12835,7 +12305,6 @@ "description": "An event from a transaction with a version", "required": [ "version", - "key", "guid", "sequence_number", "type", @@ -12845,9 +12314,6 @@ "version": { "$ref": "#/components/schemas/U64" }, - "key": { - "$ref": "#/components/schemas/EventKey" - }, "guid": { "$ref": "#/components/schemas/EventGuid" }, @@ -13154,4 +12620,4 @@ "externalDocs": { "url": "https://github.com/aptos-labs/aptos-core" } -} \ No newline at end of file +} diff --git a/api/doc/spec.yaml b/api/doc/spec.yaml index a0f9bed2ee311..2fc95f8925050 100644 --- a/api/doc/spec.yaml +++ b/api/doc/spec.yaml @@ -3,7 +3,7 @@ info: title: Aptos Node API description: The Aptos Node API is a RESTful API for client applications to interact with the Aptos blockchain. - version: 1.1.0 + version: 1.2.0 contact: name: Aptos Labs url: https://github.com/aptos-labs/aptos-core @@ -1409,6 +1409,10 @@ paths: This endpoint allows you to get the transactions in a block and the corresponding block information. + Transactions are limited by max default transactions size. If not all transactions + are present, the user will need to query for the rest of the transactions via the + get transactions API. + If the block is pruned, it will return a 410 parameters: - name: block_height @@ -1798,6 +1802,10 @@ paths: This endpoint allows you to get the transactions in a block and the corresponding block information given a version in the block. + Transactions are limited by max default transactions size. If not all transactions + are present, the user will need to query for the rest of the transactions via the + get transactions API. + If the block has been pruned, it will return a 410 parameters: - name: version @@ -2178,407 +2186,6 @@ paths: type: integer format: uint64 operationId: get_block_by_version - /events/{event_key}: - get: - tags: - - Events - summary: Get events by event key - description: |- - This endpoint allows you to get a list of events of a specific type - as identified by its event key, which is a globally unique ID. - parameters: - - name: event_key - schema: - $ref: '#/components/schemas/EventKey' - in: path - description: Event key to retrieve events by - required: true - deprecated: false - explode: true - - name: start - schema: - $ref: '#/components/schemas/U64' - in: query - description: |- - Starting sequence number of events. - - If unspecified, by default will retrieve the most recent events - required: false - deprecated: false - explode: true - - name: limit - schema: - type: integer - format: uint16 - in: query - description: |- - Max number of events to retrieve. - - If unspecified, defaults to default page size - required: false - deprecated: false - explode: true - responses: - '200': - description: '' - content: - application/json: - schema: - type: array - items: - $ref: '#/components/schemas/VersionedEvent' - application/x-bcs: - schema: - type: array - items: - type: integer - format: uint8 - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - required: true - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - required: true - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - required: true - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - required: true - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - required: true - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - required: true - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - required: true - deprecated: false - schema: - type: integer - format: uint64 - '400': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AptosError' - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - '403': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AptosError' - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - '404': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AptosError' - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - '410': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AptosError' - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - '500': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AptosError' - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - '503': - description: '' - content: - application/json: - schema: - $ref: '#/components/schemas/AptosError' - headers: - X-APTOS-CHAIN-ID: - description: Chain ID of the current chain - deprecated: false - schema: - type: integer - format: uint8 - X-APTOS-LEDGER-VERSION: - description: Current ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-OLDEST-VERSION: - description: Oldest non-pruned ledger version of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-LEDGER-TIMESTAMPUSEC: - description: Current timestamp of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-EPOCH: - description: Current epoch of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-BLOCK-HEIGHT: - description: Current block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - X-APTOS-OLDEST-BLOCK-HEIGHT: - description: Oldest non-pruned block height of the chain - deprecated: false - schema: - type: integer - format: uint64 - deprecated: true - operationId: get_events_by_event_key /accounts/{address}/events/{creation_number}: get: tags: @@ -7301,6 +6908,27 @@ paths: To use this endpoint with BCS, you must submit a SignedTransaction encoded as BCS. See SignedTransaction in types/src/transaction/mod.rs. + parameters: + - name: estimate_max_gas_amount + schema: + type: boolean + in: query + description: |- + If set to true, the max gas value in the transaction will be ignored + and the maximum possible gas will be used + required: false + deprecated: false + explode: true + - name: estimate_gas_unit_price + schema: + type: boolean + in: query + description: |- + If set to true, the gas unit price in the transaction will be ignored + and the estimated value will be used + required: false + deprecated: false + explode: true requestBody: content: application/json: @@ -8612,14 +8240,11 @@ components: type: object description: An event from a transaction required: - - key - guid - sequence_number - type - data properties: - key: - $ref: '#/components/schemas/EventKey' guid: $ref: '#/components/schemas/EventGuid' sequence_number: @@ -8638,20 +8263,6 @@ components: $ref: '#/components/schemas/U64' account_address: $ref: '#/components/schemas/Address' - EventKey: - type: string - format: hex - description: | - Event key is a global index for an event stream. - - It is hex-encoded BCS bytes of `EventHandle` `guid` field value, which is - a combination of a `uint64` creation number and account address (without - trimming leading zeros). - - For example, event key `0x000000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1` is combined by the following 2 parts: - 1. `0000000000000000`: `uint64` representation of `0`. - 2. `88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1`: 32 bytes of account address. - example: '0x000000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1 ' GasEstimation: type: object description: Struct holding the outputs of the estimate gas API @@ -9563,7 +9174,6 @@ components: description: An event from a transaction with a version required: - version - - key - guid - sequence_number - type @@ -9571,8 +9181,6 @@ components: properties: version: $ref: '#/components/schemas/U64' - key: - $ref: '#/components/schemas/EventKey' guid: $ref: '#/components/schemas/EventGuid' sequence_number: @@ -9750,3 +9358,4 @@ components: $ref: '#/components/schemas/DecodedTableData' externalDocs: url: https://github.com/aptos-labs/aptos-core + diff --git a/api/goldens/aptos_api__tests__events_test__test_get_events.json b/api/goldens/aptos_api__tests__events_test__test_get_events.json index 6bf586dc1390a..ae7ac2a2ff1c3 100644 --- a/api/goldens/aptos_api__tests__events_test__test_get_events.json +++ b/api/goldens/aptos_api__tests__events_test__test_get_events.json @@ -1,7 +1,6 @@ [ { "version": "0", - "key": "0x0000000000000000000000000000000000000000000000000000000000000000000000000a550c18", "guid": { "creation_number": "0", "account_address": "0xa550c18" diff --git a/api/goldens/aptos_api__tests__events_test__test_get_events_by_account_event_handle.json b/api/goldens/aptos_api__tests__events_test__test_get_events_by_account_event_handle.json index 1cf57894da375..71f9f4fa4ce52 100644 --- a/api/goldens/aptos_api__tests__events_test__test_get_events_by_account_event_handle.json +++ b/api/goldens/aptos_api__tests__events_test__test_get_events_by_account_event_handle.json @@ -1,7 +1,6 @@ [ { "version": "0", - "key": "0x02000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "2", "account_address": "0x1" diff --git a/api/goldens/aptos_api__tests__events_test__test_get_events_by_invalid_account_event_handle_field_type.json b/api/goldens/aptos_api__tests__events_test__test_get_events_by_invalid_account_event_handle_field_type.json index 23d88c62b7725..50f7949a30c94 100644 --- a/api/goldens/aptos_api__tests__events_test__test_get_events_by_invalid_account_event_handle_field_type.json +++ b/api/goldens/aptos_api__tests__events_test__test_get_events_by_invalid_account_event_handle_field_type.json @@ -1,5 +1,5 @@ { - "message": "Deserialization error, field(epoch) type is not a EventHandle struct", + "message": "Deserialization error, field(epoch) type is not a EventHandle struct: unexpected end of input", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_string.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_string.json index d704c094e291c..ab77d1b219b22 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_string.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_string.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: parse arguments[0] failed, expect string
, caused by error: invalid account address \"invalid\"", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_type.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_type.json index d704c094e291c..d134b25412201 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_type.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_address_type.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: parse arguments[0] failed, expect string
, caused by error: invalid type: integer `1`, expected a string", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_data_type.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_data_type.json index d704c094e291c..94ed68a74eb78 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_data_type.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_data_type.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: parse arguments[0] failed, expect string
, caused by error: invalid type: boolean `true`, expected a string", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_u64_string.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_u64_string.json index d704c094e291c..ab77d1b219b22 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_u64_string.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_argument_u64_string.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: parse arguments[0] failed, expect string
, caused by error: invalid account address \"invalid\"", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_id.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_id.json index f654a3e791785..bf818b54528d6 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_id.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_id.json @@ -1,5 +1,5 @@ { - "message": "parse request payload error: failed to parse \"string(EntryFunctionId)\": invalid entry function id \"invalid\" (occurred while parsing \"EntryFunctionPayload\") (occurred while parsing \"TransactionPayload\") (occurred while parsing \"UserTransactionRequestInner\") (occurred while parsing \"EncodeSubmissionRequest\")", + "message": "parse request payload error: failed to parse \"string(EntryFunctionId)\": Invalid entry function ID invalid (occurred while parsing \"EntryFunctionPayload\") (occurred while parsing \"TransactionPayload\") (occurred while parsing \"UserTransactionRequestInner\") (occurred while parsing \"EncodeSubmissionRequest\")", "error_code": "web_framework_error", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_name.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_name.json index d704c094e291c..7c52a7c2cf27d 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_name.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_function_name.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: could not find entry function by 0x1::account::invalid", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_address.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_address.json index d704c094e291c..842086e83a9cc 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_address.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_address.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: Module ModuleId { address: 0000000000000000000000000000000000000000000000000000002342342342, name: Identifier(\"Invalid\") } can't be found", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_name.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_name.json index d704c094e291c..3bc334b4aa3c8 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_name.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_invalid_entry_function_module_name.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: Module ModuleId { address: 0000000000000000000000000000000000000000000000000000000000000001, name: Identifier(\"invalid\") } can't be found", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__invalid_post_request_test__test_missing_entry_function_arguments.json b/api/goldens/aptos_api__tests__invalid_post_request_test__test_missing_entry_function_arguments.json index d704c094e291c..c65162f36d08b 100644 --- a/api/goldens/aptos_api__tests__invalid_post_request_test__test_missing_entry_function_arguments.json +++ b/api/goldens/aptos_api__tests__invalid_post_request_test__test_missing_entry_function_arguments.json @@ -1,5 +1,5 @@ { - "message": "The given transaction is invalid", + "message": "The given transaction is invalid: Failed to parse transaction payload: parse arguments[0] failed, expect string
, caused by error: invalid account address \"0\"", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__transactions_test__test_create_signing_message_rejects_payload_too_large_json_body.json b/api/goldens/aptos_api__tests__transactions_test__test_create_signing_message_rejects_payload_too_large_json_body.json new file mode 100644 index 0000000000000..d5b14339e25bd --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_create_signing_message_rejects_payload_too_large_json_body.json @@ -0,0 +1,5 @@ +{ + "message": "payload too large", + "error_code": "web_framework_error", + "vm_error_code": null +} diff --git a/api/goldens/aptos_api__tests__transactions_test__test_gas_estimation.json b/api/goldens/aptos_api__tests__transactions_test__test_gas_estimation.json new file mode 100644 index 0000000000000..0c7b04d451a1d --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_gas_estimation.json @@ -0,0 +1,3 @@ +{ + "gas_estimate": 0 +} diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_genesis_transaction.json b/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_genesis_transaction.json new file mode 100644 index 0000000000000..90057ba6e841c --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_genesis_transaction.json @@ -0,0 +1,28833 @@ +[ + { + "version": "0", + "hash": "", + "state_change_hash": "", + "event_root_hash": "", + "state_checkpoint_hash": "", + "gas_used": "0", + "success": true, + "vm_status": "Executed successfully", + "accumulator_root_hash": "", + "changes": [ + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010006020604030a30043a0605403607765e08d4012006f4011410880287010a8f03060c950392010da704020000000100020003070000040001000005020100000602030000070104000008000100020607030100010a080800020b070a010002080b0c01000506070608060207080005000206080005010101080002070a050605010502060a0900060900010304070a050605010302010302070a0900030109000361636c056572726f7206766563746f720341434c036164640f6173736572745f636f6e7461696e7308636f6e7461696e7305656d7074790672656d6f7665046c69737410696e76616c69645f617267756d656e7408696e6465785f6f6600000000000000000000000000000000000000000000000000000000000000010308000000000000000003080100000000000000126170746f733a3a6d657461646174615f7630730200000000000000000845434f4e5441494e255468652041434c20616c726561647920636f6e7461696e732074686520616464726573732e01000000000000000c454e4f545f434f4e5441494e255468652041434c20646f6573206e6f7420636f6e7461696e2074686520616464726573732e000201090a050001000005150a000f000e010c030c020b022e0b0338002003100b000107001106270b000f000b014406020101000001080b000b01110203070701110627020201000001050b0010000e01380002030100000103400600000000000000001200020401000009180a000f000e010c030c020b022e0b0338010c050c040b0403120b000107011106270b000f000b0538020102000000", + "abi": { + "address": "0x1", + "name": "acl", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::acl::ACL", + "address" + ], + "return": [] + }, + { + "name": "assert_contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::acl::ACL", + "address" + ], + "return": [] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::acl::ACL", + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::acl::ACL" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::acl::ACL", + "address" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ACL", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "list", + "type": "vector
" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000c020c08031428043c0605421b075d800108dd012006fd010a108702740afb02090c8403370dbb03040fbf03020001000200030004000500060007060004090700000800010106000a020300000b01000100050a04050100010d06070100020e080800030f0700010003000400060001090001080001060800010608010001080101060900010a0201030c636f707961626c655f616e7903616e7903626373056572726f720866726f6d5f62637306737472696e6709747970655f696e666f03416e79047061636b06537472696e6709747970655f6e616d6506756e7061636b046461746108746f5f627974657310696e76616c69645f617267756d656e740a66726f6d5f6279746573000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f7630600101000000000000000e45545950455f4d49534d415443484754686520747970652070726f766964656420666f722060756e7061636b60206973206e6f74207468652073616d652061732077617320676976656e20666f7220607061636b602e0002020a08010c0a0200010000040538000e0038011200020101000004030b0010000202010000040e38000e0010001421030907001105270e0010011438020200000001000000", + "abi": { + "address": "0x1", + "name": "any", + "friends": [ + "0x1::copyable_any" + ], + "exposed_functions": [ + { + "name": "pack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::any::Any" + ] + }, + { + "name": "type_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::any::Any" + ], + "return": [ + "&0x1::string::String" + ] + }, + { + "name": "unpack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::any::Any" + ], + "return": [ + "T0" + ] + } + ], + "structs": [ + { + "name": "Any", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "type_name", + "type": "0x1::string::String" + }, + { + "name": "data", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000006010002030206050807070f0d081c200c3c04000000010001010001060900010a020362637308746f5f627974657300000000000000000000000000000000000000000000000000000000000000010001020000", + "abi": { + "address": "0x1", + "name": "bcs", + "friends": [], + "exposed_functions": [ + { + "name": "to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0" + ], + "return": [ + "vector" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010012021222033466049a0104059e01b50107d302950508e807200688089a0310a20b91050ab310450cf810b2090daa1a1400000001000200030004000500060007000800090600000a0700000b0600000c0e00000d0700050f070003200701000001210700000e00010000100203000011040300001205030000130607000014080300001509010000160a030000170b030000180c03000019030d00001a030d00001b030d00022c111100022d111100022e111100082f160101000630180300043118090007321b1c0100101013140208040804010102060802060a080500020506080203060802060802060a080501060802010a080503060c060c0802010503060c08020a0a0203060c0a020a0a0204050a08050a0a0202010804040303060805060800010800010805010309060801060802060a08010103030303060803010801010802030804030a080502060a090006090002030a080501060c090101010101010101010b070a080203050303030a0805060802070a0802080403010a0201090004636f64650c636f707961626c655f616e79056572726f72066f7074696f6e067369676e657206737472696e671073797374656d5f616464726573736573047574696c06766563746f720e4d6f64756c654d657461646174610a5061636b6167654465700f5061636b6167654d657461646174610f5061636b61676552656769737472790d55706772616465506f6c6963791c63616e5f6368616e67655f757067726164655f706f6c6963795f746f06537472696e6711636865636b5f636f6578697374656e636512636865636b5f646570656e64656e6369657313636865636b5f7570677261646162696c697479106765745f6d6f64756c655f6e616d65730a696e697469616c697a651a69735f706f6c6963795f6578656d707465645f616464726573730f7075626c6973685f7061636b616765137075626c6973685f7061636b6167655f74786e0f726571756573745f7075626c69736818757067726164655f706f6c6963795f61726269747261727915757067726164655f706f6c6963795f636f6d70617418757067726164655f706f6c6963795f696d6d757461626c65046e616d6506736f757263650a736f757263655f6d617009657874656e73696f6e064f7074696f6e03416e79076163636f756e740c7061636b6167655f6e616d650e757067726164655f706f6c6963790e757067726164655f6e756d6265720d736f757263655f646967657374086d616e6966657374076d6f64756c65730464657073087061636b6167657306706f6c6963790e616c72656164795f657869737473096e6f745f666f756e6410696e76616c69645f617267756d656e7408636f6e7461696e73166173736572745f6170746f735f6672616d65776f726b0a616464726573735f6f660a66726f6d5f62797465730000000000000000000000000000000000000000000000000000000000000001030807000000000000000308060000000000000003080400000000000000030801000000000000000308050000000000000003080200000000000000030803000000000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000005052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000008052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000a126170746f733a3a6d657461646174615f7630fc0407010000000000000012454d4f44554c455f4e414d455f434c415348685061636b61676520636f6e7461696e73206475706c6963617465206d6f64756c65206e616d65732077697468206578697374696e67206d6f64756c6573207075626c6973656420696e206f74686572207061636b61676573206f6e2074686973206164647265737302000000000000001245555047524144455f494d4d555441424c452343616e6e6f74207570677261646520616e20696d6d757461626c65207061636b61676503000000000000001645555047524144455f5745414b45525f504f4c4943593143616e6e6f7420646f776e67726164652061207061636b6167652773207570677261646162696c69747920706f6c69637904000000000000000f454d4f44554c455f4d495353494e473d43616e6e6f742064656c6574652061206d6f64756c65207468617420776173207075626c697368656420696e207468652073616d65207061636b616765050000000000000014455041434b4147455f4445505f4d495353494e473a446570656e64656e637920636f756c64206e6f74206265207265736f6c76656420746f20616e79207075626c6973686564207061636b6167652e060000000000000012454445505f5745414b45525f504f4c494359314120646570656e64656e63792063616e6e6f7420686176652061207765616b6572207570677261646520706f6c6963792e07000000000000001f454445505f4152424954524152595f4e4f545f53414d455f41444452455353434120646570656e64656e637920746f20616e206061726269747261727960207061636b616765206d757374206265206f6e207468652073616d6520616464726573732e0002041c08051d0a021e0a021f0b0601080701020222052308050202081c08052408042503260805270a02280a0800290a08011f0b060108070302012a0a08020402012b020001000003080e001000140e011000142502010000000e390600000000000000000c020a020a001001410f23030905340a0010010a02420f0c050600000000000000000c030a030a014110230316052d0a010a0342100c040a0510020b042203280b00010b05010b01010703110d270b03060100000000000000160c0305100b05010b02060100000000000000160c0205020b00010b01010202000001031297010a0110030c040600000000000000000c060a0441130c090a060a0923030d0592010a040a0642130c020a021004142903031f0b01010b04010b02010704110e270a0210041411060325052c0b02010b06060100000000000000160c0605080a021004142b030c0a0600000000000000000c070a0a100541140c08090c050a070a0823033e0584010a0a10050a0742140c030a031006140a0210071421034c057d0b0a010a0310081000140a0110081000142603630b01010b04010b03010b02010701110f270b03100814110a21036a05780b021004140a002103770b01010b04010700110f27057a0b0201080c050584010b03010b07060100000000000000160c0705390b05038d010b01010b04010704110e270b06060100000000000000160c0605080b01010b040102030000001540110c0c030a0010081000140e031000142303140b00010b01010b02010705110f270a001008140b01100814110003230b00010b02010706110f270b0011040c050600000000000000000c040a040e05411023032e053d0a020e050a044210380003380b02010702270b04060100000000000000160c0405280b02010204000000171c401000000000000000000c020600000000000000000c010a010a001001410f23030b05180d020a0010010a01420f10021444100b01060100000000000000160c0105040b00010b0202050000010309180b0011110a0111120c030a03290320030a05100b010b024014010000000000000012032d0305170b01010b032a030f050b0244140206000000195e0a0007072103050508080c01050c0a000708210c010b01030f0512080c0205160a000709210c020b020319051c080c0305200a00070a210c030b0303230526080c04052a0a00070b210c040b04032d0530080c0505340a00070c210c050b050337053a080c06053e0a00070d210c060b0603410544080c0705480a00070e210c070b07034b054e080c0805520a00070f210c080b0803550558080c09055c0b000710210c090b090207010001031a6d0a0011120c050a052903200308050d0b004014000000000000000012032d03050f0b00010a050e0111020e0111040c090a052a030f050c0b0a0b2e41140c080a080c070600000000000000000c060600000000000000000c0d0a060a08230328054f0a0b0a060c040c030b032e0b0442140c0a0a0a1006140e0110061421033a05470a0a100914060100000000000000160c0d0b0a0e010e0911030a060c07054a0b0a0e0911010b06060100000000000000160c0605230b0d0d010f09150e011008140c0c0a070b0823035c05620b010b0b0b0743141505650b0b0b0144140b050b090b020e0c100014110902080104010303060b000b0138010b02110702090002000a010000030331001204020b010000030331011204020c01000003033102120402040002050000020601000300020001010201020200", + "abi": { + "address": "0x1", + "name": "code", + "friends": [], + "exposed_functions": [ + { + "name": "can_change_upgrade_policy_to", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::code::UpgradePolicy", + "0x1::code::UpgradePolicy" + ], + "return": [ + "bool" + ] + }, + { + "name": "publish_package", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::code::PackageMetadata", + "vector>" + ], + "return": [] + }, + { + "name": "publish_package_txn", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector>" + ], + "return": [] + }, + { + "name": "upgrade_policy_arbitrary", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::code::UpgradePolicy" + ] + }, + { + "name": "upgrade_policy_compat", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::code::UpgradePolicy" + ] + }, + { + "name": "upgrade_policy_immutable", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::code::UpgradePolicy" + ] + } + ], + "structs": [ + { + "name": "ModuleMetadata", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "source", + "type": "vector" + }, + { + "name": "source_map", + "type": "vector" + }, + { + "name": "extension", + "type": "0x1::option::Option<0x1::copyable_any::Any>" + } + ] + }, + { + "name": "PackageDep", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account", + "type": "address" + }, + { + "name": "package_name", + "type": "0x1::string::String" + } + ] + }, + { + "name": "PackageMetadata", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "upgrade_policy", + "type": "0x1::code::UpgradePolicy" + }, + { + "name": "upgrade_number", + "type": "u64" + }, + { + "name": "source_digest", + "type": "0x1::string::String" + }, + { + "name": "manifest", + "type": "vector" + }, + { + "name": "modules", + "type": "vector<0x1::code::ModuleMetadata>" + }, + { + "name": "deps", + "type": "vector<0x1::code::PackageDep>" + }, + { + "name": "extension", + "type": "0x1::option::Option<0x1::copyable_any::Any>" + } + ] + }, + { + "name": "PackageRegistry", + "is_native": false, + "abilities": [ + "drop", + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "packages", + "type": "vector<0x1::code::PackageMetadata>" + } + ] + }, + { + "name": "UpgradePolicy", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "policy", + "type": "u8" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000f010014021448035caf02048b032c05b703df02079606d90708ef0d20068f0e980110a70ff3060a9a164b0be5160c0cf116a2080d931f140ea71f120fb91f0400020003000400050006000700080009000a000b000c05010001000d04010001000e08010001000f0801000100100600001105010001001205010001001308000014060007230700042e0701000005370400033a04010601094407000015000100001602030100001704010100001805010100001901020100001a01060100001b07010100001c08010100001d09010100001e0a010100001f0b01010000200c0b010000210d0b010000220e01010000240f100100002511100100002612010000270f100100002802130100002901130100002a14010100002b150b0100002c01160100002d12010100002f0117010000300116010000311801010000321201010000331903010000341a0b01000035010b0100083e120100023f030300024003030004411f1301000442202101000543220100094501240100094625020002470303000348280101060649120200024a030300054b2a1e00044c1c2b0100044d012b0100054e220100014f020101000150122e010604511f310100055232330005533213000554350100121c041c221e231e0b1c021c251c2827141c0f1c2c1e2d1e1e1c2f1c3027302f311e2c332d331d1c061c282f02060c010001050103020b01010900060b00010900030503060b00010900010202050b01010900010b00010900010b05010900010b06010900010b0101090002070b010109000301070b010109000205060b0501090005060c080908090201030b000109000b050109000b0601090006060c0809080902010101060c010102070b010109000b010109000203060b06010900010809010b0a010403060c050301060b0101090002060c030107010109000303070b0a01080b07080b01080b01060b0a01090001070b0a010900010709000207080b0402070b030109000b0101090001080d0106080d01070b0301090001080402070b0c0109000900060b0a01080b0208090809050b02010900020401010b0a01090002070b0a01080b07080b02050b03010900010b0c010900010808040b0a0104060b0a01080b06080b04010609000106080b01040305070b0a01080b07080b0107080b0205070b030109000a6170746f735f636f696e0767656e6573697304636f696e076163636f756e74056572726f72056576656e74066f7074696f6e136f7074696f6e616c5f61676772656761746f72067369676e657206737472696e671073797374656d5f61646472657373657309747970655f696e666f0e4275726e4361706162696c69747904436f696e08436f696e496e666f09436f696e53746f72650c4465706f7369744576656e7410467265657a654361706162696c6974790e4d696e744361706162696c6974790c537570706c79436f6e6669670d57697468647261774576656e7415616c6c6f775f737570706c795f75706772616465730762616c616e6365046275726e096275726e5f66726f6d0c636f696e5f6164647265737308646563696d616c73076465706f7369741064657374726f795f6275726e5f6361701264657374726f795f667265657a655f6361701064657374726f795f6d696e745f6361700c64657374726f795f7a65726f07657874726163740b657874726163745f616c6c11667265657a655f636f696e5f73746f726506537472696e670a696e697469616c697a6513696e697469616c697a655f696e7465726e616c18696e697469616c697a655f737570706c795f636f6e66696725696e697469616c697a655f776974685f706172616c6c656c697a61626c655f737570706c791569735f6163636f756e745f726567697374657265641369735f636f696e5f696e697469616c697a6564056d65726765046d696e74046e616d65087265676973746572064f7074696f6e06737570706c790673796d626f6c087472616e736665720e757067726164655f737570706c790576616c7565087769746864726177047a65726f0b64756d6d795f6669656c64124f7074696f6e616c41676772656761746f720666726f7a656e0e6465706f7369745f6576656e74730b4576656e7448616e646c650f77697468647261775f6576656e747306616d6f756e740e616c6c6f775f7570677261646573166173736572745f6170746f735f6672616d65776f726b096e6f745f666f756e6410696e76616c69645f617267756d656e740769735f736f6d650a626f72726f775f6d7574037375620854797065496e666f07747970655f6f660f6163636f756e745f61646472657373117065726d697373696f6e5f64656e6965640a656d69745f6576656e740a616464726573735f6f660e616c72656164795f657869737473036e657704736f6d65046e6f6e65036164640d72656769737465725f636f696e106e65775f6576656e745f68616e646c6506626f72726f7704726561641169735f706172616c6c656c697a61626c65067377697463680000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000030804000000000000000308050000000000000003080b000000000000000308070000000000000003080a0000000000000003080600000000000000030809000000000000000410ffffffffffffffffffffffffffffffff05200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630de060a01000000000000001b45434f494e5f494e464f5f414444524553535f4d49534d415443486541646472657373206f66206163636f756e74207768696368206973207573656420746f20696e697469616c697a65206120636f696e2060436f696e547970656020646f65736e2774206d6174636820746865206465706c6f796572206f66206d6f64756c6502000000000000001c45434f494e5f494e464f5f414c52454144595f5055424c49534845442b60436f696e547970656020697320616c726561647920696e697469616c697a6564206173206120636f696e03000000000000001845434f494e5f494e464f5f4e4f545f5055424c49534845442c60436f696e5479706560206861736e2774206265656e20696e697469616c697a6564206173206120636f696e04000000000000001d45434f494e5f53544f52455f414c52454144595f5055424c4953484544394163636f756e7420616c7265616479206861732060436f696e53746f726560207265676973746572656420666f722060436f696e547970656005000000000000001945434f494e5f53544f52455f4e4f545f5055424c4953484544344163636f756e74206861736e277420726567697374657265642060436f696e53746f72656020666f722060436f696e547970656006000000000000001545494e53554646494349454e545f42414c414e4345284e6f7420656e6f75676820636f696e7320746f20636f6d706c657465207472616e73616374696f6e07000000000000001d454445535452554354494f4e5f4f465f4e4f4e5a45524f5f544f4b454e1d43616e6e6f742064657374726f79206e6f6e2d7a65726f20636f696e73090000000000000011455a45524f5f434f494e5f414d4f554e541a436f696e20616d6f756e742063616e6e6f74206265207a65726f0a00000000000000074546524f5a454e3b436f696e53746f72652069732066726f7a656e2e20436f696e732063616e6e6f74206265206465706f7369746564206f722077697468647261776e0b000000000000002245434f494e5f535550504c595f555047524144455f4e4f545f535550504f525445444543616e6e6f7420757067726164652074686520746f74616c20737570706c79206f6620636f696e7320746f20646966666572656e7420696d706c656d656e746174696f6e2e000201360101020133030202042c08093008091a022f0b0a01080b030204020b010109003801390b0c0108043b0b0c0108080402013c03050201360106020136010702013d010802013c03031c011c021c001c051c061c00010001071b0a0b00111f070b2a070f000c020b010b0215020101000103010c0a003800030607041120270b003d0037003701140202010001021d1e0b003a010c020a0206000000000000000024030a070911212738013c0236020c030a032e38020313051b0b0338030c040b040b02351124051d0b03010203010002020323140a0106000000000000000021030505080b0201020b003c000c030b0336000b0138040c040b040b0238050204000000240538060c000e001126020501000102010538013d02370314020601000103261f0a003800030607041120270b003c000c020a023704142003130b020107071127270a0236050e01370114120438070b0236000b013808020701000001040b003a0301020801000001040b003a0401020901000001040b003a0501020a010000030b0b003a010c010b0106000000000000000021030a0706112127020b01000001160a003701140a0126030b0b000107081121270a003701140a01170b003601150b013901020c010000030b0a003701140c010600000000000000000b003601150b013901020d0104010326080b003c000c02080b02360415020e01000001080b000b010b020b030b04093809020f00000029360a0011290c0a38010a0a21030c0b000107001121270b0a3b022003150b00010701112a270b010c090b020c080b030c070b04031e0524070a0b05112b380a0c060526380b0c060b090b080b070b0639020c0b0b000b0b3f02093903093904093905021003000001070a00111f0b000912072d070211030000010a0a00111f0b000b010b020b030b04083809021201000001030b003b000213010000010338013b020214010000010e0a003701140e01370114160b003601150b013a01010215010001022c1d0a000600000000000000002103050507380c0238013c0236020c020a022e3802031005180b0238030c030b030a0035112e051a0b02010b003901021601000102010538013d0237061402170100002d1b0a0011290c010a01380020030c0b00010703112a270b01380d0600000000000000003901090a00380e0a00380f39000c020b000b023f00021801000102301838013d0237020c010a013802030805120b0138100c020b0211320c030b0338110c0005160b010138120c000b00021901000102010538013d02370714021a010401030b080b000b0238130c030b010b033814021b0104020207342d0b0011290c0138010a0121030a0700112127070b2a07100014031207051127270b013c0236020c020a022e3802031b052a0b0238030c030a032e113320032405270b03113405290b0301052c0b0201021c01000001040b00370114021d0100010336200b0011290c020a023800030907041120270b023c000c030a033704142003160b030107071127270a0336080a01120838150b0336000b013804021e01000001030600000000000000003901020700030001000203020203010302020002010303011c021c031c041c051c061c071c081c091c0000000100", + "abi": { + "address": "0x1", + "name": "coin", + "friends": [ + "0x1::aptos_coin", + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "allow_supply_upgrades", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "bool" + ], + "return": [] + }, + { + "name": "balance", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "burn", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::Coin", + "&0x1::coin::BurnCapability" + ], + "return": [] + }, + { + "name": "burn_from", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address", + "u64", + "&0x1::coin::BurnCapability" + ], + "return": [] + }, + { + "name": "decimals", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "u8" + ] + }, + { + "name": "deposit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address", + "0x1::coin::Coin" + ], + "return": [] + }, + { + "name": "destroy_burn_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::BurnCapability" + ], + "return": [] + }, + { + "name": "destroy_freeze_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::FreezeCapability" + ], + "return": [] + }, + { + "name": "destroy_mint_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::MintCapability" + ], + "return": [] + }, + { + "name": "destroy_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::Coin" + ], + "return": [] + }, + { + "name": "extract", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::coin::Coin", + "u64" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "extract_all", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::coin::Coin" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "freeze_coin_store", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address", + "&0x1::coin::FreezeCapability" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "u8", + "bool" + ], + "return": [ + "0x1::coin::BurnCapability", + "0x1::coin::FreezeCapability", + "0x1::coin::MintCapability" + ] + }, + { + "name": "initialize_supply_config", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize_with_parallelizable_supply", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "u8", + "bool" + ], + "return": [ + "0x1::coin::BurnCapability", + "0x1::coin::FreezeCapability", + "0x1::coin::MintCapability" + ] + }, + { + "name": "is_account_registered", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_coin_initialized", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "bool" + ] + }, + { + "name": "merge", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::coin::Coin", + "0x1::coin::Coin" + ], + "return": [] + }, + { + "name": "mint", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "u64", + "&0x1::coin::MintCapability" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "register", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "supply", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "symbol", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "transfer", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + }, + { + "name": "upgrade_supply", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::coin::Coin" + ], + "return": [ + "u64" + ] + }, + { + "name": "withdraw", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "u64" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::coin::Coin" + ] + } + ], + "structs": [ + { + "name": "BurnCapability", + "is_native": false, + "abilities": [ + "copy", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "Coin", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "value", + "type": "u64" + } + ] + }, + { + "name": "CoinInfo", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "symbol", + "type": "0x1::string::String" + }, + { + "name": "decimals", + "type": "u8" + }, + { + "name": "supply", + "type": "0x1::option::Option<0x1::optional_aggregator::OptionalAggregator>" + } + ] + }, + { + "name": "CoinStore", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "coin", + "type": "0x1::coin::Coin" + }, + { + "name": "frozen", + "type": "bool" + }, + { + "name": "deposit_events", + "type": "0x1::event::EventHandle<0x1::coin::DepositEvent>" + }, + { + "name": "withdraw_events", + "type": "0x1::event::EventHandle<0x1::coin::WithdrawEvent>" + } + ] + }, + { + "name": "DepositEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "FreezeCapability", + "is_native": false, + "abilities": [ + "copy", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "MintCapability", + "is_native": false, + "abilities": [ + "copy", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "SupplyConfig", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "allow_upgrades", + "type": "bool" + } + ] + }, + { + "name": "WithdrawEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "amount", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010002020208030a2805322307557408c9012006e9010a10f30198010a8b030d0c98037e0d9604060f9c040200010002060000030700000400010000050203000006040500000704060000080708000009040300000a090500000b0906000205070301080002050301080101060800010301050206080006080101010106080100076163636f756e740467756964044755494402494406637265617465096372656174655f69640c6372656174696f6e5f6e756d0f63726561746f725f616464726573730565715f69640269640f69645f6372656174696f6e5f6e756d1269645f63726561746f725f616464726573730461646472000000000000000000000000000000000000000000000000000000000000000103080000000000000000126170746f733a3a6d657461646174615f763083010100000000000000001d45475549445f47454e455241544f525f4e4f545f5055424c49534845445b475549442067656e657261746f72206d757374206265207075626c6973686564206168656164206f66206669727374207573616765206f6620606372656174655f776974685f6361706162696c697479602066756e6374696f6e2e00020109080101020206030c0500030000050d0a01140c020a02060100000000000000160b01150b020b001201120002010100000a040b010b00120102020100000a050b00100010011402030100000a050b00100010021402040100000a050b0010000b012102050100000a040b0010001402060100000a040b0010011402070100000a040b0010021402000001000101000000", + "abi": { + "address": "0x1", + "name": "guid", + "friends": [ + "0x1::account" + ], + "exposed_functions": [ + { + "name": "create", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "&mut u64" + ], + "return": [ + "0x1::guid::GUID" + ] + }, + { + "name": "create_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "u64" + ], + "return": [ + "0x1::guid::ID" + ] + }, + { + "name": "creation_num", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID" + ], + "return": [ + "u64" + ] + }, + { + "name": "creator_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID" + ], + "return": [ + "address" + ] + }, + { + "name": "eq_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID", + "&0x1::guid::ID" + ], + "return": [ + "bool" + ] + }, + { + "name": "id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID" + ], + "return": [ + "0x1::guid::ID" + ] + }, + { + "name": "id_creation_num", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::ID" + ], + "return": [ + "u64" + ] + }, + { + "name": "id_creator_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::ID" + ], + "return": [ + "address" + ] + } + ], + "structs": [ + { + "name": "GUID", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x1::guid::ID" + } + ] + }, + { + "name": "ID", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "creation_num", + "type": "u64" + }, + { + "name": "addr", + "type": "address" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000601000203020a050c03070f170826200c4608000000010000000002000000010a02046861736808736861325f32353608736861335f3235360000000000000000000000000000000000000000000000000000000000000001000102000101020000", + "abi": { + "address": "0x1", + "name": "hash", + "friends": [], + "exposed_functions": [ + { + "name": "sha2_256", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "vector" + ] + }, + { + "name": "sha3_256", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "vector" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000801000203020b040d02050f09071835084d200c6d0f0f7c04000200030001000004000201000101010a0201050109000004636f64650c6761735f7363686564756c65047574696c12616464726573735f66726f6d5f62797465730a66726f6d5f627974657300000000000000000000000000000000000000000000000000000000000000010001000003030b00380002010302000000000100", + "abi": { + "address": "0x1", + "name": "util", + "friends": [ + "0x1::code", + "0x1::gas_schedule" + ], + "exposed_functions": [ + { + "name": "address_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "address" + ] + }, + { + "name": "from_bytes", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "vector" + ], + "return": [ + "T0" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d010014021418032c7d04a9010e05b7016e07a502a60608cb082006eb086210cd09c8020a950c2f0cc40cb0030df40f0e0f821002000100020003000400050006000700080009000a000b0800000c0600000d0600031004010601042307010000000e000100000f020100001103010000120104000013010400001405010000150501000824070100062508090002260404000427010a0100062808040004290b0a0100032a0d040106062b0e0100052c010400072d040100052e010400052f0101000930110100023104040003321201010608330701000134071301060a040c040d0c150c170c17141514080c050303050a030a020300010c03060c070b030108010801010302060c03040107080008010b04010301060c01050101010b0401090001090001080101060b03010900020b0401030a030207080005010203060c050302070b030109000900010b0301090001080202070800030767656e6573697305626c6f636b076163636f756e74056572726f72056576656e74066f7074696f6e0f7265636f6e66696775726174696f6e057374616b650d73746174655f73746f726167651073797374656d5f6164647265737365730974696d657374616d700d426c6f636b5265736f757263650d4e6577426c6f636b4576656e741855706461746545706f6368496e74657276616c4576656e740e626c6f636b5f70726f6c6f67756518656d69745f67656e657369735f626c6f636b5f6576656e740b4576656e7448616e646c6514656d69745f6e65775f626c6f636b5f6576656e74186765745f63757272656e745f626c6f636b5f686569676874176765745f65706f63685f696e74657276616c5f736563730a696e697469616c697a651f7570646174655f65706f63685f696e74657276616c5f6d6963726f73656373066865696768740e65706f63685f696e74657276616c106e65775f626c6f636b5f6576656e74731c7570646174655f65706f63685f696e74657276616c5f6576656e747304686173680565706f636805726f756e641b70726576696f75735f626c6f636b5f766f7465735f6269747665630870726f706f736572176661696c65645f70726f706f7365725f696e64696365731174696d655f6d6963726f7365636f6e6473126f6c645f65706f63685f696e74657276616c126e65775f65706f63685f696e74657276616c064f7074696f6e096173736572745f766d1a69735f63757272656e745f65706f63685f76616c696461746f72117065726d697373696f6e5f64656e696564046e6f6e65136765745f76616c696461746f725f696e64657804736f6d6507636f756e7465721d7570646174655f706572666f726d616e63655f737461746973746963730d63757272656e745f65706f63680c6f6e5f6e65775f626c6f636b196c6173745f7265636f6e66696775726174696f6e5f74696d650b7265636f6e666967757265127570646174655f676c6f62616c5f74696d6510696e76616c69645f617267756d656e740a656d69745f6576656e74166173736572745f6170746f735f6672616d65776f726b106e65775f6576656e745f68616e646c6500000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000030803000000000000000520000000000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630b30203010000000000000031454e554d5f4e45575f424c4f434b5f4556454e54535f444f45535f4e4f545f4d415443485f424c4f434b5f48454947485447546865206e756d626572206f66206e657720626c6f636b206576656e747320646f6573206e6f7420657175616c207468652063757272656e7420626c6f636b206865696768742e02000000000000001145494e56414c49445f50524f504f5345525c416e20696e76616c69642070726f706f736572207761732070726f76696465642e204578706563746564207468652070726f706f73657220746f2062652074686520564d206f7220616e206163746976652076616c696461746f722e030000000000000014455a45524f5f45504f43485f494e54455256414c1b45706f636820696e74657276616c2063616e6e6f7420626520302e00020416031703180b03010801190b030108020102081a051b031c0316031d0a021e051f0a03200302020221032203000000010006470e0011070a040703210307050a080c08050d0a0411080c080b080312070011092738000c0b0a040703220319051d0a04110b38010c0b07042a000c090a09100038020a090f01150b010b020b030a091001140b060b040a050a0712010c0a0e000a090f000b0a11020b0b0b05110e110f11100b071111170b09100214260345054611120201000001000f1107042a000c010e000b010f0007030600000000000000000600000000000000000600000000000000004010000000000000000007034004000000000000000006000000000000000012011102020200000001190b000e021003140e0210041411130a012e38020e021005142103150b010107011114270b010b023803020301000100010507042b00100114020401000100010707042b001002140640420f00000000001a020503000001150a0011160a0106000000000000000024030b0b000107021114270a000600000000000000000b010a0038040b00380512002d00020601000100151b0b0011160a01060000000000000000240309070211142707042a000c020a021002140c030a010a020f02150b020f060b030b0112023806020002000000010105010701030003000000", + "abi": { + "address": "0x1", + "name": "block", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "get_current_block_height", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "get_epoch_interval_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "update_epoch_interval_microsecs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "BlockResource", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "height", + "type": "u64" + }, + { + "name": "epoch_interval", + "type": "u64" + }, + { + "name": "new_block_events", + "type": "0x1::event::EventHandle<0x1::block::NewBlockEvent>" + }, + { + "name": "update_epoch_interval_events", + "type": "0x1::event::EventHandle<0x1::block::UpdateEpochIntervalEvent>" + } + ] + }, + { + "name": "NewBlockEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "hash", + "type": "address" + }, + { + "name": "epoch", + "type": "u64" + }, + { + "name": "round", + "type": "u64" + }, + { + "name": "height", + "type": "u64" + }, + { + "name": "previous_block_votes_bitvec", + "type": "vector" + }, + { + "name": "proposer", + "type": "address" + }, + { + "name": "failed_proposer_indices", + "type": "vector" + }, + { + "name": "time_microseconds", + "type": "u64" + } + ] + }, + { + "name": "UpdateEpochIntervalEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "old_epoch_interval", + "type": "u64" + }, + { + "name": "new_epoch_interval", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000601000203020b050d0507121e0830200c5008000000010001010000020101000106090000056465627567057072696e74117072696e745f737461636b5f74726163650000000000000000000000000000000000000000000000000000000000000001000102000101020000", + "abi": { + "address": "0x1", + "name": "debug", + "friends": [], + "exposed_functions": [ + { + "name": "print", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0" + ], + "return": [] + }, + { + "name": "print_stack_trace", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b05000000070100020302410543060749b7010880022006a00282010ca203ab010000000100000000020000000003010000000400000000050000000006000000000700000000080000000009000000000a000000000b000000000c000000000d000000010302030300056572726f720761626f727465640e616c72656164795f6578697374730963616e6f6e6963616c08696e7465726e616c10696e76616c69645f617267756d656e740d696e76616c69645f7374617465096e6f745f666f756e640f6e6f745f696d706c656d656e7465640c6f75745f6f665f72616e6765117065726d697373696f6e5f64656e696564127265736f757263655f6578686175737465640f756e61757468656e746963617465640b756e617661696c61626c650000000000000000000000000000000000000000000000000000000000000001030807000000000000000308080000000000000003080a0000000000000003080b0000000000000003080100000000000000030803000000000000000308060000000000000003080c000000000000000308020000000000000003080500000000000000030809000000000000000308040000000000000003080d0000000000000000010000020407000b0011020201010000020407010b001102020201000002060b0031102f0b01160203010000020407030b0011020204010000020407040b0011020205010000020407050b0011020206010000020407060b0011020207010000020407070b0011020208010000020407080b0011020209010000020407090b001102020a0100000204070a0b001102020b0100000204070b0b001102020c0100000204070c0b0011020200", + "abi": { + "address": "0x1", + "name": "error", + "friends": [], + "exposed_functions": [ + { + "name": "aborted", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "already_exists", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "canonical", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "internal", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "invalid_argument", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "invalid_state", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "not_found", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "not_implemented", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "out_of_range", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "permission_denied", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "resource_exhausted", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "unauthenticated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "unavailable", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000602060a03102a043a04053e30076e7908e701200a8702080b8f02020c9102660df702040efb02040fff020200010002000300040401060102080600000500010106000602030106000704030106000300050106000906020106000a07030106010b090a01000606050801060b000109000103010b000109000002070b00010900090001060801010801030a0203090001090001060900010a02076163636f756e74056576656e740362637304677569640b4576656e7448616e646c6507636f756e7465720e64657374726f795f68616e646c650a656d69745f6576656e740447554944106e65775f6576656e745f68616e646c651477726974655f746f5f6576656e745f73746f726508746f5f62797465730000000000000000000000000000000000000000000000000000000000000001000202050303080100080001000003040b00370014020101000003050b003a000101020201000003110a00370138000a003700140b0138010a00370014060100000000000000160b00360015020301000003030b003701020403000003040600000000000000000b00390002050002000000000100080108000000", + "abi": { + "address": "0x1", + "name": "event", + "friends": [ + "0x1::account" + ], + "exposed_functions": [ + { + "name": "counter", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&0x1::event::EventHandle" + ], + "return": [ + "u64" + ] + }, + { + "name": "destroy_handle", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "0x1::event::EventHandle" + ], + "return": [] + }, + { + "name": "emit_event", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&mut 0x1::event::EventHandle", + "T0" + ], + "return": [] + }, + { + "name": "guid", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&0x1::event::EventHandle" + ], + "return": [ + "&0x1::guid::GUID" + ] + }, + { + "name": "new_event_handle", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "0x1::guid::GUID" + ], + "return": [ + "0x1::event::EventHandle" + ] + } + ], + "structs": [ + { + "name": "EventHandle", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "fields": [ + { + "name": "counter", + "type": "u64" + }, + { + "name": "guid", + "type": "0x1::guid::GUID" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01001a021a7a039401b80304cc0450059c058f0607ab0b9e1708c9222006e922ea0110d3249c0b0aef2fa0020c8f32821e0d9150440fd550060003000400050006000700080009000a000b000c000d000e000f0010060000110800001206000013060000140600001506000016060000170c000018060000190600001a0600001b0600001c0800001d0600001e0600001f0f000020070000210800002208000023060004250401000102260800072f0701000004500501000109560b00067004010601039f01070003a0010700002400010000270201000028030101000029040100002a050600002b070100002c080100002d090600002e0a080000300b0c0000310d0e000032060f000033040600003404040000350406000036100600003704040000381104000039040600003a041200003b041300003c040600003d040600003e0a0100003f11010000400a010000410a010000421401000043150100004404160000451701000046170100004717010000480101000049000100004a180100004b190100004c170100004d1a0100004e170100004f1a010000511b0100005200010000531c0100005419010000551d010000571e010000580601000059000100005a181f00088e010a0400045900220100048f01240601000590010606000791012516010004920126010100099301012700099401280f000695012a0101060c96012c1601000497012f2201000798012b300100079901013001000b9a01010600099b012806000a9c010a0100049d0101220100019e010a3b010603a10147480003a201494a0009a30128160007a4014f2b01000ca501502b010004a4015322010005a60106060009a701280f0004a8015b22010009a90128060004aa015e01010033213421360637213a293b2b3c213d063e063a374221433a433c4329433d433e433f433743404341434243434344364b3b453a404706480e3a44020e49213a3d3a3e3a3c3a423a3f4c213a414e213a4302060c0300020608070b1401081502070a0900070a09000105050303030303010302060c080701080705070b140108150303030301060c02060a081005010b160103030506080c080f0108100203030106080c010608070403030303030a020a020a0204060c03050505060c0a020a020a020a02010102060c05020608070304060c050a020a02020608070502060c0b170108150203060807020b1601030a030306081105060818010b140108150205060807010815010b140109000a0b1601030b16010301081803030507080c0708120301060b1401090001060b1601090002070b140109000b140109000108180106081801080002070b19010900090001090001060a0900030304040503060b170108150b1401081503030203060b17010900010b1601090002060804060a08040108040501030303030106080f070b1601030b1601030b160103030303060812040818030507080c01080307020a08100a08100a08100404060c150b140108150b190108000b190108080b1901080a0b1901080e0b190108030b190108050b190108020b1901080d0b190108130b190108060b14010815060c0b140108150b140108150305050b190108090b1901080b05010809010b1901090001080b01080801080a01080e01080501080201080d010813010806010203081a0a020b1601081b010a0201081a020a0206081a010b1601081b01081b0201030c0507080c080f070a08100818030307080c07080f07081203030708180b1601030b16010307080c08100708120401070b1601090002070a0900031e0708110507080c080f050608180708110506081808180303030303030308100a0810070810050307080c07080c06081006081007080f0307081107081203050b1401081507080c02070b140109000306081a0a020b1601081b0a0207080c07080f0107080c03050507080c030507080c0b14010815040a020a0207080c07080f0803030307080407080403030708110906080403030303030307080c06080f01070b140109000308180708120403050b1401081506080702050b1401090005010b140108150507080c0305626c6f636b0767656e657369730f7265636f6e66696775726174696f6e057374616b65076163636f756e740a6170746f735f636f696e08626c73313233383104636f696e056572726f72056576656e74066f7074696f6e067369676e65720e7374616b696e675f636f6e6669671073797374656d5f6164647265737365730974696d657374616d7006766563746f720d4164645374616b654576656e74154170746f73436f696e4361706162696c69746965731644697374726962757465526577617264734576656e7413496e6372656173654c6f636b75704576656e741e496e646976696475616c56616c696461746f72506572666f726d616e6365154a6f696e56616c696461746f725365744576656e74164c6561766556616c696461746f725365744576656e740f4f776e65724361706162696c69747914526561637469766174655374616b654576656e741f526567697374657256616c696461746f7243616e6469646174654576656e7417526f74617465436f6e73656e7375734b65794576656e74105365744f70657261746f724576656e74095374616b65506f6f6c10556e6c6f636b5374616b654576656e74265570646174654e6574776f726b416e6446756c6c6e6f64654164647265737365734576656e740f56616c696461746f72436f6e6669670d56616c696461746f72496e666f1456616c696461746f72506572666f726d616e63650c56616c696461746f725365741257697468647261775374616b654576656e74096164645f7374616b6504436f696e094170746f73436f696e126164645f7374616b655f776974685f63617006617070656e64186173736572745f7374616b655f706f6f6c5f6578697374731863616c63756c6174655f726577617264735f616d6f756e74116465706f7369745f6f776e65725f6361701164657374726f795f6f776e65725f63617012646973747269627574655f7265776172647311657874726163745f6f776e65725f636170064f7074696f6e0e66696e645f76616c696461746f721767656e65726174655f76616c696461746f725f696e666f216765745f63757272656e745f65706f63685f70726f706f73616c5f636f756e74731e6765745f63757272656e745f65706f63685f766f74696e675f706f776572136765745f64656c6567617465645f766f7465720f6765745f6c6f636b75705f736563731b6765745f6e6578745f65706f63685f766f74696e675f706f7765720c6765745f6f70657261746f72166765745f6f776e65645f706f6f6c5f61646472657373196765745f72656d61696e696e675f6c6f636b75705f73656373096765745f7374616b65146765745f76616c696461746f725f636f6e666967136765745f76616c696461746f725f696e646578136765745f76616c696461746f725f73746174650f696e6372656173655f6c6f636b757018696e6372656173655f6c6f636b75705f776974685f6361700a696e697469616c697a6510696e697469616c697a655f6f776e657216696e697469616c697a655f7374616b655f6f776e657214696e697469616c697a655f76616c696461746f721a69735f63757272656e745f65706f63685f76616c696461746f72126a6f696e5f76616c696461746f725f7365741b6a6f696e5f76616c696461746f725f7365745f696e7465726e616c136c656176655f76616c696461746f725f7365740c6f6e5f6e65775f65706f636810726561637469766174655f7374616b6519726561637469766174655f7374616b655f776974685f63617014726f746174655f636f6e73656e7375735f6b6579137365745f64656c6567617465645f766f7465721c7365745f64656c6567617465645f766f7465725f776974685f6361700c7365745f6f70657261746f72157365745f6f70657261746f725f776974685f6361700e4d696e744361706162696c6974791973746f72655f6170746f735f636f696e5f6d696e745f63617006756e6c6f636b0f756e6c6f636b5f776974685f636170257570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365731d7570646174655f706572666f726d616e63655f737461746973746963730d5374616b696e67436f6e666967117570646174655f7374616b655f706f6f6c1c7570646174655f766f74696e675f706f7765725f696e6372656173650877697468647261771177697468647261775f776974685f6361700c706f6f6c5f616464726573730c616d6f756e745f6164646564086d696e745f6361700e726577617264735f616d6f756e74156f6c645f6c6f636b65645f756e74696c5f73656373156e65775f6c6f636b65645f756e74696c5f73656373147375636365737366756c5f70726f706f73616c73106661696c65645f70726f706f73616c7306616d6f756e74146f6c645f636f6e73656e7375735f7075626b6579146e65775f636f6e73656e7375735f7075626b65790c6f6c645f6f70657261746f720c6e65775f6f70657261746f720661637469766508696e6163746976650e70656e64696e675f6163746976651070656e64696e675f696e616374697665116c6f636b65645f756e74696c5f73656373106f70657261746f725f616464726573730f64656c6567617465645f766f7465721b696e697469616c697a655f76616c696461746f725f6576656e74730b4576656e7448616e646c65137365745f6f70657261746f725f6576656e7473106164645f7374616b655f6576656e747317726561637469766174655f7374616b655f6576656e74731b726f746174655f636f6e73656e7375735f6b65795f6576656e74732c7570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365735f6576656e747316696e6372656173655f6c6f636b75705f6576656e7473196a6f696e5f76616c696461746f725f7365745f6576656e747319646973747269627574655f726577617264735f6576656e747313756e6c6f636b5f7374616b655f6576656e74731577697468647261775f7374616b655f6576656e74731a6c656176655f76616c696461746f725f7365745f6576656e74730f616d6f756e745f756e6c6f636b6564156f6c645f6e6574776f726b5f616464726573736573156e65775f6e6574776f726b5f616464726573736573166f6c645f66756c6c6e6f64655f616464726573736573166e65775f66756c6c6e6f64655f61646472657373657310636f6e73656e7375735f7075626b6579116e6574776f726b5f6164647265737365731266756c6c6e6f64655f6164647265737365730f76616c696461746f725f696e64657804616464720c766f74696e675f706f77657206636f6e6669670a76616c696461746f727310636f6e73656e7375735f736368656d65116163746976655f76616c696461746f727312746f74616c5f766f74696e675f706f77657213746f74616c5f6a6f696e696e675f706f77657210616d6f756e745f77697468647261776e0a616464726573735f6f660576616c756510696e76616c69645f617267756d656e740769735f736f6d65056d6572676503676574126765745f72657175697265645f7374616b650a656d69745f6576656e740869735f656d707479046d696e7404736f6d65046e6f6e650b6e6f775f7365636f6e64731d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e166173736572745f6170746f735f6672616d65776f726b047a65726f106e65775f6576656e745f68616e646c651150726f6f664f66506f7373657373696f6e105075626c69634b657957697468506f501e70726f6f665f6f665f706f7373657373696f6e5f66726f6d5f62797465731e7075626c69635f6b65795f66726f6d5f62797465735f776974685f706f701e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e676507657874726163740b737761705f72656d6f7665096e6f745f666f756e640f6765745f7265776172645f726174650b657874726163745f616c6c1f6765745f766f74696e675f706f7765725f696e6372656173655f6c696d6974076465706f73697400000000000000000000000000000000000000000000000000000000000000010308060000000000000003080a0000000000000003080f00000000000000030810000000000000000308080000000000000003080d000000000000000308010000000000000003080c000000000000000308070000000000000003080b0000000000000003080e0000000000000003080900000000000000030814000000000000000308050000000000000003080400000000000000030803000000000000000308120000000000000003081300000000000000030802000000000000000308000001000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630870b13010000000000000014454c4f434b5f54494d455f544f4f5f53484f5254274c6f636b757020706572696f642069732073686f72746572207468616e2072657175697265642e0200000000000000154557495448445241575f4e4f545f414c4c4f574544305769746864726177206e6f7420616c6c6f7765642c20746865207374616b65206973207374696c6c206c6f636b65642e0300000000000000114556414c494441544f525f434f4e4649471f56616c696461746f7220436f6e666967206e6f74207075626c69736865642e04000000000000000e455354414b455f544f4f5f4c4f57274e6f7420656e6f756768207374616b6520746f206a6f696e2076616c696461746f72207365742e05000000000000000f455354414b455f544f4f5f4849474825546f6f206d756368207374616b6520746f206a6f696e2076616c696461746f72207365742e06000000000000001945414c52454144595f4143544956455f56414c494441544f52344163636f756e7420697320616c726561647920612076616c696461746f72206f722070656e64696e672076616c696461746f722e07000000000000000e454e4f545f56414c494441544f521b4163636f756e74206973206e6f7420612076616c696461746f722e08000000000000000f454c4153545f56414c494441544f521c43616e27742072656d6f7665206c6173742076616c696461746f722e090000000000000012455354414b455f455843454544535f4d415824546f74616c207374616b652065786365656473206d6178696d756d20616c6c6f7765642e0a000000000000001345414c52454144595f52454749535445524544374163636f756e7420697320616c7265616479207265676973746572656420617320612076616c696461746f722063616e6469646174652e0b0000000000000015454e4f5f434f494e535f544f5f57495448445241573b4e6f20636f696e7320696e20696e61637469766520737461746520746f2077697468647261772066726f6d2073706563696669656420706f6f6c2e0c000000000000000d454e4f545f4f50455241544f52344163636f756e7420646f6573206e6f74206861766520746865207269676874206f70657261746f72206361706162696c6974792e0d0000000000000013454c4f434b5f54494d455f544f4f5f4c4f4e47254c6f636b757020706572696f64206973206c6f6e676572207468616e20616c6c6f7765642e0e000000000000002d454e4f5f504f53545f47454e455349535f56414c494441544f525f5345545f4348414e47455f414c4c4f5745444256616c696461746f72732063616e6e6f74206a6f696e206f72206c6561766520706f73742067656e65736973206f6e20746869732074657374206e6574776f726b2e0f000000000000001345494e56414c49445f5055424c49435f4b45591c496e76616c696420636f6e73656e737573207075626c6963206b657910000000000000001545494e56414c49445f5354414b455f414d4f554e5422496e76616c6964207374616b6520616d6f756e74202875737561756c6c792030292e1200000000000000184556414c494441544f525f5345545f544f4f5f4c415247451f56616c696461746f7220736574206578636565647320746865206c696d697413000000000000002445564f54494e475f504f5745525f494e4352454153455f455843454544535f4c494d495444566f74696e6720706f77657220696e6372656173652068617320657863656564656420746865206c696d697420666f7220746869732063757272656e742065706f63682e14000000000000001a455354414b455f504f4f4c5f444f45535f4e4f545f4558495354375374616b6520706f6f6c20646f6573206e6f74206578697374206174207468652070726f766964656420706f6f6c20616464726573732e0002025b055c030102015d0b170108150202025b055e030302035b055f036003040202610362030502015b050602015b050702015b050802025b0563030902015b050a02035b05640a02650a020b02035b05660567050c0213680b14010815690b140108156a0b140108156b0b140108156c036d056e056f0b19010809710b1901080b720b19010800730b19010808740b1901080a750b1901080e760b19010803770b19010805780b19010802790b1901080d7a0b190108137b0b190108060d02025b057c030e02055b057d0a027e0a027f0a0280010a020f020481010a0282010a0283010a028401031002038501058601038701080f11020188010a08041202068901028a010a08106b0a08106a0a08108b01048c01041302025b058d010300010403070c12200c0a0011320c020b022b070c030b030b000b013800110102010100020c1223580b001000140c080a0811030e0138010c060a06060000000000000000240310070311352707142a120c0a0a0a10010a0811090c020e023802031c05210b0a01080c0405290b0a10020a0811090c030e0338020c040b04032c052e0a06112f0a082a0c0c090a08111d0335053a0a090f030b013803053e0a090f040b01380311380c050e0511390c07010a092e110f0c0b0b0b0b072503510b0901070b1135270b090f050b080b0612003804020200000001100a012e3805200306050b0a000a01452b442b05000b01010b0001020300000001070b00290c0306070c11352702040000002d1e0b00350b0335180b0135180c070b04350b0235180c060a063200000000000000000000000000000000240314051a0b070b061a340c05051c0600000000000000000c050b05020501000001040b000b012d07020601000001040b001307010207000001012e2a0a002e38010c090a0906000000000000000024030905110b090b010b020b030b0411040c0505130600000000000000000c050b050c080a0806000000000000000024031a052607142b0110060c060a080b0638060c070b000b07380305280b00010b0802080100010701040b0011322c0702090000000f210600000000000000000c020a00410e0c030a020a0323030a051d0a000a02420e1007140a0121031305180b00010b023807020b02060100000000000000160c0205050b00013808020a00000006080b01110f0c030b000b030b021210020b01000111310f07142b1110080c020b020b0042320c010a011009140b01100a14020c0100020c1233250a0011160c050a050712210308050b080c01050f0b05070f210c010b01031205210a002b0c100438010c030b002b0c100b38010c040b030b04160c0205230600000000000000000c020b02020d0100010c01050b002b0c100c14020e0100010c01050b002b0c100d14020f000000010c0a00100338010a0010043801160b00100b38011602100100010c01050b002b0c100e14021101000001040b0010001402120100010c0f130b002b0c100d140c020a02113f25030a050d0600000000000000000c0105110b02113f170c010b0102130100010c10100b002b0c0c010a01100438010a01100f38010a01100338010b01100b380102140100010f340d0b002b0f0c010a011010140a011011140b0110121402150100010f01050b002b0f101314021601000112353307142b120c070a0710020a0011090c010e013802030c05110b070107060c0605310a0710010a0011090c020e023802031a051f0b070107120c05052f0b0710140b0011090c030e0338020328052b070f0c04052d070e0c040b040c050b050c060b060217010402070c20090b0011320c010b012b070c020b02111802180100010c36200b001000140c030a03110311380c010a032a0c0c040a04100d140c02113f0e011140160a040f0d150a040f150b030b020b04100d1412033809021903000038180a0011410a000c07400e00000000000000000c02400e00000000000000000c03400e00000000000000000c040b0731000b020b040b033200000000000000000000000000000000320000000000000000000000000000000012122d120b004032000000000000000012112d11021a00000039590a0011320c150a15290c20030c0b000107011135270a000c0d380a0c01380a0c0c380a0c0e380a0c0f0a150c110a150c120a00380b0c130a00380c0c140a00380d0c020a00380e0c030a00380f0c040a0038100c050a0038110c060a0038120c070a0038130c080a0038140c090a0038150c0a0a0038160c0b0b0d0b010b0f0b0c0b0e0600000000000000000b110b120b130b140b020b030b040b050b060b070b080b090b0a0b0b120c2d0c0b000b1512072d07021b010403070c1204280a00111a0a00404500000000000000004045000000000000000040450000000000000000060000000000000000120f2d0f0a0106000000000000000024030e05110a000b0111000a0011320c040a040a02220319051c0a000b0211270b040a0322032105250b000b03112505270b0001021c010400461c0a010c060b0211440c050b060e0511450c070d072e381703120b000107021135270a00111a0b000b010b030b04060000000000000000120f2d0f021d010001124c110b0011160c020a020712210308050b080c01050f0b02070f210c010b01021e0104030c0f12270e11380c020e021146030a0b0001070a1135270b000b01111f021f0300030c0f124d770a0111030a012a0c0c090b0011320a09100e142103110b090107071135270a011116070e21031b0b0901070011352711380c060e0611390c070c080a092e110f0c0d0a0d0b0826032e0b0901070e1135270a0d0b072503370b0901070d1135270b0d112f0a012a0f0c0a0a0a101038182003480b0a010b0901070211352707142a120c0b0a0b1001410e0a0b1002410e160c0c0b0c07132503600b0b010b0a010b090107101135270b0b0f020c050a010a090b0a140c040c030c020b050b020b032e0b04110a440e0b090f160b011205381902200104020c124e7311380c020e021146030a0b0001070a1135270a0111030a012a0c0c050b0011320a05100e1421031b0b0501070711352707142a120c070a0710020a0111090c040e043802032705470a070f020d04381a381b010b052e110f350c080a071017140a0824033905420a071017140b08170b070f1715054632000000000000000000000000000000000b070f171505720a0710010a0111090c030e03380203560b07010b050107081135270a070f010d03381a381b0c060a071001410e0600000000000000002403690b07010b050107041135270b070f140b06440e0b050f180b011206381c0221030005010c0f111251d60107142a120c1d11380c0907142a110c1c0600000000000000000c0a0a1d1001410e0c0d0a0a0a0d230313052a0a1d10010a0a420e0c180a1c0b181007140e090c050c040c000b002e0b040b05112e0b0a060100000000000000160c0a050e0600000000000000000c0c0a1d1014410e0c0f0a0c0a0f230335054c0a1d10140a0c420e0c190a1c0b191007140e090c080c070c060b062e0b070b08112e0b0c060100000000000000160c0c05300a1d0f010a1d0f02381d400e00000000000000000a1d0f14150e091139010c100e0911400c150600000000000000000c0b0600000000000000000c1b0a1d1001410e0c0e400e00000000000000000c12403200000000000000000a1c0f081532000000000000000000000000000000000a1d0f191532000000000000000000000000000000000a1d0f17150a0b0a0e23037705cf010a1d0f010a0b430e0c130b131007140c140a142a0f0c1a0a1b0a1a0f13150a142a0c0c160a140b160b1a140c030c020c010b010b022e0b03110a0c110b0b060100000000000000160c0b0e11101a140a102303a20105a30105720b1b060100000000000000160c1b0a1d1019140e11101a1435160a1d0f19150d120b11440e0a1c0f08060000000000000000060000000000000000120444320b142a0c0c170a17100d14113f2503c50105cc01113f0a15160b170f0d1505ce010b170105720b1c010b120b1d0f01150222010402070c200a0b0011320c020b022b070c030b030b01112302230100010c52240b001000140c020a0211030a022a0c0c040a010a04100b38012503140b040107031135270a040f0b0a01381e0c030a040f040b0338030b040f1b0b020b011208381f02240104020c0f54400a0111030a012a0c0c080b0011320a08100e142103110b080107071135270a01290f03190b0801070f114a270a012a0f0c090a091010140c070a020c050b0311440c040b050e0411450c060d062e381703340b09010b080107021135270a020b090f10150b080f1c0b010b070b02120a38200225010402070c200a0b0011320c020b022b070c030b030b01112602260100010c550a0b001000142a0c0c020b010b020f0c150227010402070c200a0b0011320c020b022b070c030b030b01112802280100010c56170b001000140c030a032a0c0c040a04100e140c020a010a040f0e150b040f1d0b030b020b01120b3821022903000001070a0011410b000b0112012d01022a010402070c200a0b0011320c020b022b070c030b010b03112b022b0100010c57210a0006000000000000000021030505080b0101020b011000140c020a0211030a022a0c0c030a030f040a00381e0c040a030f0b0b0438030b030f1e0b020b00120d3822022c0104020c0f58360a0111030a012a0c0c060b0011320a06100e142103110b060107071135270a01290f03190b0601070f114a270a012a0f0c070a071011140c050a020a070f11150a071012140c040a030b070f12150b060f1f0b010b050b020b040b03120e3823022d03000111594907142a110c090a09100841320c080e003802030b05200d00381a0c020a020a0823031305200a090f080b0243320c050a05100914060100000000000000160b050f09150600000000000000000c030e0141060c040a030a0423032a05460e010a034206140c070a070a0823033405410a090f080b0743320c060a06100a14060100000000000000160b060f0a150b03060100000000000000160c0305250b0901022e000003010c0f5a4b0a012a0c0c0a0a012b0f0c0b0b0010080b0b10131442320c030a031009140c050a031009140b03100a14160c060b02114b0c090c080a0a0f040a050a060a080a0911070c070b070a0a0f0b0b050b060b080b091107160c070a0a0f040a0a0f03382438030a0a100d140c04113f0b0426033e05440a0a0f0f0a0a0f0b382438030b0a0f200b010b0712023825022f000001125c2c07142a120c0211380c010e01114d350c030a021017140b0035160a020f17150a02101914320000000000000000000000000000000024031905290a021017140b021019140b031832640000000000000000000000000000001a2503280711113527052b0b02010230010403070c125d0e0b0011320c020a022b070c040b040b0111310c030b020b03382602310100020c125f420b001000140c040a0411030a042a0c0c050a041116070e21030f0516113f0a05100d14260c020518090c020b02031b05230a050f0b38240c030a050f0f0b0338030a05100f38010c060a010a0624032c052e0b060c010a010600000000000000002403370b050107091135270a050f210b040a01121338270b050f0f0b01381e020700120112030c020c000c09010010001100040004010c030c060c040c050c010f000f010f020f0312020c0d0c0e12050c12120410010c0a0c0b0c080c100c0c0c0f0c1100000001000200", + "abi": { + "address": "0x1", + "name": "stake", + "friends": [ + "0x1::block", + "0x1::genesis", + "0x1::reconfiguration" + ], + "exposed_functions": [ + { + "name": "add_stake", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "add_stake_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + }, + { + "name": "deposit_owner_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "destroy_owner_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "extract_owner_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "0x1::stake::OwnerCapability" + ] + }, + { + "name": "get_current_epoch_proposal_counts", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64", + "u64" + ] + }, + { + "name": "get_current_epoch_voting_power", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_delegated_voter", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "address" + ] + }, + { + "name": "get_lockup_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_operator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "address" + ] + }, + { + "name": "get_owned_pool_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability" + ], + "return": [ + "address" + ] + }, + { + "name": "get_remaining_lockup_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64", + "u64", + "u64", + "u64" + ] + }, + { + "name": "get_validator_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "vector", + "vector", + "vector" + ] + }, + { + "name": "get_validator_index", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_validator_state", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "increase_lockup", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "increase_lockup_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize_stake_owner", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "address", + "address" + ], + "return": [] + }, + { + "name": "initialize_validator", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "is_current_epoch_validator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "join_validator_set", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "join_validator_set_internal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "leave_validator_set", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "on_new_epoch", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + }, + { + "name": "reactivate_stake", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "reactivate_stake_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "u64" + ], + "return": [] + }, + { + "name": "rotate_consensus_key", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "set_delegated_voter", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "set_delegated_voter_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "address" + ], + "return": [] + }, + { + "name": "set_operator", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "set_operator_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "address" + ], + "return": [] + }, + { + "name": "store_aptos_coin_mint_cap", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + }, + { + "name": "unlock", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "unlock_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "&0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "update_network_and_fullnode_addresses", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "update_performance_statistics", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::option::Option", + "vector" + ], + "return": [] + }, + { + "name": "withdraw", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "withdraw_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "u64" + ], + "return": [ + "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + ] + } + ], + "structs": [ + { + "name": "AddStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount_added", + "type": "u64" + } + ] + }, + { + "name": "AptosCoinCapabilities", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "mint_cap", + "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + } + ] + }, + { + "name": "DistributeRewardsEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "rewards_amount", + "type": "u64" + } + ] + }, + { + "name": "IncreaseLockupEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_locked_until_secs", + "type": "u64" + }, + { + "name": "new_locked_until_secs", + "type": "u64" + } + ] + }, + { + "name": "IndividualValidatorPerformance", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "successful_proposals", + "type": "u64" + }, + { + "name": "failed_proposals", + "type": "u64" + } + ] + }, + { + "name": "JoinValidatorSetEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "LeaveValidatorSetEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "OwnerCapability", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "ReactivateStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "RegisterValidatorCandidateEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "RotateConsensusKeyEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_consensus_pubkey", + "type": "vector" + }, + { + "name": "new_consensus_pubkey", + "type": "vector" + } + ] + }, + { + "name": "SetOperatorEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_operator", + "type": "address" + }, + { + "name": "new_operator", + "type": "address" + } + ] + }, + { + "name": "StakePool", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "active", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "inactive", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "pending_active", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "pending_inactive", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "locked_until_secs", + "type": "u64" + }, + { + "name": "operator_address", + "type": "address" + }, + { + "name": "delegated_voter", + "type": "address" + }, + { + "name": "initialize_validator_events", + "type": "0x1::event::EventHandle<0x1::stake::RegisterValidatorCandidateEvent>" + }, + { + "name": "set_operator_events", + "type": "0x1::event::EventHandle<0x1::stake::SetOperatorEvent>" + }, + { + "name": "add_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::AddStakeEvent>" + }, + { + "name": "reactivate_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::ReactivateStakeEvent>" + }, + { + "name": "rotate_consensus_key_events", + "type": "0x1::event::EventHandle<0x1::stake::RotateConsensusKeyEvent>" + }, + { + "name": "update_network_and_fullnode_addresses_events", + "type": "0x1::event::EventHandle<0x1::stake::UpdateNetworkAndFullnodeAddressesEvent>" + }, + { + "name": "increase_lockup_events", + "type": "0x1::event::EventHandle<0x1::stake::IncreaseLockupEvent>" + }, + { + "name": "join_validator_set_events", + "type": "0x1::event::EventHandle<0x1::stake::JoinValidatorSetEvent>" + }, + { + "name": "distribute_rewards_events", + "type": "0x1::event::EventHandle<0x1::stake::DistributeRewardsEvent>" + }, + { + "name": "unlock_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::UnlockStakeEvent>" + }, + { + "name": "withdraw_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::WithdrawStakeEvent>" + }, + { + "name": "leave_validator_set_events", + "type": "0x1::event::EventHandle<0x1::stake::LeaveValidatorSetEvent>" + } + ] + }, + { + "name": "UnlockStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount_unlocked", + "type": "u64" + } + ] + }, + { + "name": "UpdateNetworkAndFullnodeAddressesEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_network_addresses", + "type": "vector" + }, + { + "name": "new_network_addresses", + "type": "vector" + }, + { + "name": "old_fullnode_addresses", + "type": "vector" + }, + { + "name": "new_fullnode_addresses", + "type": "vector" + } + ] + }, + { + "name": "ValidatorConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "consensus_pubkey", + "type": "vector" + }, + { + "name": "network_addresses", + "type": "vector" + }, + { + "name": "fullnode_addresses", + "type": "vector" + }, + { + "name": "validator_index", + "type": "u64" + } + ] + }, + { + "name": "ValidatorInfo", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "voting_power", + "type": "u64" + }, + { + "name": "config", + "type": "0x1::stake::ValidatorConfig" + } + ] + }, + { + "name": "ValidatorPerformance", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "validators", + "type": "vector<0x1::stake::IndividualValidatorPerformance>" + } + ] + }, + { + "name": "ValidatorSet", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "consensus_scheme", + "type": "u8" + }, + { + "name": "active_validators", + "type": "vector<0x1::stake::ValidatorInfo>" + }, + { + "name": "pending_inactive", + "type": "vector<0x1::stake::ValidatorInfo>" + }, + { + "name": "pending_active", + "type": "vector<0x1::stake::ValidatorInfo>" + }, + { + "name": "total_voting_power", + "type": "u128" + }, + { + "name": "total_joining_power", + "type": "u128" + } + ] + }, + { + "name": "WithdrawStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount_withdrawn", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000202020e03107e048e011605a401850107a902ee01089704200ab7040b0bc204040cc604e4010daa06020eac06020fae0602000100020e0100000003040203010001000400010203000005020103030000000603040203000007030503030000000806070303000000090608020300000a0008020302000b0309020300000c030903030000000d0a01020300000e0b0103030000000f0a01030300000010010a0203040011010c0200000012060d0203000013060e0303000000140001020302010f030f040f071000100510080f0a0f0b0f0d100f0f03070b010209000901090009010003070b01020900090109000b0001090102060b01020900090109000106090101060b0001090102070b010209000901090001070b00010901010709010101010b01020900090101060b0102090009010105010901010b0001090103090009010b00010901020900090103070b0102090009010900070901117461626c655f776974685f6c656e677468057461626c6503426f78055461626c6503616464076164645f626f7806626f72726f770a626f72726f775f626f780e626f72726f775f626f785f6d75740a626f72726f775f6d757417626f72726f775f6d75745f776974685f64656661756c7408636f6e7461696e730c636f6e7461696e735f626f780764657374726f791164657374726f795f656d7074795f626f781264726f705f756e636865636b65645f626f78036e6577106e65775f7461626c655f68616e646c650672656d6f76650a72656d6f76655f626f78067570736572740376616c0668616e646c6500000000000000000000000000000000000000000000000000000000000000010002011509000102011605000d01100001000001060b000b010b023900380002010002000201000001050b000b01380137000203000200040002000501000001050b000b0138023600020601000006130a000a010c040c030b032e0b04380320030b050f0a000a010b0238040b000b013805020701000001040b000b01380602080002000903000001050e0038070b003808020a0002000b0002000c010000010338093901020d0002000e0100000d070b000b01380a3a000c020b02020f0002001001000011180a000a010c040c030b032e0b04380320030b05100b000a010b02380405170b000b0138050c050b020b0515020000000d000000", + "abi": { + "address": "0x1", + "name": "table", + "friends": [ + "0x1::table_with_length" + ], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0", + "T1" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table::Table", + "T0" + ], + "return": [ + "&T1" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "borrow_mut_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0", + "T1" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table::Table", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "0x1::table::Table" + ], + "return": [] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [], + "return": [ + "0x1::table::Table" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0" + ], + "return": [ + "T1" + ] + }, + { + "name": "upsert", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0", + "T1" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Box", + "is_native": false, + "abilities": [ + "drop", + "store", + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "val", + "type": "T0" + } + ] + }, + { + "name": "Table", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "handle", + "type": "address" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e010004020406030a780482010e0590018701079702db0108f203200692041410a604ad020ad306070bda06020cdc0682040dde0a020ee00a0200000001000207010000000300010100000402030100000504010100000604050100000706070100000806080100000909080102000a02080100000b0a070100000c0b080103000d00050100000e00050100000f0706010000100806010000110a08010000120a0601000013060c010001150e05010001060f0501000116080c01000b08110812080a0813080c080d0801060b000109000106090001070b000109000107090002060b000109000609000101010b0001090000010900020b00010900090002070b00010900090002060b000109000900010a090002060900060a090001060a090002060a09000609000209000a090001070a0900020900060a0900020900070a0900030b000109000b00010900070a0900066f7074696f6e06766563746f72064f7074696f6e06626f72726f770a626f72726f775f6d757413626f72726f775f776974685f64656661756c7408636f6e7461696e730c64657374726f795f6e6f6e650c64657374726f795f736f6d651464657374726f795f776974685f64656661756c7407657874726163740466696c6c106765745f776974685f64656661756c740769735f6e6f6e650769735f736f6d65046e6f6e6504736f6d6504737761700c737761705f6f725f66696c6c06746f5f766563037665630869735f656d7074790973696e676c65746f6e00000000000000000000000000000000000000000000000000000000000000010308000004000000000003080100040000000000126170746f733a3a6d657461646174615f763098020200000400000000000e454f5054494f4e5f49535f5345547354686520604f7074696f6e6020697320696e20616e20696e76616c696420737461746520666f7220746865206f7065726174696f6e20617474656d707465642e0a2054686520604f7074696f6e602069732060536f6d6560207768696c652069742073686f756c6420626520604e6f6e65602e01000400000000000f454f5054494f4e5f4e4f545f5345547354686520604f7074696f6e6020697320696e20616e20696e76616c696420737461746520666f7220746865206f7065726174696f6e20617474656d707465642e0a2054686520604f7074696f6e6020697320604e6f6e6560207768696c652069742073686f756c642062652060536f6d65602e000201140a0900000800010000070c0a00380003070b00010701270b00370006000000000000000042080201010000070d0a002e380003080b00010701270b003600060000000000000000430802020100000d140b0037000c030a0338010307050c0b03010b010c0205120b01010b0306000000000000000042080c020b02020301000007050b0037000b01380202040100000c0b0e00380303050700270b003a000c010b01460800000000000000000205010000100f0e00380003050701270b003a000c020d0245080c010b02460800000000000000000b01020601000010100b003a000c030d032e38010308050b0b010c02050e0d0345080c020b020207010000070c0a002e380003080b00010701270b00360045080208010000110f0b0036000c020a022e3801030b0b02010700270b020b014408020901000012130b0037000c030a0338010307050c0b03010b010c0205110b030600000000000000004208140c020b02020a01000007040b0037003801020b01000007050b003700380120020c0100000703400800000000000000003900020d01000007040b0038043900020e01000013130a002e380003080b00010701270b0036000c030a0345080c020b030b0144080b02020f01000014160b0036000c040a042e38010308050b38050c02050f0a04450838060c020b020c030b040b0144080b0302100100000c050b003a000c010b01020000000800", + "abi": { + "address": "0x1", + "name": "option", + "friends": [], + "exposed_functions": [ + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option" + ], + "return": [ + "&T0" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option" + ], + "return": [ + "&mut T0" + ] + }, + { + "name": "borrow_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option", + "&T0" + ], + "return": [ + "&T0" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option", + "&T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy_none", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::option::Option" + ], + "return": [] + }, + { + "name": "destroy_some", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::option::Option" + ], + "return": [ + "T0" + ] + }, + { + "name": "destroy_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "0x1::option::Option", + "T0" + ], + "return": [ + "T0" + ] + }, + { + "name": "extract", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option" + ], + "return": [ + "T0" + ] + }, + { + "name": "fill", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option", + "T0" + ], + "return": [] + }, + { + "name": "get_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + } + ], + "params": [ + "&0x1::option::Option", + "T0" + ], + "return": [ + "T0" + ] + }, + { + "name": "is_none", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_some", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option" + ], + "return": [ + "bool" + ] + }, + { + "name": "none", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "some", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "swap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option", + "T0" + ], + "return": [ + "T0" + ] + }, + { + "name": "swap_or_fill", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option", + "T0" + ], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "to_vec", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::option::Option" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "Option", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "vec", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000601000203020a050c090715210836200c561000000001000100000200020001060c010501060500067369676e65720a616464726573735f6f660e626f72726f775f6164647265737300000000000000000000000000000000000000000000000000000000000000010001000003040b00110114020101020000", + "abi": { + "address": "0x1", + "name": "signer", + "friends": [], + "exposed_functions": [ + { + "name": "address_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "address" + ] + }, + { + "name": "borrow_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "&address" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602060a03105e046e0805767f07f501d30108c8032006e8031410fc03700aec04060cf204f7020de9070200000001000200030700011007010000000400010000050201000006030400000705060000080701000009040800000a090600000b0a0800000c0b0c00000d030800000e030600000f0d0e0000110c0f0000120c0e00020411010100020d130801000113151601000114011601000e100f10100e110e02070800080000020708000a020106080001060a0202060800060800010303070800030800010102060a02060a0202060a020303060a020303010a02030608000303010800010b01010800010202070a09000a09000b0107080003030708000303060a02080008000301060a090005010101060a0203010900010b0101090006737472696e67066f7074696f6e06766563746f7206537472696e6706617070656e640b617070656e645f7574663805627974657308696e6465785f6f6606696e7365727413696e7465726e616c5f636865636b5f7574663811696e7465726e616c5f696e6465785f6f6619696e7465726e616c5f69735f636861725f626f756e6461727913696e7465726e616c5f7375625f737472696e670869735f656d707479066c656e6774680a7375625f737472696e67064f7074696f6e087472795f75746638047574663804736f6d65046e6f6e6500000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000126170746f733a3a6d657461646174615f76305c0201000000000000000d45494e56414c49445f5554463819416e20696e76616c6964205554463820656e636f64696e672e02000000000000000e45494e56414c49445f494e44455813496e646578206f7574206f662072616e67652e000201060a020001000001070b000f000e011000143800020101000001050b000b01110d1100020201000001030b001000020301000001060b0010000b01100011060204010000123c0a0010000c0a0a010a0a4110250309050e0b0a0a0111070c0305120b0a01090c030b0303180b00010700270a002e110a0c0d0a000a010c060c040b042e0600000000000000000b06110b0c0c0a000b010b0d0c090c080c070b072e0b080b09110b0c0b0d0c0b0211000d0c0b0b11000b0c0b001502050102000600020007000200080002000901000001040b0010003801020a01000001040b0010004110020b01000014320b0010000c060a0641100c070a020b0725030b05100a010a02250c030512090c030b030315051a0a060a0111070c04051c090c040b04031f05240a060a0211070c050526090c050b05032c0b06010700270b060b010b0211081200020c0100000f0d0e001105030405090b00120038020c01050b38030c010b01020d01000001080e00110503050701270b00120002000000", + "abi": { + "address": "0x1", + "name": "string", + "friends": [], + "exposed_functions": [ + { + "name": "append", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::string::String", + "0x1::string::String" + ], + "return": [] + }, + { + "name": "append_utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::string::String", + "vector" + ], + "return": [] + }, + { + "name": "bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String" + ], + "return": [ + "&vector" + ] + }, + { + "name": "index_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String", + "&0x1::string::String" + ], + "return": [ + "u64" + ] + }, + { + "name": "insert", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::string::String", + "u64", + "0x1::string::String" + ], + "return": [] + }, + { + "name": "internal_check_utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String" + ], + "return": [ + "u64" + ] + }, + { + "name": "sub_string", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String", + "u64", + "u64" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "try_utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::string::String>" + ] + }, + { + "name": "utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::string::String" + ] + } + ], + "structs": [ + { + "name": "String", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000901000203026004620405665907bf01930108d2022006f2020a10fc025d0cd9039904000000010001010000020203010000030405010000040607010000050801010000060108010000070609010000080a07010000090a0b0100000a0c0d0100000b0e010100000c040d0100000d0c010100000e0d080100000f0f0101000010040d01000c0d070d02070a09000a09000002060a0900030106090002070a0900030107090002060a09000609000101010a090002010301060a0900010301070a090001090002070a0900090003070a090003030203030303070a0900030303030306766563746f7206617070656e6406626f72726f770a626f72726f775f6d757408636f6e7461696e730d64657374726f795f656d70747905656d70747908696e6465785f6f660869735f656d707479066c656e67746808706f705f6261636b09707573685f6261636b0672656d6f766507726576657273650973696e676c65746f6e04737761700b737761705f72656d6f7665000000000000000000000000000000000000000000000000000000000000000103080000020000000000126170746f733a3a6d657461646174615f7630490100000200000000001445494e4445585f4f55545f4f465f424f554e44532a54686520696e64657820696e746f2074686520766563746f72206973206f7574206f6620626f756e64730001000001110d0138000e013801200307050c0a000d01450d440d05020b00010b01460d00000000000000000201010200020102000301000010220600000000000000000c020a00410d0c030a020a0323030a051c0a000a02420d0a0121031105170b00010b010108020b02060100000000000000160c0205050b00010b0101090204010200050102000601000010240600000000000000000c020a00410d0c030a020a0323030a051d0a000a02420d0a0121031105180b00010b0101080b02020b02060100000000000000160c0205050b00010b010109060000000000000000020701000001050b00410d060000000000000000210208010200090102000a0102000b01000011260a002e410d0c040a010a04260309050d0b00010700270b04060100000000000000170c040a010a0423031605230a000c030a010c020b01060100000000000000160c010b030b020a01470d05110b00450d020c01000012270a002e410d0c030a03060000000000000000210309050c0b0001020600000000000000000c020b03060100000000000000170c010a020a0123031705240a000a020a01470d0b02060100000000000000160c020b01060100000000000000170c0105120b0001020d0100000807400d00000000000000000c010d010b00440d0b01020e0102000f0100000b160a002e38012003090b00010700270a002e410d060100000000000000170c020a000b010b02470d0b00450d0200", + "abi": { + "address": "0x1", + "name": "vector", + "friends": [], + "exposed_functions": [ + { + "name": "append", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "vector" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector", + "u64" + ], + "return": [ + "&T0" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64" + ], + "return": [ + "&mut T0" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector", + "&T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "vector" + ], + "return": [] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "vector" + ] + }, + { + "name": "index_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector", + "&T0" + ], + "return": [ + "bool", + "u64" + ] + }, + { + "name": "is_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector" + ], + "return": [ + "u64" + ] + }, + { + "name": "pop_back", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector" + ], + "return": [ + "T0" + ] + }, + { + "name": "push_back", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "T0" + ], + "return": [] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64" + ], + "return": [ + "T0" + ] + }, + { + "name": "reverse", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector" + ], + "return": [] + }, + { + "name": "singleton", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "T0" + ], + "return": [ + "vector" + ] + }, + { + "name": "swap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "swap_remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64" + ], + "return": [ + "T0" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e010018021844035c960104f20128059a02a80207c204920708d40b2006f40b3210a60cce030af40f89010bfd10040c811198060d9917200eb917180000000100020003000400050006000700080009000a000b000c0600000d04010400000e0600000f060000100600001104000012080104000414070100000615070200000000071607000b2e07000332040106010837040203010001001300010104001702030104001804050104001904030104001a04030104001b04010104001c04010104001d06070104001e04080104001f09070104043a0c010100043b0c0d0100023c030300093d070300043e08100100083f120702030003401407010608411617020300083b191a0203000842071d0203040143061e010605440622000b45072301000a460705000447250801000a0b0b0b0e080f111013111106081211000813111413141f142014211608101f040810201808102101060b01010900010108050509000a0204030b0701040b080208090a020103020503010a0201060c000109000506090005030301020104010401060b0701090001060900100504010303070b0c02030b01010900030b070109000a020b080208090a0204030b0701040403070b060109000102010b0701090002030b0101090003070b0c02090009010900090101080002070b0b010900090002070b01010900070b0601090002070b0c02090009010900010709010701030304060b01010900060b060109000402060b0c02090009010900010609010301070b01010900070b0601090004030b0c02030b0101090008050b06010900010b0c0209000901010b0b010900010802010803010804010501080a04070b010109000301070b0601090001070b0701090006766f74696e67076163636f756e74056572726f72056576656e74066f7074696f6e067369676e65720a73696d706c655f6d617006737472696e67057461626c650974696d657374616d70137472616e73616374696f6e5f636f6e7465787409747970655f696e666f1343726561746550726f706f73616c4576656e740850726f706f73616c125265676973746572466f72756d4576656e740f5265736f6c766550726f706f73616c09566f74654576656e740c566f74696e674576656e74730b566f74696e67466f72756d1563616e5f62655f7265736f6c7665645f6561726c79064f7074696f6e0953696d706c654d617006537472696e670f6372656174655f70726f706f73616c126765745f657865637574696f6e5f686173681c6765745f70726f706f73616c5f65787069726174696f6e5f73656373126765745f70726f706f73616c5f73746174650b69735f7265736f6c7665641069735f766f74696e675f636c6f736564087265676973746572077265736f6c766504766f74650b70726f706f73616c5f69641f6561726c795f7265736f6c7574696f6e5f766f74655f7468726573686f6c640e657865637574696f6e5f686173680f65787069726174696f6e5f73656373086d65746164617461126d696e5f766f74655f7468726573686f6c640870726f706f73657211657865637574696f6e5f636f6e74656e74126372656174696f6e5f74696d655f73656373097965735f766f746573086e6f5f766f746573147265736f6c7574696f6e5f74696d655f736563730f686f7374696e675f6163636f756e741270726f706f73616c5f747970655f696e666f0854797065496e666f0e7265736f6c7665645f6561726c79096e756d5f766f746573166372656174655f70726f706f73616c5f6576656e74730b4576656e7448616e646c651572656769737465725f666f72756d5f6576656e7473177265736f6c76655f70726f706f73616c5f6576656e74730b766f74655f6576656e74730970726f706f73616c73055461626c65066576656e7473106e6578745f70726f706f73616c5f69640769735f736f6d6506626f72726f7710696e76616c69645f617267756d656e740b6e6f775f7365636f6e647304736f6d65036164640a656d69745f6576656e740a626f72726f775f6d7574036e6577106e65775f6576656e745f68616e646c650a616464726573735f6f6607747970655f6f660f6765745f7363726970745f68617368076578747261637400000000000000000000000000000000000000000000000000000000000000010308030000000000000003080200000000000000030804000000000000000308010000000000000003080000000000000000126170746f733a3a6d657461646174615f7630b903040100000000000000254550524f504f53414c5f455845435554494f4e5f484153485f4e4f545f4d41544348494e474743757272656e7420736372697074277320657865637574696f6e206861736820646f6573206e6f74206d6174636820746865207370656369666965642070726f706f73616c277302000000000000001c4550524f504f53414c5f43414e4e4f545f42455f5245534f4c5645447050726f706f73616c2063616e6e6f74206265207265736f6c7665642e2045697468657220766f74696e67206475726174696f6e20686173206e6f74207061737365642c206e6f7420656e6f75676820766f7465732c206f7220666577657220796573207468616e206e6f20766f74657303000000000000001a4550524f504f53414c5f414c52454144595f5245534f4c5645442a50726f706f73616c2063616e6e6f74206265207265736f6c766564206d6f7265207468616e206f6e636504000000000000001e4550524f504f53414c5f454d5054595f455845435554494f4e5f484153483650726f706f73616c2063616e6e6f7420636f6e7461696e20616e20656d70747920657865637574696f6e2073637269707420686173680002062003210b070104220a022303240b080208090a02250401020c2605270b07010900240b080208090a022803220a0225042303210b07010429042a041b012b030202022c052d080a030204200329042a042f0104020220033003050204310b0b010800330b0b010802340b0b010803350b0b010804060203360b0c02030b01010900380805390306080108000100000a260a0037003800030505220a0037003801140c020a003701140a0226031105160b0001080c01051c0b003702140b02260c010b01031f0521080205240b0001090201010001060e4a0e03410f0600000000000000002403080702110c270b013c000c170a173703140c160a17370314060100000000000000160a173603150a1736040c0d0a160c0c0b000c08110d0c0e0b0238020c0f0a030c100a070c110a040c120a050c130a060c140b0d0b0c0b080b0f0b110b0e0b100b120b130b143200000000000000000000000000000000320000000000000000000000000000000009060000000000000000390138030b1736050f060a160b060b030b050b070b04120038040b16020201000106150c0b003c000c030b0336040b0138050c020b02370614020301000106150c0b003c000c030b0336040b0138050c020b0237071402040100010618360a000a013806030505320b003d000c070b0737040b0138070c060a063701140c080a063702140c050a080a0524031a05230b080b05160b06370814260c0205270b0601090c020b02032a052d07030c03052f07000c030b030c04053407040c040b04020501000106150c0b003c000c030b0336040b0138050c020b023709140206010001061b1a0b003c000c040b0436040b0138050c030a032e3808030d05120b0301080c020518110d0b03370714260c020b0202070100001c1d38090c020a00380a0a00380b0a00380c0a00380d12050c030b020b0306000000000000000039000c040d0436050f0b0a001115380e1202380f0b000b043f0002080100010624490a000a0138100c030b03070321030b0701110c270b003c000c050a0536040a0138050c020a0237091420031f0b05010b02010700110c270a022e38080c04080a02360915110d0a02360a1511170a023706142103380b05010b02010703110c270b0536050f0d0b010a023701140a023702140b04120338110b02360b381202090100010615260b013c000c060a0636040a0238050c050b04030b05150a053701140a0335160b05360115051e0a053702140a0335160b053602150b0636050f0f0b020b0312043813020107010801090602060006010500010401060105010a0501010b0502010105030008010802080308040805080708080809080a080c080e0800", + "abi": { + "address": "0x1", + "name": "voting", + "friends": [], + "exposed_functions": [ + { + "name": "can_be_resolved_early", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::voting::Proposal" + ], + "return": [ + "bool" + ] + }, + { + "name": "create_proposal", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "address", + "T0", + "vector", + "u128", + "u64", + "0x1::option::Option", + "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_execution_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "vector" + ] + }, + { + "name": "get_proposal_expiration_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_proposal_state", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "is_resolved", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_voting_closed", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "bool" + ] + }, + { + "name": "register", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "resolve", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "T0" + ] + }, + { + "name": "vote", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&T0", + "address", + "u64", + "u64", + "bool" + ], + "return": [] + } + ], + "structs": [ + { + "name": "CreateProposalEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "early_resolution_vote_threshold", + "type": "0x1::option::Option" + }, + { + "name": "execution_hash", + "type": "vector" + }, + { + "name": "expiration_secs", + "type": "u64" + }, + { + "name": "metadata", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + }, + { + "name": "min_vote_threshold", + "type": "u128" + } + ] + }, + { + "name": "Proposal", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "fields": [ + { + "name": "proposer", + "type": "address" + }, + { + "name": "execution_content", + "type": "0x1::option::Option" + }, + { + "name": "metadata", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + }, + { + "name": "creation_time_secs", + "type": "u64" + }, + { + "name": "execution_hash", + "type": "vector" + }, + { + "name": "min_vote_threshold", + "type": "u128" + }, + { + "name": "expiration_secs", + "type": "u64" + }, + { + "name": "early_resolution_vote_threshold", + "type": "0x1::option::Option" + }, + { + "name": "yes_votes", + "type": "u128" + }, + { + "name": "no_votes", + "type": "u128" + }, + { + "name": "is_resolved", + "type": "bool" + }, + { + "name": "resolution_time_secs", + "type": "u64" + } + ] + }, + { + "name": "RegisterForumEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "hosting_account", + "type": "address" + }, + { + "name": "proposal_type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + }, + { + "name": "ResolveProposal", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "yes_votes", + "type": "u128" + }, + { + "name": "no_votes", + "type": "u128" + }, + { + "name": "resolved_early", + "type": "bool" + } + ] + }, + { + "name": "VoteEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "num_votes", + "type": "u64" + } + ] + }, + { + "name": "VotingEvents", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "create_proposal_events", + "type": "0x1::event::EventHandle<0x1::voting::CreateProposalEvent>" + }, + { + "name": "register_forum_events", + "type": "0x1::event::EventHandle<0x1::voting::RegisterForumEvent>" + }, + { + "name": "resolve_proposal_events", + "type": "0x1::event::EventHandle<0x1::voting::ResolveProposal>" + }, + { + "name": "vote_events", + "type": "0x1::event::EventHandle<0x1::voting::VoteEvent>" + } + ] + }, + { + "name": "VotingForum", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "fields": [ + { + "name": "proposals", + "type": "0x1::table::Table>" + }, + { + "name": "events", + "type": "0x1::voting::VotingEvents" + }, + { + "name": "next_proposal_id", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000f01001e021e560374a902049d032a05c703f50207bc06cd0c0889132006a913a40410cd17c8080a9520660bfb20040cff20d90a0dd82b120eea2b020fec2b0a00050006000700080009000a000b000c000d000e000f001000110012001300140c0000150401000100160600001706000018080000190600001a0200001b0300001c0600001d020006220600042f04010601093e070100000d3f07000c4304020301000102570700085707000258070008580700001e000100001f000100002002010000210003000023040500002406030000250700000026000100002708010000280009000029000a00002a000b00002b000b00002c080000002d000c00002e040c000030040d010600310e0c000032000c010000330f0c000034060c000035100a0003480b0b0003490b0b00014a120a0100064b1405000430050d0106094c0c170100034d0b0b000a4e040000094f1b09010003500b0b000e511e0c010007520a0a0005530a000003540b0b000b55040c000c560c2202030402590a2500025a260a00025b0a2700025c2909010208590a2a00085a2b0a00085b0a2c00085c2d090102095d2e090100095e2f230100095f2f0c01000d600c3101000461320c010603620b0b000c4f34090203000c6335360203000c64370c02030018001a151a161b001e00201325211a2329282d282e002f00300031233215342135213621321629392d390105010c02060c05020c080801060c01080a02060c0a020206050a02010608080101010a02010300010b0b01090005060c0a02020a020507060c020a02020a020a020a0204020a020a02060807070a020b0b01080203080a080a0b0b0108030c01060900010202050703010802010803010b0c010900010805010808020708000502060b0c0109000609000b0101010101010101010c08080405050c080802070a09000a09000106050207080003020505010b0e02090009010109000a01070800050a020a020809080f08100811081201080f0106080f0108110108090306081106080f09000108100106081001081203060812060810090001060b0c01090002070b0c01090009000107080001080d02070b0b010900090010070b0e0205050507080007080005070b0e020505080705050a020a020a02080f0810050a0202060b0e0209000901090002070b0e0209000901090001090103070b0e020900090109000901060a020a02080f0810081108120108070d6170746f735f6163636f756e7404636f696e0767656e65736973107265736f757263655f6163636f756e74167472616e73616374696f6e5f76616c69646174696f6e076163636f756e74036263730765643235353139056572726f72056576656e740866726f6d5f626373046775696404686173680d6d756c74695f65643235353139066f7074696f6e067369676e65721073797374656d5f616464726573736573057461626c6509747970655f696e666f06766563746f72074163636f756e740f4361706162696c6974794f6666657211436f696e52656769737465724576656e74104b6579526f746174696f6e4576656e74124f726967696e6174696e674164647265737312526f746174696f6e4361706162696c69747925526f746174696f6e4361706162696c6974794f6666657250726f6f664368616c6c656e676516526f746174696f6e50726f6f664368616c6c656e6765105369676e65724361706162696c697479235369676e65724361706162696c6974794f6666657250726f6f664368616c6c656e67650e6372656174655f6163636f756e74186372656174655f6163636f756e745f756e636865636b6564186372656174655f617574686f72697a65645f7369676e6572216372656174655f6672616d65776f726b5f72657365727665645f6163636f756e7404475549440b6372656174655f67756964176372656174655f7265736f757263655f6163636f756e74176372656174655f7265736f757263655f616464726573730d6372656174655f7369676e65721d6372656174655f7369676e65725f776974685f6361706162696c697479096578697374735f6174166765745f61757468656e7469636174696f6e5f6b65791a6765745f677569645f6e6578745f6372656174696f6e5f6e756d136765745f73657175656e63655f6e756d6265721d6765745f7369676e65725f6361706162696c6974795f6164647265737319696e6372656d656e745f73657175656e63655f6e756d6265720a696e697469616c697a650b4576656e7448616e646c65106e65775f6576656e745f68616e646c65176f666665725f7369676e65725f6361706162696c6974790d72656769737465725f636f696e19726f746174655f61757468656e7469636174696f6e5f6b657922726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c2e7665726966795f6b65795f726f746174696f6e5f7369676e61747572655f616e645f6765745f617574685f6b65791261757468656e7469636174696f6e5f6b65790f73657175656e63655f6e756d62657211677569645f6372656174696f6e5f6e756d14636f696e5f72656769737465725f6576656e7473136b65795f726f746174696f6e5f6576656e747319726f746174696f6e5f6361706162696c6974795f6f66666572177369676e65725f6361706162696c6974795f6f6666657203666f72064f7074696f6e0854797065496e666f166f6c645f61757468656e7469636174696f6e5f6b6579166e65775f61757468656e7469636174696f6e5f6b65790b616464726573735f6d6170055461626c6511726563697069656e745f616464726573730a6f726967696e61746f721063757272656e745f617574685f6b65790e6e65775f7075626c69635f6b65790e616c72656164795f65786973747310696e76616c69645f617267756d656e7408746f5f627974657306637265617465046e6f6e65096e6f745f666f756e640a616464726573735f6f6608636f6e7461696e73117065726d697373696f6e5f64656e69656406617070656e6408736861335f3235360a746f5f616464726573730c6f75745f6f665f72616e6765166173736572745f6170746f735f6672616d65776f726b036e657714556e76616c6964617465645075626c69634b6579095369676e6174757265256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f62797465732c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b6579186e65775f7369676e61747572655f66726f6d5f6279746573197369676e61747572655f7665726966795f7374726963745f740769735f736f6d6504737761700466696c6c07747970655f6f660a656d69745f6576656e740f756e61757468656e746963617465640672656d6f766503616464000000000000000000000000000000000000000000000000000000000000000103080100000000000000030802000000000000000308050000000000000002010003080a0000000000000003080f0000000000000003080e0000000000000003080d000000000000000308080000000000000003080c00000000000000030804000000000000000308090000000000000003080b000000000000000308060000000000000003080300000000000000030807000000000000000410ffffffffffffffff0000000000000000020101052000000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000005052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000008052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000a126170746f733a3a6d657461646174615f7630b3081000000000000000000e454432353531395f534348454d4500010000000000000017454143434f554e545f414c52454144595f455849535453164163636f756e7420616c726561647920657869737473020000000000000017454143434f554e545f444f45535f4e4f545f4558495354164163636f756e7420646f6573206e6f742065786973740300000000000000184553455155454e43455f4e554d4245525f544f4f5f4249473353657175656e6365206e756d626572206578636565647320746865206d6178696d756d2076616c756520666f7220612075363404000000000000001d454d414c464f524d45445f41555448454e5449434154494f4e5f4b4559355468652070726f76696465642061757468656e7469636174696f6e206b65792068617320616e20696e76616c6964206c656e6774680500000000000000184543414e4e4f545f52455345525645445f414444524553533143616e6e6f7420637265617465206163636f756e742062656361757365206164647265737320697320726573657276656406000000000000000b454f55545f4f465f4741532a5472616e73616374696f6e2065786365656465642069747320616c6c6f6361746564206d6178206761730700000000000000194557524f4e475f43555252454e545f5055424c49435f4b45592b5370656369666965642063757272656e74207075626c6963206b6579206973206e6f7420636f727265637408000000000000001b45494e56414c49445f50524f4f465f4f465f4b4e4f574c45444745535370656369666965642070726f6f66206f66206b6e6f776c6564676520726571756972656420746f2070726f7665206f776e657273686970206f662061207075626c6963206b657920697320696e76616c696409000000000000000e454e4f5f4341504142494c495459535468652063616c6c657220646f6573206e6f7420686176652061206469676974616c2d7369676e61747572652d6261736564206361706162696c69747920746f2063616c6c20746869732066756e6374696f6e0a000000000000002345494e56414c49445f4143434550545f524f544154494f4e5f4341504142494c495459515468652063616c6c657220646f6573206e6f74206861766520612076616c696420726f746174696f6e206361706162696c697479206f666665722066726f6d20746865206f74686572206163636f756e740b0000000000000024454e4f5f56414c49445f4652414d45574f524b5f52455345525645445f41444452455353000c000000000000000f45494e56414c49445f534348454d45000d000000000000001c45494e56414c49445f4f524947494e4154494e475f41444452455353000e000000000000001845494e56414c49445f4341504142494c4954595f54595045000f000000000000002145494e56414c49445f4143434550545f5349474e45525f4341504142494c49545900000207360a0237033803390b0b0108023a0b0b0108033b0b010108053c0b010108080102013d0b0c010502020112080d030202400a02410a02040201420b0e020505050201050506020237034405070204370345054605470a020802010505090202370344050118011900030000091b0a00290020030707001116270a00071222030c05110a000713220c010513090c010b01031807021117270b0011010201000000112c0a0011070c070e0038000c010e01411306200000000000000021030e070a1117270600000000000000000c030a000d0311190c040b0438010c020b000d0311190c050b0538020c060e070b010600000000000000000b030b020b06380339003803390112002d000b070202010001001a1a0a01110903080b00010701111c270a012a000c020b00111d0c030b02100037000e03380403170705111c270b01110702030300001c6a0a0007132103050508080c01050c0a000714210c010b01030f0512080c0205160a000715210c020b020319051c080c0305200a000716210c030b0303230526080c04052a0a000717210c040b04032d0530080c0505340a000718210c050b050337053a080c06053e0a000719210c060b0603410544080c0705480a00071a210c070b07034b054e080c0805520a00071b210c080b0803550558080c09055c0a00071c210c090b090361070c111f270a0011010c0a0b0012080c0b0b0a0b0b0204010001001a0b0b00111d0c020a022a000c010b020b010f02111902050100001d100b00111d0c020e020b0111060c030a0311010c040b0312080c050b040b0502060100000a0a0b0038000c020d020b0138050b02112111220207000200080100001f070b0010030c010b0114110702090100000c030b002900020a010001000c050b002b00100414020b010001000c050b002b00100214020c010001000c050b002b00100514020d0100000c040b00100314020e0300010020180b002a000c010a011005140c020a023507102303110b0101070e1123270b02060100000000000000160b010f0515020f0300000c070a0011240b00380612042d040210010001000c040b0011043807021101040100247a0b00111d0c070a0711090307050b0a0411090c05050d090c050b0503120701111c270b072a000c060a061005140a0412090c0a0a020703210320053f0b0311260c0b0e0b11270c080a061004140b082103310b0601070f1117270b0111280c0d0e0d0e0b0b0a3808033e0b0601070811172705670b02071121034405620b03112a0c0c0e0c112b0c090a061004140b092103550b0601070f1117270b01112c0c0e0e0e0e0c0b0a380903670b060107081117270b060107091117270a0610003700380a036d05740b060f0036000b04380b0105790b060f0036000b04380c02120300010030090b002a000c010b010f06380d1202380e02130104020004338a010b00111d0c0b0a0b110903090701111c270a0b2a000c090a01070321031105230a0211260c130e1311270c110a091004140b112103220b0901070f113327053e0a01071121032805390a02112a0c140e14112b0c120a091004140b1221033e0b0901070f1133270b090107091117270a0910041411220c0f0b091005140a0b0b0f0a0412070c0d0b010b020b050e0d11150c100b030b040b060e0d11150c1607132a040f070c0c0b1011220c0e0a1611220c150a0c0a0e0c080c070b072e0b08380f036b05760a0b0a0c0b0e38102103760b0c010707111c270b0c0b150a0b38110b0b2a000c0a0a0a0f080a0a1004140a16120338120b160b0a0f04150214030001001a190b00111d0c030a03110903090700111c270e014113062000000000000000210311070a1117270b032a000c020b010b020f0415021500000038380a00070321030505180b0111260c060b0211280c080e080e060b03143813031407081117270e0611270c0505360b00071121031d052c0b01112a0c070b02112c0c090e090e070b03143814033107081117270b030107091117270e07112b0c040b040c050b050200060100000208000000000100030400000401190000000100020003000400", + "abi": { + "address": "0x1", + "name": "account", + "friends": [ + "0x1::aptos_account", + "0x1::coin", + "0x1::genesis", + "0x1::resource_account", + "0x1::transaction_validation" + ], + "exposed_functions": [ + { + "name": "create_account", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "signer" + ] + }, + { + "name": "create_authorized_signer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [ + "signer" + ] + }, + { + "name": "create_framework_reserved_account", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "signer", + "0x1::account::SignerCapability" + ] + }, + { + "name": "create_guid", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "0x1::guid::GUID" + ] + }, + { + "name": "create_resource_account", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [ + "signer", + "0x1::account::SignerCapability" + ] + }, + { + "name": "create_resource_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&address", + "vector" + ], + "return": [ + "address" + ] + }, + { + "name": "create_signer_with_capability", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::account::SignerCapability" + ], + "return": [ + "signer" + ] + }, + { + "name": "exists_at", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "get_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "vector" + ] + }, + { + "name": "get_guid_next_creation_num", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_sequence_number", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_signer_capability_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::account::SignerCapability" + ], + "return": [ + "address" + ] + }, + { + "name": "increment_sequence_number", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "new_event_handle", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&signer" + ], + "return": [ + "0x1::event::EventHandle" + ] + }, + { + "name": "offer_signer_capability", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "u8", + "vector", + "address" + ], + "return": [] + }, + { + "name": "register_coin", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "rotate_authentication_key", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u8", + "vector", + "u8", + "vector", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "rotate_authentication_key_internal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Account", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "authentication_key", + "type": "vector" + }, + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "guid_creation_num", + "type": "u64" + }, + { + "name": "coin_register_events", + "type": "0x1::event::EventHandle<0x1::account::CoinRegisterEvent>" + }, + { + "name": "key_rotation_events", + "type": "0x1::event::EventHandle<0x1::account::KeyRotationEvent>" + }, + { + "name": "rotation_capability_offer", + "type": "0x1::account::CapabilityOffer<0x1::account::RotationCapability>" + }, + { + "name": "signer_capability_offer", + "type": "0x1::account::CapabilityOffer<0x1::account::SignerCapability>" + } + ] + }, + { + "name": "CapabilityOffer", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "for", + "type": "0x1::option::Option
" + } + ] + }, + { + "name": "CoinRegisterEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + }, + { + "name": "KeyRotationEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "old_authentication_key", + "type": "vector" + }, + { + "name": "new_authentication_key", + "type": "vector" + } + ] + }, + { + "name": "OriginatingAddress", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "address_map", + "type": "0x1::table::Table" + } + ] + }, + { + "name": "RotationCapability", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account", + "type": "address" + } + ] + }, + { + "name": "RotationCapabilityOfferProofChallenge", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "recipient_address", + "type": "address" + } + ] + }, + { + "name": "RotationProofChallenge", + "is_native": false, + "abilities": [ + "copy", + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "originator", + "type": "address" + }, + { + "name": "current_auth_key", + "type": "address" + }, + { + "name": "new_public_key", + "type": "vector" + } + ] + }, + { + "name": "SignerCapability", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account", + "type": "address" + } + ] + }, + { + "name": "SignerCapabilityOfferProofChallenge", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "recipient_address", + "type": "address" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000c020c1c03287904a1010805a9015407fd01b90508b6072006d6072b108108f8010af9091b0b940a020c960a95020dab0c06000000010002000300040005000607000007020100000008070000090700040d07010000051d0700000a000100000b02030102000c000400000e000500000f000000001006040000110704000012080500001300090000140a000000150b090000160c090000170d09010200180800000019080000001a070000001b070000021f10100005200e11010004210212010004220e12010003230000000124130001001202130614061603010a02010800010900010b01010900010802010b040108030108030106080301060802010101060800030608000608020a02030a020a020a020306080006080209000001020103010805010b0401090001060900076564323535313903626373056572726f720468617368066f7074696f6e09747970655f696e666f095369676e61747572650d5369676e65644d65737361676514556e76616c6964617465645075626c69634b65791256616c6964617465645075626c69634b6579186e65775f7369676e61747572655f66726f6d5f6279746573126e65775f7369676e65645f6d657373616765256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573064f7074696f6e236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573267075626c69635f6b65795f62797465735f746f5f61757468656e7469636174696f6e5f6b65791b7075626c69635f6b65795f696e746f5f756e76616c696461746564197075626c69635f6b65795f746f5f756e76616c696461746564137075626c69635f6b65795f76616c69646174651c7075626c69635f6b65795f76616c69646174655f696e7465726e616c127369676e61747572655f746f5f6279746573177369676e61747572655f7665726966795f737472696374207369676e61747572655f7665726966795f7374726963745f696e7465726e616c197369676e61747572655f7665726966795f7374726963745f742c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791f756e76616c6964617465645f7075626c69635f6b65795f746f5f62797465732a76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791d76616c6964617465645f7075626c69635f6b65795f746f5f62797465730562797465730854797065496e666f05696e6e657210696e76616c69645f617267756d656e7407747970655f6f6604736f6d65046e6f6e6508736861335f32353608746f5f6279746573000000000000000000000000000000000000000000000000000000000000000103080100000000000000030802000000000000000308200000000000000003084000000000000000020100126170746f733a3a6d657461646174615f7630e30102010000000000000013455f57524f4e475f5055424b45595f53495a455357726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207075626c6963206b65792e020000000000000016455f57524f4e475f5349474e41545552455f53495a455257726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207369676e61747572652e0002011c0a020102020508051e09000202011c0a020302011c0a020102000100000e0b0e00410f070321030807011111270b00120002010100000e0438000b00390002020100000e0b0e00410f070221030807001111270b0012020203010000050d0a001108030405090b00120338010c01050b38020c010b0102040000000e060d000704440f0b00111502050100000e050e00100014120202060100000e050b00100014120202070100000e050b0010011411030208000200090100000e040b00100214020a0100000e090b001002140b011001140b02110b020b0002000c010000030e38000b0239000c030b001002140b011001140e033803110b020d0100000e050b001001141104020e0100000e040b00100114020f0100000e050b00100014110402100100000e040b001000140203000200000000", + "abi": { + "address": "0x1", + "name": "ed25519", + "friends": [], + "exposed_functions": [ + { + "name": "new_signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ed25519::Signature" + ] + }, + { + "name": "new_signed_message", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::ed25519::SignedMessage" + ] + }, + { + "name": "new_unvalidated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "new_validated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "public_key_into_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_to_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_validate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::UnvalidatedPublicKey" + ], + "return": [ + "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::Signature" + ], + "return": [ + "vector" + ] + }, + { + "name": "signature_verify_strict", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::Signature", + "&0x1::ed25519::UnvalidatedPublicKey", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "signature_verify_strict_t", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&0x1::ed25519::Signature", + "&0x1::ed25519::UnvalidatedPublicKey", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "unvalidated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "unvalidated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "Signature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "SignedMessage", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "type_info", + "type": "0x1::type_info::TypeInfo" + }, + { + "name": "inner", + "type": "T0" + } + ] + }, + { + "name": "UnvalidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ValidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b0100280228180340bb0104fb010405ff01b70107b603e907089f0b2006bf0bba030af90e170c900fe8030df812100000000100020003000400050006000700080009000a000b000c000d000e000f00100011001200130014030008170501000103180800012d0600083405010001001500010000160201000019030400001a050100001b030100012408090008250301010003260b01000c270c01000c280d01000c290d01000c2a0e0100032b0301000c2c010100012e08100001160301001116110100042f120100123013140100091605010013161501000c160301000d161601000a160501000231030100083203010006161701000b1603010005161501000e160301000f3303010003160318000c3519010010361a0100013705010003381c0100071b030100060a120802060c0a0800000c0a0202030a02030303030103030301060c010b0101080202060c0a02080c0c010303060c060c0608000108000105010c01080203060c050304060c03050504060c050a020a0202060c0507050c0c08030a05080303020c080305060c0a020a020a020a0203060c05080301060a0900010102060c0308060c0303030103030302060c02020b040108020b0101080202060c0b0101080202060c0b04010802020c0b0101080203060c060c0b010108020767656e65736973076163636f756e741261676772656761746f725f666163746f72790a6170746f735f636f696e106170746f735f676f7665726e616e636505626c6f636b08636861696e5f69640c636861696e5f73746174757304636f696e10636f6e73656e7375735f636f6e6669670c6761735f7363686564756c650f7265636f6e66696775726174696f6e057374616b650e7374616b696e675f636f6e6669670d73746174655f73746f726167650974696d657374616d700f7472616e73616374696f6e5f666565167472616e73616374696f6e5f76616c69646174696f6e06766563746f720776657273696f6e1656616c696461746f72436f6e66696775726174696f6e1c6372656174655f696e697469616c697a655f76616c696461746f72730a696e697469616c697a650e4d696e744361706162696c697479094170746f73436f696e15696e697469616c697a655f6170746f735f636f696e28696e697469616c697a655f636f72655f7265736f75726365735f616e645f6170746f735f636f696e0f7365745f67656e657369735f656e640d6f776e65725f61646472657373106f70657261746f725f616464726573730d766f7465725f616464726573730c7374616b655f616d6f756e7410636f6e73656e7375735f7075626b65791370726f6f665f6f665f706f7373657373696f6e116e6574776f726b5f6164647265737365731b66756c6c5f6e6f64655f6e6574776f726b5f6164647265737365730e6372656174655f6163636f756e74087265676973746572046d696e7416696e697469616c697a655f7374616b655f6f776e657214726f746174655f636f6e73656e7375735f6b6579257570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365731b6a6f696e5f76616c696461746f725f7365745f696e7465726e616c1064657374726f795f6d696e745f6361700c6f6e5f6e65775f65706f6368105369676e65724361706162696c697479216372656174655f6672616d65776f726b5f72657365727665645f6163636f756e741073746f72655f7369676e65725f6361700869735f656d7074791d696e697469616c697a655f61676772656761746f725f666163746f727918696e697469616c697a655f737570706c795f636f6e666967147365745f74696d655f6861735f737461727465640e4275726e4361706162696c6974791973746f72655f6170746f735f636f696e5f6d696e745f6361701973746f72655f6170746f735f636f696e5f6275726e5f63617022726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c1b636f6e6669677572655f6163636f756e74735f666f725f746573740000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a02100f7363726970745f70726f6c6f6775650a02100f6d6f64756c655f70726f6c6f6775650a021c1b6d756c74695f6167656e745f7363726970745f70726f6c6f6775650a0209086570696c6f6775650a05a1020900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a0520000000000000000000000000000000000000000000000000000000000a550c180002081c051d051e051f03200a02210a02220a02230a0200000000067e0600000000000000000c050e0141070c060a050a0623030a057a0e010a0542070c090a0910001411050c020e020c080a080c070a091001140a0910001422032005290b07010a0910011411050c030e030c070a091002140a09100014220332053b0a091002140a09100114220c04053d090c040b04034005450a091002141105010a0838000a000a091000140a0910031411070b080a091003140a091001140a0910021411080a070a091000140a091004140a0910051411090a070a091000140a091006140a09100714110a0b070b09100014110b0b05060100000000000000160c0505050b00110c110d02010000000f4e0700110e0c0f0c0e0e0e110f0e0e070107020703070411100e0e07000b0f111107050c100600000000000000000c120e10380120031905290d1045080c0c0a0c110e0c110c0d0e0d0b0c0b1111110b12060100000000000000160c1205140e0e0b0311130e0e0b0211140e0e11150e0e0b050b060b070b080b090b0a0b0b11160e0e0b0011170e0e11180e0e11190e0e0b01111a0e0e111b0e0e0b04111c0e0e111d0e0e111e0202000000180c0a00111f0c020c010a000a0211200b000b0111210b0202030000001b0e070611050c020e020b0111220a0011020c030b000e020b031123020400000001030b001124020000000100020003000400050006000700", + "abi": { + "address": "0x1", + "name": "genesis", + "friends": [], + "exposed_functions": [], + "structs": [ + { + "name": "ValidatorConfiguration", + "is_native": false, + "abilities": [ + "copy", + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "owner_address", + "type": "address" + }, + { + "name": "operator_address", + "type": "address" + }, + { + "name": "voter_address", + "type": "address" + }, + { + "name": "stake_amount", + "type": "u64" + }, + { + "name": "consensus_pubkey", + "type": "vector" + }, + { + "name": "proof_of_possession", + "type": "vector" + }, + { + "name": "network_addresses", + "type": "vector" + }, + { + "name": "full_node_network_addresses", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000a020a0803122d053f110750fe0108ce022006ee023610a403cf010af3040a0cfd04650de205020fe4050200010002000300040005000608000007080000080001000009020100000a000100040d020100040e020100030f02040001100505000111050500021201010002060c030001060c0207080103010501030767656e657369730776657273696f6e056572726f720f7265636f6e66696775726174696f6e067369676e65721073797374656d5f6164647265737365731453657456657273696f6e4361706162696c6974790756657273696f6e0a696e697469616c697a6513696e697469616c697a655f666f725f746573740b7365745f76657273696f6e0b64756d6d795f6669656c64056d616a6f72166173736572745f6170746f735f6672616d65776f726b146173736572745f636f72655f7265736f757263650a616464726573735f6f66117065726d697373696f6e5f64656e69656410696e76616c69645f617267756d656e740b7265636f6e6669677572650000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630ba010201000000000000001d45494e56414c49445f4d414a4f525f56455253494f4e5f4e554d4245524b537065636966696564206d616a6f722076657273696f6e206e756d626572206d7573742062652067726561746572207468616e2063757272656e742076657273696f6e206e756d6265722e02000000000000000f454e4f545f415554484f52495a45442e4163636f756e74206973206e6f7420617574686f72697a656420746f206d616b652074686973206368616e67652e0002010b010102010c0300030000010b0a0011030a000b0112012d010b000912002d00020100000001070a0011040b000912002d00020201040101031c0b00110529000307070111062707022b011000140c030b030a01230313070011072707022a010c020b010b020f00151108020100000000", + "abi": { + "address": "0x1", + "name": "version", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "set_version", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "SetVersionCapability", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "Version", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "major", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602061e0324980104bc010c05c801a20107ea02880708f2092006920ab60110c80b650aad0c240cd10cf3020dc40f0c000000010002000307000004070000050700000607000007070000080700020e070100000009000100000a000200000b030200000c040500000d040600000f0708000010070600001102090000120a02000013020b0000140c0d0000150e020000160f0200001702100000181101000019020100001a110200001b020100001c120100001d130100001e140100001f1501000020160100002115010000221701000023180100002415010001261a1a0002271d1e01000228191e01001c1c1d1c1c1f1d1f1c201d20010608000101010a0201060801010a0804010801020a0201010a0805010b0601080001080201060802010b06010803020a02060802010b06010804010608030106080401080501060805030608000a08040a0a02030a020a08040a0a02030608000608010a02030a020a020a02030608050608030a02020a020a02030608050608040a02000103030b060108000a0201010800010900010b0601090001080301080408626c733132333831056572726f72066f7074696f6e14416767724f724d756c74695369676e617475726515416767725075626c69634b65797357697468506f501150726f6f664f66506f7373657373696f6e095075626c69634b6579105075626c69634b657957697468506f50095369676e617475726526616767725f6f725f6d756c74695f7369676e61747572655f73756267726f75705f636865636b20616767725f6f725f6d756c74695f7369676e61747572655f746f5f6279746573196167677265676174655f7075626b65795f746f5f6279746573116167677265676174655f7075626b6579731a6167677265676174655f7075626b6579735f696e7465726e616c064f7074696f6e146167677265676174655f7369676e6174757265731d6167677265676174655f7369676e6174757265735f696e7465726e616c1e70726f6f665f6f665f706f7373657373696f6e5f66726f6d5f62797465731c70726f6f665f6f665f706f7373657373696f6e5f746f5f6279746573157075626c69635f6b65795f66726f6d5f62797465731e7075626c69635f6b65795f66726f6d5f62797465735f776974685f706f70137075626c69635f6b65795f746f5f62797465731c7075626c69635f6b65795f776974685f706f705f746f5f6279746573147369676e61747572655f66726f6d5f6279746573187369676e61747572655f73756267726f75705f636865636b217369676e61747572655f73756267726f75705f636865636b5f696e7465726e616c127369676e61747572655f746f5f62797465731876616c69646174655f7075626b65795f696e7465726e616c1a7665726966795f6167677265676174655f7369676e6174757265237665726966795f6167677265676174655f7369676e61747572655f696e7465726e616c157665726966795f6d756c74697369676e61747572651e7665726966795f6d756c74697369676e61747572655f696e7465726e616c177665726966795f6e6f726d616c5f7369676e6174757265207665726966795f6e6f726d616c5f7369676e61747572655f696e7465726e616c237665726966795f70726f6f665f6f665f706f7373657373696f6e5f696e7465726e616c167665726966795f7369676e61747572655f73686172651f7665726966795f7369676e61747572655f73686172655f696e7465726e616c05627974657310696e76616c69645f617267756d656e7404736f6d65046e6f6e65000000000000000000000000000000000000000000000000000000000000000103080100000000000000030830000000000000000a0231308a53e7ae5270e3e765cd8a4032c2e77c6f7e87a44ebb85bf28a4d7865565698f975346714262f9e47c6f3e0d5d9516600a026160a01a65854f987d3434149b7f08f70730e30b241984e8712bc2aca885d632aafced4c3f661209debb6b1c8601326623cc16ca2f6c9edc53b7b88b7435fb6b05ddece418d2c34dc6aca2f5a11a79e67774582c14084a01dcb7820e4cb4bad0ea8d03086000000000000000126170746f733a3a6d657461646174615f7630510101000000000000000d455a45524f5f5055424b455953395468652063616c6c65722077617320737570706f73656420746f20696e707574206f6e65206f72206d6f7265207075626c6963206b6579732e000201250a02010201250a02020201250a02030201250a02040201250a02050201250a020001000019050b00100014110f020101000019040b00100014020201000019040b001001140203010000060c0b0011040c020c010b0203090700111b270b0112010204000200050100001b100b0011060c030c020b030307050c0b02120038000c01050e38010c010b0102060002000701000019030b001202020801000019040b0010021402090100000b0d0a001111030405090b00120338020c01050b38030c010b01020a0100000d100a000b0110021411180307050c0b00120438040c02050e38050c020b02020b01000019040b00100314020c01000019040b00100414020d01000019030b001205020e01000019050b00100514110f020f0002001001000019040b0010051402110002001201000019070b001000140b010b02111302130002001401000019090b001000140b011001140b02111502150002001601000019090b001005140b011003140b0211170217000200180002001901000019090b001005140b011004140b02111a021a00020000000100020003000400050000", + "abi": { + "address": "0x1", + "name": "bls12381", + "friends": [], + "exposed_functions": [ + { + "name": "aggr_or_multi_signature_subgroup_check", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature" + ], + "return": [ + "bool" + ] + }, + { + "name": "aggr_or_multi_signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature" + ], + "return": [ + "vector" + ] + }, + { + "name": "aggregate_pubkey_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrPublicKeysWithPoP" + ], + "return": [ + "vector" + ] + }, + { + "name": "aggregate_pubkeys", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector<0x1::bls12381::PublicKeyWithPoP>" + ], + "return": [ + "0x1::bls12381::AggrPublicKeysWithPoP" + ] + }, + { + "name": "aggregate_signatures", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector<0x1::bls12381::Signature>" + ], + "return": [ + "0x1::option::Option<0x1::bls12381::AggrOrMultiSignature>" + ] + }, + { + "name": "proof_of_possession_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::bls12381::ProofOfPossession" + ] + }, + { + "name": "proof_of_possession_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::ProofOfPossession" + ], + "return": [ + "vector" + ] + }, + { + "name": "public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::bls12381::PublicKey>" + ] + }, + { + "name": "public_key_from_bytes_with_pop", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector", + "&0x1::bls12381::ProofOfPossession" + ], + "return": [ + "0x1::option::Option<0x1::bls12381::PublicKeyWithPoP>" + ] + }, + { + "name": "public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::PublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "public_key_with_pop_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::PublicKeyWithPoP" + ], + "return": [ + "vector" + ] + }, + { + "name": "signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::bls12381::Signature" + ] + }, + { + "name": "signature_subgroup_check", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature" + ], + "return": [ + "bool" + ] + }, + { + "name": "signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature" + ], + "return": [ + "vector" + ] + }, + { + "name": "verify_aggregate_signature", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature", + "vector<0x1::bls12381::PublicKeyWithPoP>", + "vector>" + ], + "return": [ + "bool" + ] + }, + { + "name": "verify_multisignature", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature", + "&0x1::bls12381::AggrPublicKeysWithPoP", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "verify_normal_signature", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature", + "&0x1::bls12381::PublicKey", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "verify_signature_share", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature", + "&0x1::bls12381::PublicKeyWithPoP", + "vector" + ], + "return": [ + "bool" + ] + } + ], + "structs": [ + { + "name": "AggrOrMultiSignature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "AggrPublicKeysWithPoP", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ProofOfPossession", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "PublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "PublicKeyWithPoP", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "Signature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000402040403080f05170a072153087420069401220ab601050cbb01220ddd01020fdf0102000100020003080000040001000005020000010703000000010202060c0201060c0767656e6573697308636861696e5f69641073797374656d5f61646472657373657307436861696e4964036765740a696e697469616c697a65026964166173736572745f6170746f735f6672616d65776f726b00000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000100020106020001000100000507002b00100014020103000000070a0011020b000b0112002d00020000000000", + "abi": { + "address": "0x1", + "name": "chain_id", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "get", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u8" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u8" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ChainId", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "u8" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000402040403082e04360c05421c075e7f08dd012006fd010a108702600ce702550fbc030400020003010707000004000101000005000200000600030000080004000009000500000a000600000b000700010c090a00010d0a0300000200030004000500060007010a0201090001050101010800010401030102000106080001060a0203616e790c636f707961626c655f616e790866726f6d5f62637306737472696e670a66726f6d5f62797465730a746f5f6164647265737307746f5f626f6f6c06537472696e6709746f5f737472696e6707746f5f7531323806746f5f75363405746f5f753805627974657313696e7465726e616c5f636865636b5f75746638000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f76304c0101000000000000000d45494e56414c49445f55544638345554463820636865636b206661696c656420696e20636f6e76657273696f6e2066726f6d20627974657320746f20737472696e67000302000101000008030b003800020201000008030b0038010203010000040b0b0038020c010e011107110803090700270b01020401000008030b003803020501000008030b003804020601000008030b003805020000000100", + "abi": { + "address": "0x1", + "name": "from_bcs", + "friends": [ + "0x1::any", + "0x1::copyable_any" + ], + "exposed_functions": [ + { + "name": "from_bytes", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "vector" + ], + "return": [ + "T0" + ] + }, + { + "name": "to_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "address" + ] + }, + { + "name": "to_bool", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "to_string", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "to_u128", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u128" + ] + }, + { + "name": "to_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u64" + ] + }, + { + "name": "to_u8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u8" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000802080c0314a90104bd011005cd01b701078403e90308ed0620068d075010dd07ac040a890c140c9d0ca6080dc3140c000000010002000300040400021b07020000000000050001000006020100000703010000080401000009000100000a040500000b010600000c070600000d000100000e060800000f090100001000010000110a0b0000120a01000013040100001402010000150301000016010c0000170a010000180a010000190d0800021d1011020404011e010100011f0101000220130802040402211605020404020b081702040403221914010003231a1b01000223101c0204040224161f020404150f180f190f1a0f1b121c121d0f1e0f0307080005030103020608000303060800030302060800050101010800020303000406080003030301060800010a05010402070800030607080005030303070302050302070b01020900090106090001070901010503070b0102090009010900090102010303070800030302060b010209000901060900010b0102090009010707080005070800050703030302060a090006090002070a090003010900020900090102040407070800050708000507080003030106090108706f6f6c5f753634056572726f720a73696d706c655f6d617006766563746f7204506f6f6c0a6164645f73686172657310616d6f756e745f746f5f73686172657321616d6f756e745f746f5f7368617265735f776974685f746f74616c5f636f696e730762616c616e6365066275795f696e08636f6e7461696e73066372656174651a6372656174655f776974685f7363616c696e675f666163746f720d6465647563745f7368617265730d64657374726f795f656d707479146d756c7469706c795f7468656e5f6469766964650d72656465656d5f7368617265730c7368617265686f6c64657273127368617265686f6c646572735f636f756e7406736861726573107368617265735f746f5f616d6f756e74217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e7307746f5f753132380b746f74616c5f636f696e730c746f74616c5f736861726573127570646174655f746f74616c5f636f696e73127368617265686f6c646572735f6c696d69740953696d706c654d61700e7363616c696e675f666163746f720a626f72726f775f6d757410696e76616c69645f617267756d656e740d696e76616c69645f7374617465036164640c636f6e7461696e735f6b657908696e6465785f6f660672656d6f766506626f72726f770000000000000000000000000000000000000000000000000000000000000001030804000000000000000308030000000000000003080600000000000000030807000000000000000308010000000000000003080500000000000000030802000000000000000308ffffffffffffffff126170746f733a3a6d657461646174615f7630970407010000000000000016455348415245484f4c4445525f4e4f545f464f554e44205368617265686f6c646572206e6f742070726573656e7420696e20706f6f6c2e02000000000000001645544f4f5f4d414e595f5348415245484f4c444552532c54686572652061726520746f6f206d616e79207368617265686f6c6465727320696e2074686520706f6f6c2e03000000000000001245504f4f4c5f49535f4e4f545f454d5054591e43616e6e6f742064657374726f79206e6f6e2d656d70747920706f6f6c2e04000000000000001445494e53554646494349454e545f5348415245533f43616e6e6f742072656465656d206d6f726520736861726573207468616e20746865207368617265686f6c6465722068617320696e2074686520706f6f6c2e05000000000000001c455348415245484f4c4445525f5348415245535f4f564552464c4f57315368617265686f6c6465722063616e6e6f742068617665206d6f7265207468616e207536342e6d6178207368617265732e06000000000000001a45504f4f4c5f544f54414c5f434f494e535f4f564552464c4f5729506f6f6c277320746f74616c20636f696e732063616e6e6f7420657863656564207536342e6d61782e07000000000000001b45504f4f4c5f544f54414c5f5348415245535f4f564552464c4f572a506f6f6c277320746f74616c207368617265732063616e6e6f7420657863656564207536342e6d61782e0002061a0317031803130b01020503110a051c03000000000e4c0a000a010c040c030b032e0b041105030a05260b000f000e0138000c080a08140c0707070a07170a0226031d0b080107051116270b070b02160a08150b08140c06054a0a0206000000000000000024032b05440a00100141120a001002142303380b000107061117270a000f010a0144120b000f000b010a0238010b020c0505480b00010b020c050b050c060b06020101000008070a000b010b001003141102020201000014220a00100314060000000000000000210307050a080c0305100a00100414060000000000000000210c030b03031305180b00010b010c0405200a000b010b001004140b02110a0c040b04020301000001080a000b01110e0c020b000b02110f020401000015430a0206000000000000000021030505090b0001060000000000000000020a000a020c040c030b032e0b0411010c0507070a00100314170a0226031f0b0001070211162707070a00100414170a0526032c0b000107021116270a001003140b02160a000f03150a001004140a05160a000f04150b000b010a051100010b05020501000008050b0010000e013802020601000008040b000601000000000000001107020701000008080b000600000000000000000600000000000000003803401200000000000000000b011200020800000018470a000a010c040c030b032e0b041105030e0b000107041116270a000a010c060c050b052e0b06110e0a0226031e0b000107001116270a000f000e0138000c070a07140b02170a07150b07140c080a0806000000000000000021033105430a0010010e0138040c09010a000f010b093805010b000f000e013806010105450b00010b08020901000008120e0010031406000000000000000021030907011117270b001300010101010101020a0100001d150b0010051411110c050b0111110b021111180a05180b0311110b05181a0c040b0434020b0100001e470a000a010c040c030b032e0b041105030e0b000107041116270a000a010c060c050b052e0b06110e0a0226031e0b000107001116270a0206000000000000000021032305270b0001060000000000000000020a000a020c080c070b072e0b08110f0c090a001003140a09170a000f03150a001004140a02170a000f04150b000b010b021108010b09020c01000008040b00100114020d01000008040b0010014112020e01000001120a000a0111050305050c0b0010000e013807140c0205100b00010600000000000000000c020b02020f01000008070a000b010b001003141110021001000014220a00100314060000000000000000210307050a080c0305100a00100414060000000000000000210c030b03031305180b00010600000000000000000c0405200a000b010b020b00100414110a0c040b04021100000008030b0035021201000008040b00100314021301000008040b00100414021401000008050b010b000f03150200030004000000010002000500", + "abi": { + "address": "0x1", + "name": "pool_u64", + "friends": [], + "exposed_functions": [ + { + "name": "amount_to_shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "amount_to_shares_with_total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "balance", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "buy_in", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::pool_u64::Pool", + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "create", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::pool_u64::Pool" + ] + }, + { + "name": "create_with_scaling_factor", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "u64" + ], + "return": [ + "0x1::pool_u64::Pool" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::pool_u64::Pool" + ], + "return": [] + }, + { + "name": "multiply_then_divide", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64", + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "redeem_shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::pool_u64::Pool", + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "shareholders", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "vector
" + ] + }, + { + "name": "shareholders_count", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "u64" + ] + }, + { + "name": "shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "shares_to_amount", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "shares_to_amount_with_total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "u64" + ] + }, + { + "name": "total_shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "u64" + ] + }, + { + "name": "update_total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::pool_u64::Pool", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Pool", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "shareholders_limit", + "type": "u64" + }, + { + "name": "total_coins", + "type": "u64" + }, + { + "name": "total_shares", + "type": "u64" + }, + { + "name": "shares", + "type": "0x1::simple_map::SimpleMap" + }, + { + "name": "shareholders", + "type": "vector
" + }, + { + "name": "scaling_factor", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602060e03142f04430405473f078601fa010880032006a0031410b403770aab040c0cb7047a0db1050400000001000200030700000407000207070100000005000100000602000000080304000009050600000a000700000b080000010d0b0b00020e0d0e0100020f090e010007010801010a0201080001060800030a0202060801010b02010800030a02020a02020a0201010801010608010001020103030b020108000a0201010900010b0201090009736563703235366b31056572726f72066f7074696f6e1145434453415261775075626c69634b65790e45434453415369676e61747572652265636473615f7261775f7075626c69635f6b65795f66726f6d5f36345f62797465731d65636473615f7261775f7075626c69635f6b65795f746f5f6279746573064f7074696f6e0d65636473615f7265636f7665721665636473615f7265636f7665725f696e7465726e616c1a65636473615f7369676e61747572655f66726f6d5f62797465731865636473615f7369676e61747572655f746f5f627974657305627974657310696e76616c69645f617267756d656e7404736f6d65046e6f6e6500000000000000000000000000000000000000000000000000000000000000010308010000000000000003084000000000000000126170746f733a3a6d657461646174615f7630630101000000000000000d455f444553455249414c495a454b416e206572726f72206f63637572726564207768696c6520646573657269616c697a696e672c20666f72206578616d706c652064756520746f2077726f6e6720696e7075742073697a652e0002010c0a020102010c0a0200010000090b0e00410a070121030807001106270b001200020101000009040b0010001402020100000c140b000b010b0210011411030c050c040b05030b05100b04110038000c03051238010c030b03020300020004010000090b0e00410a070121030807001106270b001201020501000009040b00100114020000010000", + "abi": { + "address": "0x1", + "name": "secp256k1", + "friends": [], + "exposed_functions": [ + { + "name": "ecdsa_raw_public_key_from_64_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::secp256k1::ECDSARawPublicKey" + ] + }, + { + "name": "ecdsa_raw_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::secp256k1::ECDSARawPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "ecdsa_recover", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector", + "u8", + "&0x1::secp256k1::ECDSASignature" + ], + "return": [ + "0x1::option::Option<0x1::secp256k1::ECDSARawPublicKey>" + ] + }, + { + "name": "ecdsa_signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::secp256k1::ECDSASignature" + ] + }, + { + "name": "ecdsa_signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::secp256k1::ECDSASignature" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "ECDSARawPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ECDSASignature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010006020604030a23052d130740c5010885022006a502621087039a010aa104050ca6047f0da505020fa70502000100020003000408000005000100000600010000070200000008030000020a020000020b020000010c01010000010301060c03060c050301080002070800030767656e657369730974696d657374616d70056572726f721073797374656d5f6164647265737365731743757272656e7454696d654d6963726f7365636f6e6473106e6f775f6d6963726f7365636f6e64730b6e6f775f7365636f6e6473147365745f74696d655f6861735f73746172746564127570646174655f676c6f62616c5f74696d650c6d6963726f7365636f6e6473166173736572745f6170746f735f6672616d65776f726b096173736572745f766d10696e76616c69645f617267756d656e7400000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000030840420f00000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000000126170746f733a3a6d657461646174615f763085010201000000000000000e454e4f545f4f5045524154494e472f54686520626c6f636b636861696e206973206e6f7420696e20616e206f7065726174696e672073746174652079657402000000000000001245494e56414c49445f54494d455354414d5021416e20696e76616c69642074696d657374616d70207761732070726f766964656400020109030001000100000507032b001000140201010001000004110007021a020203000004070a0011040b0006000000000000000012002d0002030100010005260b00110507032a000c030a031000140c040b01070421030e05180b040a022103170b0301070011062705210b040a022303210b030107001106270b020b030f0015020000000000", + "abi": { + "address": "0x1", + "name": "timestamp", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "now_microseconds", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "now_seconds", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "set_time_has_started", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "update_global_time", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "CurrentTimeMicroseconds", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "microseconds", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000009010004020408030c1b05271007375b089201200ab2010b0cbd012c0de90106000000010002070001060700000300010000040002000005000200000703040100000803050100010608000105010a020001080101080009747970655f696e666f06737472696e670854797065496e666f0f6163636f756e745f616464726573730b6d6f64756c655f6e616d650b7374727563745f6e616d6506537472696e6709747970655f6e616d6507747970655f6f6600000000000000000000000000000000000000000000000000000000000000010002030305040a02050a020001000003040b00100014020101000003040b00100114020201000003040b0010021402030102000401020000000001000200", + "abi": { + "address": "0x1", + "name": "type_info", + "friends": [], + "exposed_functions": [ + { + "name": "account_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::type_info::TypeInfo" + ], + "return": [ + "address" + ] + }, + { + "name": "module_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::type_info::TypeInfo" + ], + "return": [ + "vector" + ] + }, + { + "name": "struct_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::type_info::TypeInfo" + ], + "return": [ + "vector" + ] + }, + { + "name": "type_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "type_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::type_info::TypeInfo" + ] + } + ], + "structs": [ + { + "name": "TypeInfo", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account_address", + "type": "address" + }, + { + "name": "module_name", + "type": "vector" + }, + { + "name": "struct_name", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b010002020204030619051f0f072e3c086a20068a011e10a801f0020a9804090ca1041c0dbd0402000000010400000200010000030201000004030400000503040000060001000207080004000108000106080001040a61676772656761746f720a41676772656761746f72036164640764657374726f79056c696d69740472656164037375620668616e646c65036b65790000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000126170746f733a3a6d657461646174615f7630db02030100000000000000144541474752454741544f525f4f564552464c4f57575768656e207468652076616c7565206f662061676772656761746f72202861637475616c206f7220616363756d756c6174656429206f766572666c6f77732028726169736564206279206e617469766520636f6465292e0200000000000000154541474752454741544f525f554e444552464c4f576d5768656e207468652076616c7565206f662061676772656761746f72202861637475616c206f7220616363756d756c617465642920756e646572666c6f77732c20692e6520676f65732062656c6f77207a65726f2028726169736564206279206e617469766520636f6465292e03000000000000000e454e4f545f535550504f52544544415768656e2061676772656761746f722066656174757265206973206e6f7420737570706f727465642028726169736564206279206e617469766520636f6465292e00020307050805040400010200010102000201000001040b00100014020301020004010200000200", + "abi": { + "address": "0x1", + "name": "aggregator", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::aggregator::Aggregator", + "u128" + ], + "return": [] + }, + { + "name": "destroy", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::aggregator::Aggregator" + ], + "return": [] + }, + { + "name": "limit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::aggregator::Aggregator" + ], + "return": [ + "u128" + ] + }, + { + "name": "read", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::aggregator::Aggregator" + ], + "return": [ + "u128" + ] + }, + { + "name": "sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::aggregator::Aggregator", + "u128" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Aggregator", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "handle", + "type": "address" + }, + { + "name": "key", + "type": "address" + }, + { + "name": "limit", + "type": "u128" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d0100100210320342830104c5011605db01e00107bb03a80408e307200683087710fa088d020a870b1a0ca10bc0030de10e060fe70e020001000200030004000500060007000800090800000a0400000b0800000c0800010e05010001031207010000011405010001011f0401000101270501000105280700000d000100000f02010000100301000011000100001304050000150006000016070100041b000400031c0a0b0100031d0a0c0100071e0e0f010006200001000121000101000116121301000122140101000623000100022409090001111701010003250119010003260f19010005291b1c00012a1d1e0100012b1f010100022c090900080909090a0d0c110d110e111111120913091511161101060c0003060c060c0b04010800020c050105010b050103020b060108000b0401080003060c050304070a0801030b0501030b04010800010301060b0501090001010106090001080102070a090003010900010b070108000108000203060b04010900010b0701090002050b0701090005070a080103070a080106080103010b04010800010b0401090005060a0801060801030b05010303010b05010900030b060108000b080108000b04010800010a0201080905060c080908090201030b060109000b080109000b04010900010b0801090003050b07010800060b040108000767656e657369730a6170746f735f636f696e04636f696e056572726f72066f7074696f6e067369676e657206737472696e671073797374656d5f61646472657373657306766563746f72094170746f73436f696e1744656c6567617465644d696e744361706162696c6974790b44656c65676174696f6e730c4d696e7443617053746f726515636c61696d5f6d696e745f6361706162696c6974790e4d696e744361706162696c6974791b636f6e6669677572655f6163636f756e74735f666f725f746573741864656c65676174655f6d696e745f6361706162696c6974791064657374726f795f6d696e745f636170064f7074696f6e0f66696e645f64656c65676174696f6e0e4275726e4361706162696c6974790a696e697469616c697a65046d696e740b64756d6d795f6669656c6402746f05696e6e6572086d696e745f6361700a616464726573735f6f660769735f736f6d6506626f72726f770b737761705f72656d6f766504436f696e166173736572745f6170746f735f6672616d65776f726b087265676973746572076465706f736974146173736572745f636f72655f7265736f7572636510696e76616c69645f617267756d656e74046e6f6e6504736f6d6510467265657a654361706162696c69747906537472696e67047574663825696e697469616c697a655f776974685f706172616c6c656c697a61626c655f737570706c791264657374726f795f667265657a655f636170096e6f745f666f756e6400000000000000000000000000000000000000000000000000000000000000010308020000000000000003080300000000000000030801000000000000000520000000000000000000000000000000000000000000000000000000000a550c18052000000000000000000000000000000000000000000000000000000000000000010a020b0a4170746f7320436f696e0a020403415054126170746f733a3a6d657461646174615f7630f80103010000000000000010454e4f5f4341504142494c4954494553254163636f756e7420646f6573206e6f742068617665206d696e74206361706162696c69747902000000000000001245414c52454144595f44454c454741544544444d696e74206361706162696c6974792068617320616c7265616479206265656e2064656c65676174656420746f20746869732073706563696669656420616464726573730300000000000000154544454c45474154494f4e5f4e4f545f464f554e443943616e6e6f742066696e642064656c65676174696f6e206f66206d696e74206361706162696c69747920746f2074686973206163636f756e7400020117010102011805020201190a08010302011a0b0401080000010402020308220a00110711040c030e033800030b0b00010701270e033801140c0207032a020f000c010b010b02380213010107032b031001140c040b000b0412032d03020103000010150b00110b0a01380306ffffffffffffffff0e0238040c030a0111070b0338050a010b0212032d030b01400d000000000000000012022d02020201040102152d0e00110f07032a020f000c040600000000000000000c060a060a042e410d23030f05280a040a060c030c020b022e0b03420d0c050b051002140a012203230b040107001110270b06060100000000000000160c0605080b040b011201440d02030300010316090b00110b07042c0313030c010b013806020400000102182807032b0210000c010600000000000000000c030a01410d0c0538070c040a030a0523031005260a010a03420d0c020b021002140a0021031b05210b01010b0338080c0405260b03060100000000000000160c03050b0b0402050300001a160a00110b0a00070511140706111431080838090c030c020c010b000a0312032d030b02380a0b010b0302060104010320150b0011070c030a032903030907021117270b032b0310010c050b020b0538040c040b010b04380502020003000100000000", + "abi": { + "address": "0x1", + "name": "aptos_coin", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "claim_mint_capability", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "configure_accounts_for_test", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "&signer", + "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + }, + { + "name": "delegate_mint_capability", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address" + ], + "return": [] + }, + { + "name": "destroy_mint_cap", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>", + "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + ] + }, + { + "name": "mint", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "AptosCoin", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "DelegatedMintCapability", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to", + "type": "address" + } + ] + }, + { + "name": "Delegations", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "inner", + "type": "vector<0x1::aptos_coin::DelegatedMintCapability>" + } + ] + }, + { + "name": "MintCapStore", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "mint_cap", + "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000007010004030416041a02051c0d07293f0868200c88011900000001000200000000030001000004020101000105020001000303010a02010301060900010900000a6170746f735f6861736803626373096b656363616b323536087369705f68617368137369705f686173685f66726f6d5f76616c756508746f5f6279746573000000000000000000000000000000000000000000000000000000000000000100010200010102000201000000060b0038000c010b0111010200", + "abi": { + "address": "0x1", + "name": "aptos_hash", + "friends": [], + "exposed_functions": [ + { + "name": "keccak256", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "vector" + ] + }, + { + "name": "sip_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u64" + ] + }, + { + "name": "sip_hash_from_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0" + ], + "return": [ + "u64" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000202020403062305292707506d08bd012006dd012810850281010a8603080c8e03ed030dfb0604000000010700000200010000030203000004000300000503040000060506000007050600000805060002060800030101010608000103010800020708000300020a0103010701060708000307010303030a6269745f766563746f7209426974566563746f720c69735f696e6465785f736574066c656e677468206c6f6e676573745f7365745f73657175656e63655f7374617274696e675f6174036e6577037365740a73686966745f6c65667405756e736574096269745f6669656c64000000000000000000000000000000000000000000000000000000000000000103080000020000000000030801000200000000000308000400000000000003080100000000000000126170746f733a3a6d657461646174615f76306d0200000200000000000645494e444558235468652070726f766964656420696e646578206973206f7574206f6620626f756e6473010002000000000007454c454e47544828416e20696e76616c6964206c656e677468206f6620626974766563746f722077617320676976656e0002020303090a010001000006100a010a001000410123030a0b00010700270b0010000b01420114020101000006040b0010004101020201000003250a010a0010011423030a0b00010700270a010c020a020a0010011423031305210a000a021100200319051c0b000105210b02060100000000000000160c02050c0b020b0117020301000007230a000600000000000000002403060701270a00070223030c0701270600000000000000000c02400100000000000000000c01280a020a00230316051e0d010944010b02060100000000000000160c020510280b000b011200020401000008130a010a001000410123030a0b00010700270b000f000b0143010c02080b02150205010000095d0a010a0010011426030705220a00100041010c070600000000000000000c050a050a07230312051f0a000f000a0543010c04090b04150b05060100000000000000160c05050d0b0001055c0a010c060a060a0010011423032b05450a000a060c030c020b022e0b0311000335053b0a000a060a0117110405400a000a060a011711060b06060100000000000000160c0605240a001001140b01170c060a060a00100114230352055a0a000a0611060b06060100000000000000160c06054b0b0001020601000008130a010a001000410123030a0b00010700270b000f000b0143010c02090b0215020001000000", + "abi": { + "address": "0x1", + "name": "bit_vector", + "friends": [], + "exposed_functions": [ + { + "name": "is_index_set", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bit_vector::BitVector", + "u64" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bit_vector::BitVector" + ], + "return": [ + "u64" + ] + }, + { + "name": "longest_set_sequence_starting_at", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bit_vector::BitVector", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::bit_vector::BitVector" + ] + }, + { + "name": "set", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::bit_vector::BitVector", + "u64" + ], + "return": [] + }, + { + "name": "shift_left", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::bit_vector::BitVector", + "u64" + ], + "return": [] + }, + { + "name": "unset", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::bit_vector::BitVector", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "BitVector", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "length", + "type": "u64" + }, + { + "name": "bit_field", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e0100080208180320620482010e059001740784029602089a042006ba041e10d804ef010ac706150bdc06080ce406e0020dc409080ecc09080000000100020003000403010001000508010001000608010001000702010001000800010100000900020100000a03040102000b00040100000c05040100000d06070100000e08040102000f0904010000100a07010000110b07010003140d0e010002150b070001160f0f0003170d1101000318120c010001190f0f00011a0f0f00090c0a0c02070d0c0e0c06070a0702060c060900010b00010900010b0301090002070a0900090000030b00010900060900060c020b03010900060900010502070a0900060900030b0001090006090005020b0001090006090001060c01090002060a09000609000101010304070a0900060900010302010302070a090003030505050a6361706162696c697479056572726f72067369676e657206766563746f72034361701043617044656c65676174655374617465084361705374617465094c696e65617243617007616371756972650e616371756972655f6c696e6561720b6164645f656c656d656e74066372656174650864656c6567617465106c696e6561725f726f6f745f616464720e72656d6f76655f656c656d656e74067265766f6b6509726f6f745f616464721076616c69646174655f6163717569726504726f6f740964656c65676174657308636f6e7461696e730a616464726573735f6f660e616c72656164795f65786973747308696e6465785f6f660672656d6f76650d696e76616c69645f7374617465096e6f745f666f756e640000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000126170746f733a3a6d657461646174615f7630da010301000000000000001a454341504142494c4954595f414c52454144595f4558495354533b4361706162696c697479207265736f7572636520616c726561647920657869737473206f6e2074686520737065636966696564206163636f756e74020000000000000015454341504142494c4954595f4e4f545f464f554e441d4361706162696c697479207265736f75726365206e6f7420666f756e640300000000000000094544454c45474154452b4163636f756e7420646f6573206e6f7420686176652064656c656761746564207065726d697373696f6e7300020112050102011205020201130a050302011205000c030c020c010c00010002010204040b00380039000201010002010204040b0038003901020200000008120a000e010c030c020b022e0b03380120030b050f0b000b01440c05110b0001020301000007110a00110b0c020b023b0220030c0b00010700110c270b004007000000000000000039023f0202040100010207180a02110b0c030a033b030307050a0b0201020b020e0037001439033f030e003700143c0236010b033802020501000004040e00370214020600000010150a000b010c030c020b022e0b0338030c050c040b04030d05120b000b0538040105140b00010207010002010207120a023b032003050506020a023e033a03010e003700143c0236010e023805020801000004040e003700140209000002010213280b00110b0c020a023b030307051e0a023d033703140c030a033b0203120702110f270a033d0237010e023806031b0702110f270b030c0105260a023b02032407011110270b020c010b01020000020003000100000c010c020c030c00", + "abi": { + "address": "0x1", + "name": "capability", + "friends": [], + "exposed_functions": [ + { + "name": "acquire", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "&T0" + ], + "return": [ + "0x1::capability::Cap" + ] + }, + { + "name": "acquire_linear", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "&T0" + ], + "return": [ + "0x1::capability::LinearCap" + ] + }, + { + "name": "create", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "&T0" + ], + "return": [] + }, + { + "name": "delegate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::Cap", + "&T0", + "&signer" + ], + "return": [] + }, + { + "name": "linear_root_addr", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::LinearCap", + "&T0" + ], + "return": [ + "address" + ] + }, + { + "name": "revoke", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::Cap", + "&T0", + "address" + ], + "return": [] + }, + { + "name": "root_addr", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::Cap", + "&T0" + ], + "return": [ + "address" + ] + } + ], + "structs": [ + { + "name": "Cap", + "is_native": false, + "abilities": [ + "copy", + "drop" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "root", + "type": "address" + } + ] + }, + { + "name": "CapDelegateState", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "root", + "type": "address" + } + ] + }, + { + "name": "CapState", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "delegates", + "type": "vector
" + } + ] + }, + { + "name": "LinearCap", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "root", + "type": "address" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010004020404030820042802052a2d07576808bf012006df010910e801240a8c02050c9102eb010dfc030200000001000202000003000101000004020100000503040000060304000007030400010906070100050502060900060900010800020a020a0201060800010101090001060900010a0200080108000800030203020301020a636f6d70617261746f720362637306526573756c7407636f6d7061726511636f6d706172655f75385f766563746f720869735f657175616c0f69735f677265617465725f7468616e0f69735f736d616c6c65725f7468616e05696e6e657208746f5f62797465730000000000000000000000000000000000000000000000000000000000000001020100020102020101126170746f733a3a6d657461646174615f76301001000000000000000005455155414c00000201080200010000020a0b0038000c020b0138000c030b020b0311010201010000094f0e00410a0c070e01410a0c090600000000000000000c050a050a0723030d05120a050a09230c020514090c020b02031705360e000a05420a140c060e010a05420a140c080a060a08230326052907021200020b060b0824032e053107011200020b05060100000000000000160c0505080a070a0923033b053f070212000c04054d0b070b092403440548070112000c03054b070012000c030b030c040b04020201000008060b00100014070021020301000008060b00100014070121020401000008060b0010001407022102000000", + "abi": { + "address": "0x1", + "name": "comparator", + "friends": [], + "exposed_functions": [ + { + "name": "compare", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0", + "&T0" + ], + "return": [ + "0x1::comparator::Result" + ] + }, + { + "name": "compare_u8_vector", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector", + "vector" + ], + "return": [ + "0x1::comparator::Result" + ] + }, + { + "name": "is_equal", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::comparator::Result" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_greater_than", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::comparator::Result" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_smaller_than", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::comparator::Result" + ], + "return": [ + "bool" + ] + } + ], + "structs": [ + { + "name": "Result", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "inner", + "type": "u8" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e01000802081a03226d048f010e059d01e20107ff02e80108e7042006870514109b05740a8f06150ba406040ca806f4040d9c0b060ea20b06000000010002000300040702000000000005070200000000030c070100000117020000060001020404000702030204040008040502040400090206020404000a0107020404000b0701020404000d0208020404000e090a020404000f040b02040403130d06010002140a0a0003150f10010003160d060100031801160100031910160100011a17180100011b190600060b090a0b0a0c0a0d0a0e0a0f1003070b010209000901090009010002060b0102090009010609000106090102070b010209000901060900010709010101010b010209000901020b0201030b02010301060b0102090009010103020900090106070b010209000901060900030b0201030b0201030301060b02010900010b00020900090101070b0201090001090002030b02010304070b010209000901060900030b020103010b020103010a0b000209000901090803010b0201030b02010303030306090003010b02010900020609000609000108030106080307070b0102090009010609000309000b0201030309010a73696d706c655f6d61700a636f6d70617261746f72056572726f72066f7074696f6e07456c656d656e740953696d706c654d61700361646406626f72726f770a626f72726f775f6d75740c636f6e7461696e735f6b6579066372656174650d64657374726f795f656d707479064f7074696f6e0466696e64066c656e6774680672656d6f7665036b65790576616c756504646174610769735f6e6f6e6510696e76616c69645f617267756d656e7407657874726163740769735f736f6d6506526573756c74046e6f6e6504736f6d6507636f6d706172650f69735f736d616c6c65725f7468616e00000000000000000000000000000000000000000000000000000000000000010308010000000000000003080200000000000000126170746f733a3a6d657461646174615f76306002010000000000000013454b45595f414c52454144595f455849535453164d6170206b657920616c72656164792065786973747302000000000000000e454b45595f4e4f545f464f554e44144d6170206b6579206973206e6f7420666f756e64000202100900110901010201120a0b000209000901000b010b000100000c330a000e010c040c030b032e0b0438000c070c060e06380103120b00010700110a270a0036000b010b023900440e0d0738020c080a003700410e060100000000000000170c050a080a0523032605300a0036000a080a05470e0b08060100000000000000160c0805210b0001020101000011160a000b013800010c030e033803030d0b00010701110a270d0338020c020b0037000b02420e37010202010000121b0a000b010c030c020b022e0b033800010c050e05380303120b00010701110a270d0538020c040b0036000b04430e3601020301000013080b000b013800010c020e02380302040100000103400e00000000000000003901020501000014060b003a010c010b01460e00000000000000000206000000155d0a003700410e0c070a0706000000000000000021030905110b00010b010138040600000000000000003805020600000000000000000c060a070c0a0a060a0a22031a05380a060a0a0a06170602000000000000001a160c080a0037000a08420e37020c090b090a0138060c020e021110033005350b08060100000000000000160c0605370b080c0a05150a060b0722033d05460b010b0037000a06420e3702210c03054c0b00010b0101090c030b03034f05550b06380538040c050c04055a38040b0638050c050c040b040b05020701000001040b003700410e02080100001a350a000b010c030c020b022e0b033800010c060e06380303120b00010701110a270d0638020c070a003700410e060100000000000000170c040a070a04230320052c0a0036000a070a0706010000000000000016470e0b07060100000000000000160c07051b0b003600450e3a000c080c050b050b0802010000010000000b010b020b00", + "abi": { + "address": "0x1", + "name": "simple_map", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&mut 0x1::simple_map::SimpleMap", + "T0", + "T1" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "&T1" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&mut 0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "contains_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "create", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [], + "return": [ + "0x1::simple_map::SimpleMap" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "0x1::simple_map::SimpleMap" + ], + "return": [] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::simple_map::SimpleMap" + ], + "return": [ + "u64" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&mut 0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "T0", + "T1" + ] + } + ], + "structs": [ + { + "name": "Element", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "key", + "type": "T0" + }, + { + "name": "value", + "type": "T1" + } + ] + }, + { + "name": "SimpleMap", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "data", + "type": "vector<0x1::simple_map::Element>" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b010006020604030a23052d080735b60108eb0120068b023610c1029e010adf03050ce403490fad04020001000200030004080000050000000006000000000700010000080001000009020000010b030300020c02000000010101060c01030767656e657369730c636861696e5f737461747573056572726f721073797374656d5f6164647265737365731047656e65736973456e644d61726b65720e6173736572745f67656e65736973106173736572745f6f7065726174696e670a69735f67656e657369730c69735f6f7065726174696e670f7365745f67656e657369735f656e640b64756d6d795f6669656c640d696e76616c69645f7374617465166173736572745f6170746f735f6672616d65776f726b0000000000000000000000000000000000000000000000000000000000000001030802000000000000000308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f763089010201000000000000000e454e4f545f4f5045524154494e472e54686520626c6f636b636861696e206973206e6f7420696e20746865206f7065726174696e67207374617475732e02000000000000000c454e4f545f47454e455349532c54686520626c6f636b636861696e206973206e6f7420696e207468652067656e65736973207374617475732e0002010a01000100000006110203050701110527020101000000061103030507011105270202010000000407022900200203010000000307022900020403000000070a0011060b000912002d0002000000", + "abi": { + "address": "0x1", + "name": "chain_status", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "assert_genesis", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + }, + { + "name": "assert_operating", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + }, + { + "name": "is_genesis", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "bool" + ] + }, + { + "name": "is_operating", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "bool" + ] + }, + { + "name": "set_genesis_end", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + } + ], + "structs": [ + { + "name": "GenesisEndMarker", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000c020c08031428043c0605421b075d7c08d9012006f9010a108302740af702090c8003370db7030400000001000200030004000500060700040807000007000101070009020300000a01000100050904050100010c06070100020d080800030e0700010003000400060001090001080001060800010608010001080101060900010a0201030c636f707961626c655f616e7903626373056572726f720866726f6d5f62637306737472696e6709747970655f696e666f03416e79047061636b06537472696e6709747970655f6e616d6506756e7061636b046461746108746f5f627974657310696e76616c69645f617267756d656e740a66726f6d5f6279746573000000000000000000000000000000000000000000000000000000000000000103080000000000000000126170746f733a3a6d657461646174615f7630600100000000000000000e45545950455f4d49534d415443484754686520747970652070726f766964656420666f722060756e7061636b60206973206e6f74207468652073616d652061732077617320676976656e20666f7220607061636b602e0002020908010b0a0200010000040538000e0038011200020101000004030b0010000202010000040e38000e0010001421030907001105270e001001143802020000000100", + "abi": { + "address": "0x1", + "name": "copyable_any", + "friends": [], + "exposed_functions": [ + { + "name": "pack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop", + "store" + ] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::copyable_any::Any" + ] + }, + { + "name": "type_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::copyable_any::Any" + ], + "return": [ + "&0x1::string::String" + ] + }, + { + "name": "unpack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::copyable_any::Any" + ], + "return": [ + "T0" + ] + } + ], + "structs": [ + { + "name": "Any", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "type_name", + "type": "0x1::string::String" + }, + { + "name": "data", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000c020c0c03181f04370205391a0753cf0108a2022006c2022c10ee02680ad6030f0ce5035b0fc004020001000200030004000500060007070000080b00030c07000009000100000a000100040f02010001100404000511060701000212010100040502060c0a020001060c01020103010801010a02010900010708010767656e657369730c6761735f7363686564756c65056572726f720f7265636f6e66696775726174696f6e06737472696e671073797374656d5f616464726573736573047574696c08476173456e7472790b4761735363686564756c650a696e697469616c697a65107365745f6761735f7363686564756c65036b657906537472696e670376616c07656e7472696573166173736572745f6170746f735f6672616d65776f726b10696e76616c69645f617267756d656e740a66726f6d5f62797465730b7265636f6e66696775726500000000000000000000000000000000000000000000000000000000000000010308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630540101000000000000001545494e56414c49445f4741535f5343484544554c45345468652070726f766964656420676173207363686564756c652062797465732061726520656d707479206f7220696e76616c69640002020b08020d030102010e0a08000003000001110a0011020e01410306000000000000000024030c0b000107001103270b000b0138002d0102010100010108130b0011020e01410306000000000000000024030a070011032707012a010c020b0138000b0215110502000000", + "abi": { + "address": "0x1", + "name": "gas_schedule", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + }, + { + "name": "set_gas_schedule", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "GasEntry", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "key", + "type": "0x1::string::String" + }, + { + "name": "val", + "type": "u64" + } + ] + }, + { + "name": "GasSchedule", + "is_native": false, + "abilities": [ + "copy", + "drop", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "entries", + "type": "vector<0x1::gas_schedule::GasEntry>" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e01000a020a22032c4b04770c0583016a07ed01d40108c1032006e1030a10eb03570ac204150bd704020cd90495010dee05040ef2050400000001000200030004000508010001010b05010001010d05010001010f05010001011004010001041407000006000101000007020101000008030101000009040101000311040600021208080001130009010001060a01010004150c0d0001070e0b010001080f0901000116100101000109040101000607070709070a070b070c0702060c030005060c0a020a02020103060c050301060c0305060b000109000b0401090001050109000103010b04010900020b04010900060b01010900030b010109000b020109000b03010900010a0201080505060c0805080502010203060b0301090002050b040109000c6d616e616765645f636f696e04636f696e056572726f72067369676e657206737472696e670c4361706162696c6974696573046275726e0a696e697469616c697a65046d696e74087265676973746572086275726e5f6361700e4275726e4361706162696c6974790a667265657a655f63617010467265657a654361706162696c697479086d696e745f6361700e4d696e744361706162696c69747904436f696e0a616464726573735f6f66096e6f745f666f756e6408776974686472617706537472696e670475746638076465706f736974000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f76304301010000000000000010454e4f5f4341504142494c4954494553284163636f756e7420686173206e6f206361706162696c697469657320286275726e2f6d696e74292e0002030a0b010109000c0b020109000e0b030109000007000104010005170a0011040c020a023b00030b0b000107001105270b023d000c030b000b0138000c040b040b033700380102010104000b120a000b0111080b0211080b030b0438020c070c060c050b000b050b060b0739003f0002020104010005150b0011040c030a033b00030907001105270b033d000c040b020b04370138030c050b010b053804020301040001030b00380502000000020007010700", + "abi": { + "address": "0x1", + "name": "managed_coin", + "friends": [], + "exposed_functions": [ + { + "name": "burn", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "vector", + "vector", + "u8", + "bool" + ], + "return": [] + }, + { + "name": "mint", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + }, + { + "name": "register", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Capabilities", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "burn_cap", + "type": "0x1::coin::BurnCapability" + }, + { + "name": "freeze_cap", + "type": "0x1::coin::FreezeCapability" + }, + { + "name": "mint_cap", + "type": "0x1::coin::MintCapability" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010008020812031af202048c0312059e03e201078005f80b08f81020069811ee06108618fc010a821a110c931ae4080df722040000000100020003000407000005020000060700020f07010000000700010000080002000009030100000a040500000b060100000c070500000d080100000e09050200000010070a000011070b0000120705000013070b00001407010000150705000016070c000017070d0000180e0d000019050d00001a0f0d00001b070c00001c070c00001d100100001e111200001f1305000020140200002114070000221501000023071600002410170000250001000026000200002700050000280717000029180100002a191200002b1a0500002c140100002d121200002e1b0500002f10010000301112000031130500003215070000331c0d0000341d1e0000351f070000361c1700003707070000380e07000039050700003a060c00003b070700003c071700003d061700003e061700003f1c0d0000401d1e0000411f07000042060d0000431e1e0000440707000045000d00004607070000471c0d0000481d1e0000491f0700004a060700004b070700004c000d00034f2017010001500505000251222301000252002301004501450d07214702480247014801470d480d0001080101080003060802060801060802030a020608010a02010301060802010a0202060a0801060a080202060a0900060a0901010b03010800010b03010801010b03010802010802010401020206080106080102070801060801010708010306080106080101010608010106080002030101010206080106080202070801060802030608010a02010206080101020608020608020207080206080201070802020a020a0201060a09000208010802010900010b03010900030b03010801030102070208020307080106080101030708010a020102070801010307080206080208020c72697374726574746f323535056572726f72066f7074696f6e06766563746f7213436f6d7072657373656452697374726574746f0e52697374726574746f506f696e74065363616c61720962617365706f696e741462617365706f696e745f636f6d707265737365641462617365706f696e745f646f75626c655f6d756c1d62617365706f696e745f646f75626c655f6d756c5f696e7465726e616c0d62617365706f696e745f6d756c1662617365706f696e745f6d756c5f696e7465726e616c106d756c74695f7363616c61725f6d756c196d756c74695f7363616c61725f6d756c5f696e7465726e616c064f7074696f6e1f6e65775f636f6d707265737365645f706f696e745f66726f6d5f62797465731f6e65775f706f696e745f66726f6d5f36345f756e69666f726d5f6279746573286e65775f706f696e745f66726f6d5f36345f756e69666f726d5f62797465735f696e7465726e616c146e65775f706f696e745f66726f6d5f6279746573156e65775f706f696e745f66726f6d5f7368613531321e6e65775f706f696e745f66726f6d5f7368613531325f696e7465726e616c156e65775f7363616c61725f66726f6d5f6279746573166e65775f7363616c61725f66726f6d5f736861353132146e65775f7363616c61725f66726f6d5f75313238136e65775f7363616c61725f66726f6d5f753634126e65775f7363616c61725f66726f6d5f7538206e65775f7363616c61725f726564756365645f66726f6d5f33325f6279746573206e65775f7363616c61725f756e69666f726d5f66726f6d5f36345f627974657309706f696e745f61646410706f696e745f6164645f61737369676e12706f696e745f6164645f696e7465726e616c0e706f696e745f636f6d707265737317706f696e745f636f6d70726573735f696e7465726e616c10706f696e745f6465636f6d707265737319706f696e745f6465636f6d70726573735f696e7465726e616c0c706f696e745f657175616c730e706f696e745f6964656e7469747919706f696e745f6964656e746974795f636f6d7072657373656417706f696e745f6964656e746974795f696e7465726e616c1b706f696e745f69735f63616e6f6e6963616c5f696e7465726e616c09706f696e745f6d756c10706f696e745f6d756c5f61737369676e12706f696e745f6d756c5f696e7465726e616c09706f696e745f6e656710706f696e745f6e65675f61737369676e12706f696e745f6e65675f696e7465726e616c09706f696e745f73756210706f696e745f7375625f61737369676e12706f696e745f7375625f696e7465726e616c0e706f696e745f746f5f62797465730a7363616c61725f616464117363616c61725f6164645f61737369676e137363616c61725f6164645f696e7465726e616c0d7363616c61725f657175616c731b7363616c61725f66726f6d5f7368613531325f696e7465726e616c197363616c61725f66726f6d5f753132385f696e7465726e616c187363616c61725f66726f6d5f7536345f696e7465726e616c0d7363616c61725f696e76657274167363616c61725f696e766572745f696e7465726e616c1c7363616c61725f69735f63616e6f6e6963616c5f696e7465726e616c0d7363616c61725f69735f6f6e650e7363616c61725f69735f7a65726f0a7363616c61725f6d756c117363616c61725f6d756c5f61737369676e137363616c61725f6d756c5f696e7465726e616c0a7363616c61725f6e6567117363616c61725f6e65675f61737369676e137363616c61725f6e65675f696e7465726e616c0a7363616c61725f6f6e65257363616c61725f726564756365645f66726f6d5f33325f62797465735f696e7465726e616c0a7363616c61725f737562117363616c61725f7375625f61737369676e137363616c61725f7375625f696e7465726e616c0f7363616c61725f746f5f6279746573257363616c61725f756e69666f726d5f66726f6d5f36345f62797465735f696e7465726e616c0b7363616c61725f7a65726f04646174610668616e646c650869735f656d70747910696e76616c69645f617267756d656e7404736f6d65046e6f6e6500000000000000000000000000000000000000000000000000000000000000010a02212070cf3753475b9ff33e2f84413ed6b5052073bccc0a0a81789d3e5675dc2580560a022120083839dd491e57c5743710c39a91d6e502cab3cf0e279ae417d91ff2cb633e070a022120e87feda199d72b83de4f5b2d45d34805c57019c6c59c42cb70ee3d19aa996f750a0221201a0e978a90f6622d3747023f8ad8264da758aa1b88e040d1589e7b7f2376ef090a02212096d52d9262ee1e1aae79fbaee8c1d9068b0d01bf9a4579e618090c3d1088ae100a0221202ab50e383d7c210f74d5387330735f18315112d10dfb98fcce1e2620c0c014020a022120e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d760a022120fa0b3624b081c62f364d0b2839dcc76d7c3ab0e27e31beb2b9ed766575f28e760a022120dbfd97afd38a06f0138d0527efb28ead5b7109b486465913bf3aa472a8ed4e0d0308010000000000000003080200000000000000030803000000000000000a022120ecd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100a022120eed3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100a022120efd3f55c1a631258d69cf7a2def9de140000000000000000000000000000001003082000000000000000030800010000000000000a022120ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a022120edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100a0221201c95988d7431ecd670cf7d73f45befc6feffffffffffffffffffffffffffff0f0a022120d89ab38bd279024745639ed817ad3f64cc005b32db9939f91c521fc564a5c0080a02212002000000000000000000000000000000000000000000000000000000000000000a0221201cdc17fce0e9a5bbd9247e56bb016347bbba31edd5a9bb96d50bcd7a3f962a0f0a0221204e5ab4345d4708845913b4641bc27d5252a585101bcc4244d449f4a879d9f2040a0221206c3374a1894f62210aaa2fe186a6f92ce0aa75c2779581c295fc08179a73940c0a022120907633fe1c4b66a4a28d2dd7678386c353d0de5455d4fc9de8ef7ac31f35bb050a02212000000000000000000000000000000000000000000000000000000000000000000a0221200100000000000000000000000000000000000000000000000000000000000000126170746f733a3a6d657461646174615f7630e70103010000000000000022455f444946464552454e545f4e554d5f504f494e54535f414e445f5343414c4152533a546865206e756d626572206f66207363616c61727320646f6573206e6f74206d6174636820746865206e756d626572206f6620706f696e74732e02000000000000000d455f5a45524f5f504f494e5453284578706563746564206d6f7265207468616e207a65726f20706f696e747320617320696e7075742e03000000000000000e455f5a45524f5f5343414c415253294578706563746564206d6f7265207468616e207a65726f207363616c61727320617320696e7075742e0002014d0a020102014e030202014d0a020001000005070706111b010c000b00120102010100000003070612000202010000000a0b001000140b010b021000141103120102030002000401000000060b001000141105120102050002000601000000280a00380020030b0b01010b0001070a1146270a0138012003160b01010b0001070b1146270a0041010a01410d2103230b01010b000107091146270b000b01380212010207000200080100000a0d0a001120030405090b00120038030c01050b38040c010b0102090100000b100e00410f064000000000000000210306050c0b00110a120138050c01050e38060c010b01020a0002000b01000024100b00111b0c030c020b030307050c0b02120138050c01050e38060c010b01020c01000000040b00110d1201020d0002000e0100000c0d0a001134030405090b00120238070c01050b38080c010b01020f01000000040b00112f1202021001000000040b0011301202021101000000040b00113112020212010000250c11440c020d020f00060000000000000000430f0c010b000b01150b0202130100000c100e00410f062000000000000000210306050c0b00113e120238070c01050e38080c010b0102140100000c100e00410f064000000000000000210306050c0b001143120238070c01050e38080c010b01021501000000060b000b0109111712010216010000260c0a000b010c030c020b022e0b03081117010b0002170002001801000000040b001119120002190002001a01000005090b00100114111b010c010b011201021b0002001c0102001d0100000003111f1201021e0100000003071a1200021f000200200002002101000000080b000b0110001409112312010222010000270e0a000b011000140c030c020b022e0b03081123010b0002230002002401000000050b000911261201022501000028090a000c010b012e081126010b0002260002002701000000060b000b0109112912010228010000260c0a000b010c030c020b022e0b03081129010b0002290002002a01000000040b00100114022b01000000090b001000140b01100014112d1202022c01000029110a000b010c030c020b022e0b03112b0c040e041000140a000f00150b00022d0002002e01000000080b001000140b0110001421022f0002003000020031000200320100000c120a001136030405090b000138080c0105100b001000141133120238070c010b010233000200340002003501000000060b00100014071b21023601000000060b00100014071a21023701000000090b001000140b0110001411391202023801000029110a000b010c030c020b022e0b0311370c040e041000140a000f00150b0002390002003a01000000060b00100014113c1202023b0100000d0c0a002e113a0c010e011000140a000f00150b00023c0002003d0100000003071b1202023e0002003f01000000090b001000140b0110001411411202024001000029110a000b010c030c020b022e0b03113f0c040e041000140a000f00150b0002410002004201000000040b001000140243000200440100000003071a1202020200000000", + "abi": { + "address": "0x1", + "name": "ristretto255", + "friends": [], + "exposed_functions": [ + { + "name": "basepoint", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "basepoint_compressed", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::CompressedRistretto" + ] + }, + { + "name": "basepoint_double_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "basepoint_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "multi_scalar_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector<0x1::ristretto255::RistrettoPoint>", + "&vector<0x1::ristretto255::Scalar>" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "new_compressed_point_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::CompressedRistretto>" + ] + }, + { + "name": "new_point_from_64_uniform_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::RistrettoPoint>" + ] + }, + { + "name": "new_point_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::RistrettoPoint>" + ] + }, + { + "name": "new_point_from_sha512", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "new_scalar_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "new_scalar_from_sha512", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_from_u128", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u128" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_from_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_from_u8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u8" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_reduced_from_32_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "new_scalar_uniform_from_64_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "point_add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_add_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_compress", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::CompressedRistretto" + ] + }, + { + "name": "point_decompress", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::CompressedRistretto" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_equals", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "bool" + ] + }, + { + "name": "point_identity", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_identity_compressed", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::CompressedRistretto" + ] + }, + { + "name": "point_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_mul_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_neg", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_neg_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_sub_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::CompressedRistretto" + ], + "return": [ + "vector" + ] + }, + { + "name": "scalar_add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_add_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_equals", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "bool" + ] + }, + { + "name": "scalar_invert", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "scalar_is_one", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "bool" + ] + }, + { + "name": "scalar_is_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "bool" + ] + }, + { + "name": "scalar_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_mul_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_neg", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_neg_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_one", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_sub_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "vector" + ] + }, + { + "name": "scalar_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::Scalar" + ] + } + ], + "structs": [ + { + "name": "CompressedRistretto", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "data", + "type": "vector" + } + ] + }, + { + "name": "RistrettoPoint", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "handle", + "type": "u64" + } + ] + }, + { + "name": "Scalar", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "data", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000009010008020804030c20042c0405301207427408b601200cd6012d0f830204000200030004000502080800000600010000070201000106000300030905010100010a0006000307020101000304050401050003060c0503010c01080001060c01010767656e65736973107265736f757263655f6163636f756e740d6170746f735f6163636f756e74076163636f756e740a6170746f735f636f696e04636f696e0e6372656174655f6163636f756e74087472616e73666572094170746f73436f696e087265676973746572096578697374735f617400000000000000000000000000000000000000000000000000000000000000010001040003060b0011020c010e0138000201010400010c0a01110420030505070a0111000b000b010b023801020000000100", + "abi": { + "address": "0x1", + "name": "aptos_account", + "friends": [ + "0x1::genesis", + "0x1::resource_account" + ], + "exposed_functions": [ + { + "name": "create_account", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "transfer", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000202020403061e052417073b7a08b5012006d501441099029a030ab305050cb80587020dbf070200000001070000020001000003020100000403020000050102000006010400000703020002030301080001030203080001010401040404000204040d66697865645f706f696e7433320c4669786564506f696e743332146372656174655f66726f6d5f726174696f6e616c156372656174655f66726f6d5f7261775f76616c75650a6469766964655f7536340d6765745f7261775f76616c75650769735f7a65726f0c6d756c7469706c795f7536340576616c7565000000000000000000000000000000000000000000000000000000000000000103080100010000000000030802000200000000000308040001000000000003080300020000000000030805000200000000000410ffffffffffffffff0000000000000000126170746f733a3a6d657461646174615f763085030501000100000000000c4544454e4f4d494e41544f52215468652064656e6f6d696e61746f722070726f766964656420776173207a65726f020002000000000009454449564953494f4e3b5468652071756f7469656e742076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e206120607536346003000200000000000f454d554c5449504c49434154494f4e3d546865206d756c7469706c6965642076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e2061206075363460040001000000000011454449564953494f4e5f42595f5a45524f2241206469766973696f6e206279207a65726f2077617320656e636f756e746572656405000200000000001345524154494f5f4f55545f4f465f52414e47454f54686520636f6d707574656420726174696f207768656e20636f6e76657274696e6720746f206120604669786564506f696e7433326020776f756c6420626520756e726570726573656e7461626c65000201080300010000052e0a003531402f0c050b013531202f0c040a0432000000000000000000000000000000002203100700270b050b041a0c030a033200000000000000000000000000000000220319051c080c0205200b00060000000000000000210c020b0203240704270a03070525032a0704270b03341200020101000006030b0012000202010000071d0e011000140600000000000000002203080702270b003531202f0c030b030e01100014351a0c020a02070525031a0701270b0234020301000006040e00100014020401000006060e0010001406000000000000000021020501000007150b00350e0110001435180c030b033120300c020a0207052503120703270b023402000000", + "abi": { + "address": "0x1", + "name": "fixed_point32", + "friends": [], + "exposed_functions": [ + { + "name": "create_from_rational", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "u64" + ], + "return": [ + "0x1::fixed_point32::FixedPoint32" + ] + }, + { + "name": "create_from_raw_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::fixed_point32::FixedPoint32" + ] + }, + { + "name": "divide_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_raw_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "u64" + ] + }, + { + "name": "is_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "bool" + ] + }, + { + "name": "multiply_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "u64" + ] + } + ], + "structs": [ + { + "name": "FixedPoint32", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "value", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000c020c1803247304970108059f015807f701a605089d072006bd073510f207f8010aea09120cfc09b4020db00c06000000010002000300040005000607000007070000080700050b07010000021f020100000009000100000a000200000c000300000d000000000e040200000f050200001006030000110007000012080000001309070000140a070000150b0701020016060000001706000000180500000019050000031b0e0e00051c10110100051d0c110100041e0000000220101201020121130001001104120414101512010a02010800010801010b030108020108020106080201060801010101060800030608000608010a02030a020a020a02030608000608010900000102010302010b03010802010900010b03010900010b04010900010609000d6d756c74695f65643235353139036263730765643235353139056572726f720468617368066f7074696f6e095369676e617475726514556e76616c6964617465645075626c69634b65791256616c6964617465645075626c69634b6579186e65775f7369676e61747572655f66726f6d5f6279746573256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573064f7074696f6e236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573267075626c69635f6b65795f62797465735f746f5f61757468656e7469636174696f6e5f6b65791b7075626c69635f6b65795f696e746f5f756e76616c696461746564197075626c69635f6b65795f746f5f756e76616c696461746564137075626c69635f6b65795f76616c69646174651c7075626c69635f6b65795f76616c69646174655f696e7465726e616c127369676e61747572655f746f5f6279746573177369676e61747572655f7665726966795f737472696374207369676e61747572655f7665726966795f7374726963745f696e7465726e616c197369676e61747572655f7665726966795f7374726963745f742c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791f756e76616c6964617465645f7075626c69635f6b65795f746f5f62797465732a76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791d76616c6964617465645f7075626c69635f6b65795f746f5f627974657305627974657310696e76616c69645f617267756d656e7404736f6d65046e6f6e6508736861335f3235360d5369676e65644d657373616765126e65775f7369676e65645f6d65737361676508746f5f627974657300000000000000000000000000000000000000000000000000000000000000010308040000000000000003080100000000000000030802000000000000000308200000000000000003084000000000000000020101126170746f733a3a6d657461646174615f7630e30102010000000000000013455f57524f4e475f5055424b45595f53495a455357726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207075626c6963206b65792e020000000000000016455f57524f4e475f5349474e41545552455f53495a455257726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207369676e61747572652e0002011a0a020102011a0a020202011a0a02000100000c0d0e00410d070419070021030a07021110270b00120002010100000c170e00410d07031a070325030a07011110270e00410d070319070121031407011110270b00120102020100000f1a0e00410d0703190701210308050c0a0011070c01050e090c010b01031105160b00120238000c02051838010c020b0202030000000c060d000705440d0b00111302040100000c050e00100014120102050100000c050b00100014120102060100000c050b0010011411020207000200080100000c040b0010021402090100000c090b001002140b011001140b02110a020a0002000b010000120d0b0238020c030b001002140b011001140e033803110a020c0100000c050b001001141103020d0100000c040b00100114020e0100000c050b001000141103020f0100000c040b001000140202000100000000", + "abi": { + "address": "0x1", + "name": "multi_ed25519", + "friends": [], + "exposed_functions": [ + { + "name": "new_signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::multi_ed25519::Signature" + ] + }, + { + "name": "new_unvalidated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::multi_ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "new_validated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "public_key_into_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::multi_ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_to_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::multi_ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_validate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::UnvalidatedPublicKey" + ], + "return": [ + "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::Signature" + ], + "return": [ + "vector" + ] + }, + { + "name": "signature_verify_strict", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::Signature", + "&0x1::multi_ed25519::UnvalidatedPublicKey", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "signature_verify_strict_t", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&0x1::multi_ed25519::Signature", + "&0x1::multi_ed25519::UnvalidatedPublicKey", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "unvalidated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "unvalidated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "Signature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "UnvalidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ValidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602060c03121e0530140744fa0108be022006de0240109e03600afe03150c9304b6010dc905060fcf050600030004000500060c0000070c00000807000009000100000a020000000b030000000c000000021102000001120303000001080201060c0103010708010207080006080105626c6f636b0767656e657369730f7265636f6e66696775726174696f6e0d73746174655f73746f72616765056572726f721073797374656d5f6164647265737365730c476173506172616d6574657211537461746553746f7261676555736167650555736167652f6765745f73746174655f73746f726167655f75736167655f6f6e6c795f61745f65706f63685f626567696e6e696e670a696e697469616c697a650c6f6e5f6e65775f626c6f636b0b6f6e5f7265636f6e6669670575736167650565706f6368056974656d73056279746573166173736572745f6170746f735f6672616d65776f726b0e616c72656164795f657869737473000000000000000000000000000000000000000000000000000000000000000103080200000000000000030801000000000000000308000000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f76304c030000000000000000144553544154455f53544f524147455f55534147450001000000000000000e454741535f504152414d455445520002000000000000000b4545504f43485f5a45524f000002010d08020102020e030d08020202020f031003000002000103000000220a0011040703290120030b0b00010702110527070329002003140b000107011105270a00060000000000000000060000000000000000060000000000000000120212012d010b00060000000000000000060000000000000000120212002d00020203000101041607032a010c010a000a0110001422030a05130b000a010f001511000b010f011505150b010102030300020001050d07032a000c0007032b010c010b011001140b000f02150201000101000000000001000200", + "abi": { + "address": "0x1", + "name": "state_storage", + "friends": [ + "0x1::block", + "0x1::genesis", + "0x1::reconfiguration" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "on_new_block", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "on_reconfig", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + } + ], + "structs": [ + { + "name": "GasParameter", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "usage", + "type": "0x1::state_storage::Usage" + } + ] + }, + { + "name": "StateStorageUsage", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "epoch", + "type": "u64" + }, + { + "name": "usage", + "type": "0x1::state_storage::Usage" + } + ] + }, + { + "name": "Usage", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "items", + "type": "u64" + }, + { + "name": "bytes", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010006020604030a4605502e077e96040894052006b4054a10fe05f2020af008110c8109b6030db70c0e0fc50c0200010002000300040b0000050001000006020300000702040000080205000009020500000a020400000b060000000c070000000d080000000e080000000f07000000100500000218090000011904040000010800010608000101010302030308060c0303030103030302060c0303060c030301060c0107080002010708000767656e657369730e7374616b696e675f636f6e666967056572726f721073797374656d5f6164647265737365730d5374616b696e67436f6e666967036765741e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e67651d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e126765745f72657175697265645f7374616b650f6765745f7265776172645f726174651f6765745f766f74696e675f706f7765725f696e6372656173655f6c696d69740a696e697469616c697a65257570646174655f726563757272696e675f6c6f636b75705f6475726174696f6e5f73656373157570646174655f72657175697265645f7374616b65137570646174655f726577617264735f72617465227570646174655f766f74696e675f706f7765725f696e6372656173655f6c696d69741776616c69646174655f72657175697265645f7374616b650d6d696e696d756d5f7374616b650d6d6178696d756d5f7374616b651e726563757272696e675f6c6f636b75705f6475726174696f6e5f736563731a616c6c6f775f76616c696461746f725f7365745f6368616e67650c726577617264735f7261746518726577617264735f726174655f64656e6f6d696e61746f721b766f74696e675f706f7765725f696e6372656173655f6c696d6974166173736572745f6170746f735f6672616d65776f726b10696e76616c69645f617267756d656e7400000000000000000000000000000000000000000000000000000000000000010308030000000000000003080400000000000000030801000000000000000308020000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630dd0204010000000000000015455a45524f5f4c4f434b55505f4455524154494f4e245374616b65206c6f636b7570206475726174696f6e2063616e6e6f74206265207a65726f02000000000000001e455a45524f5f524557415244535f524154455f44454e4f4d494e41544f522652657761726420726174652064656e6f6d696e61746f722063616e6e6f74206265207a65726f03000000000000001445494e56414c49445f5354414b455f52414e47453e537065636966696564207374616b652072616e676520697320696e76616c69642e204d6178206d7573742062652067726561746572207468616e206d696e04000000000000002445494e56414c49445f564f54494e475f504f5745525f494e4352454153455f4c494d49544154686520766f74696e6720706f77657220696e637265617365206c696d69742070657263656e74616765206d7573742062652077697468696e2028302c2035305d00020711031203130314011503160317030001000100000407042b0014020101000000040b00100014020201000000040b00100114020301000000070a001002140b00100314020401000000070a001004140b00100514020501000000040b001006140206030000032c0a00110c0a010a02110b0a0606000000000000000024030e0b00010703110d270a0706000000000000000024031305180a07063200000000000000250c08051a090c080b0803210b00010701110d270b000b010b020b030b040b050b060b0712002d000207010001000a130a010600000000000000002403090b00010702110d270b00110c07042a000c020b010b020f01150208010001000a110b00110c0a010a02110b07042a000c030b010a030f02150b020b030f03150209010001000a150b00110c0a020600000000000000002403090703110d2707042a000c030b010a030f04150b020b030f0515020a010001000b1b0b00110c0a01060000000000000000240307050c0a01063200000000000000250c02050e090c020b0203130701110d2707042a000c030b010b030f0615020b00000003120b000a01250305050a0b01060000000000000000240c02050c090c020b0203110700110d27020003000200000001000400050006000000", + "abi": { + "address": "0x1", + "name": "staking_config", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "get", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::staking_config::StakingConfig" + ] + }, + { + "name": "get_allow_validator_set_change", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "bool" + ] + }, + { + "name": "get_recurring_lockup_duration", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_required_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64", + "u64" + ] + }, + { + "name": "get_reward_rate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64", + "u64" + ] + }, + { + "name": "get_voting_power_increase_limit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "u64", + "u64", + "bool", + "u64", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "update_recurring_lockup_duration_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "update_required_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "update_rewards_rate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "update_voting_power_increase_limit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "StakingConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "minimum_stake", + "type": "u64" + }, + { + "name": "maximum_stake", + "type": "u64" + }, + { + "name": "recurring_lockup_duration_secs", + "type": "u64" + }, + { + "name": "allow_validator_set_change", + "type": "bool" + }, + { + "name": "rewards_rate", + "type": "u64" + }, + { + "name": "rewards_rate_denominator", + "type": "u64" + }, + { + "name": "voting_power_increase_limit", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01001402141203265c048201040586012807ae01c90408f705200697065410eb068f030afa09170c910a99030daa0d060fb00d0c0006000700080009000a000b000c000d000e000f001008000011080000120600041d040106010013000100001402000000150000000016020000001702000000180001000019000300001a000000081f02000003200101000421060001060522020700012307010001240208010602250003000926000100062700000007280000000a050d0500010301060c0101020107080001080202070b0301090009000105010b0301090004010107080003106170746f735f676f7665726e616e636505626c6f636b10636f6e73656e7375735f636f6e6669670c6761735f7363686564756c650767656e657369730776657273696f6e0f7265636f6e66696775726174696f6e076163636f756e740c636861696e5f737461747573056572726f72056576656e74067369676e6572057374616b650d73746174655f73746f726167651073797374656d5f6164647265737365730974696d657374616d700d436f6e66696775726174696f6e1644697361626c655265636f6e66696775726174696f6e0d4e657745706f63684576656e740d63757272656e745f65706f63681764697361626c655f7265636f6e66696775726174696f6e22656d69745f67656e657369735f7265636f6e66696775726174696f6e5f6576656e7416656e61626c655f7265636f6e66696775726174696f6e0a696e697469616c697a65196c6173745f7265636f6e66696775726174696f6e5f74696d65177265636f6e66696775726174696f6e5f656e61626c65640b7265636f6e6669677572650565706f6368066576656e74730b4576656e7448616e646c650b64756d6d795f6669656c64166173736572745f6170746f735f6672616d65776f726b0d696e76616c69645f73746174650a656d69745f6576656e740a616464726573735f6f661a6765745f677569645f6e6578745f6372656174696f6e5f6e756d106e65775f6576656e745f68616e646c650a69735f67656e65736973106e6f775f6d6963726f7365636f6e64730c6f6e5f6e65775f65706f63680b6f6e5f7265636f6e6669670000000000000000000000000000000000000000000000000000000000000001030802000000000000000308010000000000000003080400000000000000030805000000000000000308030000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630fa020501000000000000000e45434f4e46494755524154494f4e335468652060436f6e66696775726174696f6e60207265736f7572636520697320696e20616e20696e76616c696420737461746502000000000000000745434f4e464947334120605265636f6e66696775726174696f6e60207265736f7572636520697320696e20616e20696e76616c6964207374617465030000000000000012454d4f444946595f4341504142494c495459444120604d6f64696679436f6e6669674361706162696c6974796020697320696e206120646966666572656e74207374617465207468616e2077617320657870656374656404000000000000001345494e56414c49445f424c4f434b5f54494d4526416e20696e76616c696420626c6f636b2074696d652077617320656e636f756e74657265642e05000000000000001745494e56414c49445f475549445f464f525f4556454e5426416e20696e76616c696420626c6f636b2074696d652077617320656e636f756e74657265642e0002031b0318031c0b030108020102011e010202011b030001000100000507052b001000140201000000000e0a001108110603090b000107011109270b000912012d01020200000100042607052a000c010a0110001406000000000000000021030a05110a01100114060000000000000000210c000513090c000b00031a0b010107011109270601000000000000000a010f00150a010f020b011000141202380002030000010100100a001108110620030a0b000107011109270b00110b2c01130101020403000000150a0011080a00110b110c06020000000000000021030d0b000107031109270a000600000000000000000600000000000000000b00380112002d00020501000100000507052b001001140206000000000407052901200207030001000947110e03030506080c00050a110f060000000000000000210c000b00030d0510080c0105131106200c010b01031605170207052a000c02110f0c030a030a0210011421032305260b020102111011110a030a021001142403330b020107021109270b030a020f01150a02100014060100000000000000160a020f00150a020f020b02100014120238000200000001000200000001000200030004000500", + "abi": { + "address": "0x1", + "name": "reconfiguration", + "friends": [ + "0x1::aptos_governance", + "0x1::block", + "0x1::consensus_config", + "0x1::gas_schedule", + "0x1::genesis", + "0x1::version" + ], + "exposed_functions": [ + { + "name": "current_epoch", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "last_reconfiguration_time", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "reconfigure", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + } + ], + "structs": [ + { + "name": "Configuration", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "epoch", + "type": "u64" + }, + { + "name": "last_reconfiguration_time", + "type": "u64" + }, + { + "name": "events", + "type": "0x1::event::EventHandle<0x1::reconfiguration::NewEpochEvent>" + } + ] + }, + { + "name": "DisableReconfiguration", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "NewEpochEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "epoch", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000802080e031615042b02052d1b0748cc010894022006b402220ad602090cdf02270d8603020f880304000200030004000500060800020805010001010908000007000100000a020100020c04010100030d05010002030205030002060c0b01010802010802030503060b0101090001060c0767656e65736973167472616e73616374696f6e5f76616c69646174696f6e0f7472616e73616374696f6e5f6665650a6170746f735f636f696e04636f696e1073797374656d5f616464726573736573154170746f73436f696e4361706162696c6974696573086275726e5f6665650e4275726e4361706162696c697479094170746f73436f696e1973746f72655f6170746f735f636f696e5f6275726e5f636170086275726e5f636170096275726e5f66726f6d166173736572745f6170746f735f6672616d65776f726b0000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010002010b0b01010802000300010001070b000b0107002b0010003800020103000001070a0011030b000b0112002d000200000000000100", + "abi": { + "address": "0x1", + "name": "transaction_fee", + "friends": [ + "0x1::genesis", + "0x1::transaction_validation" + ], + "exposed_functions": [ + { + "name": "burn_fee", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "u64" + ], + "return": [] + }, + { + "name": "store_aptos_coin_burn_cap", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + } + ], + "structs": [ + { + "name": "AptosCoinCapabilities", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "burn_cap", + "type": "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c0100240224540378b70204af033e05ed039a03078707a60b08ad122006cd12a20110ef13f7060ae61a6d0cd31be7070dba23120000000100020003000400050006000700080009000a000b000c000d000e000f001000110012080000130600001408000015080000160800001707000018060000190600001a08000a1e0702000000000d1f070006230600012b06000539040106010f41040203010001074707010000024c08000c570b00001b000100001c000100001d020100002003040000210105000022010000002406070000250100000026080000002709010000280a01000029000100002a0b0700002c0c0100002d090100002e0d01000a42101102040411431300010404440000001145131401040a46150102040409480a08000b49080800104a0100000b4b080000034d01180100074e01190100074f1a11010007501a1b010007511c190100061d011200111d1d00010405521f0101060d531421000d542200000a5501240204040a50102702040401562807000c58012a000c592b11000b5a082c000b5b0800000e5c0a0100115d0a010104015e0a2e01060f5f013202030408280101001160131101040a613435020404112a131c01040e620a01000f6339110203000f463a010203001164130001040665011200112e3b010104100f11121312140f19171a051b051c051d051f12201e2323142324262b122c1e2c2f2c302d31230f2f12300f311223261426202f3331343135123712203001030005060c050a020a020a02020a020a02010b0902080a0a02010402080b05010c010504060c04030301060c02030503060c05080c04060c050301030708000a020302030a0202060b090209000901060900010101080b020503010a0203070b09020900090109000901110305050a020b0902080a0a02070b0d010801030b0f010407080306080203030b0902080a0a020503040b0f0104010810010b0f0104010b0f01090001060b0f0109000106090001090008050509000a0204030b0f01040b0902080a0a0201080102070b0d010900090003080a080a0b0902080a0a0201080a0106080a02080a0a02010b0902090009010206080406080c0205080c010609010106080c060811030301030301081101060811040303030304030403060c010b0d01090001080601080702080501010b0e020900090103070b0902030a020603070b0902030a0202070b090209000901060900020900090101070b090205080c0207080307080208080b07080303030805050307080802060b0e0209000901090003070b0e0209000901090009010506090005030301106170746f735f676f7665726e616e6365076163636f756e740a6170746f735f636f696e04636f696e056572726f72056576656e7413676f7665726e616e63655f70726f706f73616c066f7074696f6e0f7265636f6e66696775726174696f6e067369676e65720a73696d706c655f6d6170057374616b650e7374616b696e675f636f6e66696706737472696e671073797374656d5f616464726573736573057461626c650974696d657374616d7006766f74696e6717417070726f766564457865637574696f6e4861736865731343726561746550726f706f73616c4576656e7410476f7665726e616e6365436f6e66696710476f7665726e616e63654576656e747317476f7665726e616e6365526573706f6e7362696c697479095265636f72644b657911557064617465436f6e6669674576656e7409566f74654576656e740d566f74696e675265636f726473186164645f617070726f7665645f7363726970745f686173681f6164645f617070726f7665645f7363726970745f686173685f7363726970740f6372656174655f70726f706f73616c0953696d706c654d617006537472696e67186372656174655f70726f706f73616c5f6d65746164617461186765745f6d696e5f766f74696e675f7468726573686f6c641b6765745f72657175697265645f70726f706f7365725f7374616b6512476f7665726e616e636550726f706f73616c0a6765745f7369676e6572186765745f766f74696e675f6475726174696f6e5f73656373106765745f766f74696e675f706f7765720a696e697469616c697a650b7265636f6e6669677572651472656d6f76655f617070726f7665645f68617368077265736f6c7665105369676e65724361706162696c6974791073746f72655f7369676e65725f636170187570646174655f676f7665726e616e63655f636f6e66696704766f7465066861736865730870726f706f7365720a7374616b655f706f6f6c0b70726f706f73616c5f69640e657865637574696f6e5f686173681170726f706f73616c5f6d65746164617461146d696e5f766f74696e675f7468726573686f6c641772657175697265645f70726f706f7365725f7374616b6514766f74696e675f6475726174696f6e5f73656373166372656174655f70726f706f73616c5f6576656e74730b4576656e7448616e646c65147570646174655f636f6e6669675f6576656e74730b766f74655f6576656e74730b7369676e65725f6361707305766f746572096e756d5f766f7465730b73686f756c645f7061737305766f746573055461626c650c636f6e7461696e735f6b6579126765745f70726f706f73616c5f737461746510696e76616c69645f617267756d656e74126765745f657865637574696f6e5f6861736803616464064f7074696f6e0a616464726573735f6f66136765745f64656c6567617465645f766f7465720b6e6f775f7365636f6e64730f6765745f6c6f636b75705f73656373094170746f73436f696e06737570706c79046e6f6e650769735f736f6d6506626f72726f7704736f6d650a656d69745f6576656e740475746638066c656e677468066372656174651d6372656174655f7369676e65725f776974685f6361706162696c6974790d5374616b696e67436f6e666967036765741e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e6765096765745f7374616b651e6765745f63757272656e745f65706f63685f766f74696e675f706f776572166173736572745f6170746f735f6672616d65776f726b087265676973746572106e65775f6576656e745f68616e646c65036e65770b69735f7265736f6c7665640672656d6f7665216173736572745f6672616d65776f726b5f72657365727665645f6164647265737308636f6e7461696e731c6765745f70726f706f73616c5f65787069726174696f6e5f73656373156372656174655f656d7074795f70726f706f73616c000000000000000000000000000000000000000000000000000000000000000103080400000000000000030801000000000000000308030000000000000003080a0000000000000003080900000000000000030802000000000000000308050000000000000003080600000000000000030808000000000000000a020e0d6d657461646174615f686173680a0212116d657461646174615f6c6f636174696f6e05200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630e2060901000000000000001c45494e53554646494349454e545f50524f504f5345525f5354414b454c54686520737065636966696564207374616b6520706f6f6c20646f6573206e6f7420686176652073756666696369656e74207374616b6520746f2063726561746520612070726f706f73616c020000000000000014454e4f545f44454c4547415445445f564f5445524454686973206163636f756e74206973206e6f74207468652064657369676e6174656420766f746572206f662074686520737065636966696564207374616b6520706f6f6c03000000000000001a45494e53554646494349454e545f5354414b455f4c4f434b55506054686520737065636966696564207374616b6520706f6f6c20646f6573206e6f742068617665206c6f6e6720656e6f7567682072656d61696e696e67206c6f636b757020746f2063726561746520612070726f706f73616c206f7220766f746504000000000000000e45414c52454144595f564f5445444b54686520737065636966696564207374616b6520706f6f6c2068617320616c7265616479206265656e207573656420746f20766f7465206f6e207468652073616d652070726f706f73616c050000000000000010454e4f5f564f54494e475f504f5745523a54686520737065636966696564207374616b6520706f6f6c206d7573742062652070617274206f66207468652076616c696461746f722073657406000000000000001c4550524f504f53414c5f4e4f545f5245534f4c5641424c455f5945543e50726f706f73616c206973206e6f7420726561647920746f206265207265736f6c7665642e2057616974696e67206f6e2074696d65206f7220766f74657308000000000000001a4550524f504f53414c5f4e4f545f5245534f4c5645445f594554265468652070726f706f73616c20686173206e6f74206265656e207265736f6c7665642079657409000000000000001b454d455441444154415f4c4f434154494f4e5f544f4f5f4c4f4e47314d65746164617461206c6f636174696f6e2063616e6e6f74206265206c6f6e676572207468616e203235362063686172730a0000000000000017454d455441444154415f484153485f544f4f5f4c4f4e472d4d6574616461746120686173682063616e6e6f74206265206c6f6e676572207468616e203235362063686172730002012f0b0902030a02010205300531053203330a02340b0902080a0a02020203350436033703030203380b0d0108013a0b0d0108063b0b0d0108070402013c0b090205080c0502023105320306020335043603370307020532033d0531053e033f01080201400b0e0208050100010001000e23070b2a000c010a0110000e0038000309050c0b010102070b0a0038010c030b0307012103190b01010707111227070b0a0038020c020b010f000b000b02380302010104010001030b00110002020104020203166a0b0011150c120a0111160a1221030b0705111227070b2b020c0e0a0111080c130b130a0e10011426031c0b0e01070111122711170c0b0b0b0a0e100214160c0f0a0111180a0f26032e0b0e0107021112270b030b0411030c1138040c1538050c0c0e153806033a05450e153807140c140b1432020000000000000000000000000000001a32010000000000000000000000000000001638080c0c0a12070b111e0a020b0e1003140b0f0b0c0a1138090c10070b2a030c0d0b0d0f040c0a0b100c050b120c060b010c070b020c080b110c090b0a0b060b070b050b080b091201380a020300000020240a0011210c020e02112206000100000000000025030b07041112270a0111210c030e0311220600010000000000002503160703111227380b0c040d04070a11210b00380c0d04070911210b01380c0b040204010001020105070b2b021003140205010001020105070b2b02100114020600000104250b070b2b040c020b0210050e01380d0c030b0311250207010001020105070b2b021002140208000000291a11260c010e0111270c040b04030805150b0011280c060c05010c030b030b05160b06160c0205180b0011290c020b0202090000002d240a00112a0a00380e0a000c070b030c040b010c050b020c060b070b050b060b0412022d020a000a00380f0a0038100a00381112032d030a00381212082d080b00381312002d00020a01000001040b00112a112e020b01000100331e070b0a00381403070708111227070b2a000f000c030a030e000c020c010b012e0b0238000315051b0b030e0038150101051d0b0301020c0100020004120a070b0a0038160c020b00110b0b020b011106020d0100010436170a001132070b2904200307050c0b00381712042d04050e0b0001070b2a040f050c030b030b010b023818020e0100020203371c0b00112a070b2a020c050a030a050f02150a010a050f03150a020b050f0115070b2a030c040b040f060b010b020b0312063819020f01040300030838580b0011150c090a0111160a0921030b0705111227070b2a080c0b0a010a0212050c080a0b10070a08381a20031d0b0b0107001112270b0b0f070b0808381b0a0111080c0a0a0a06000000000000000024032c0706111227070b0a02381c0c060a0111180b06260338070211122711360c040e04070b0a020a0a0a03381d070b2a030c050b050f080a020b090b010b0a0b031207381e070b0a0238010c070b07070121035505570b0211000200000201020202000300040003010800030200", + "abi": { + "address": "0x1", + "name": "aptos_governance", + "friends": [], + "exposed_functions": [ + { + "name": "add_approved_script_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "add_approved_script_hash_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "create_proposal", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "vector", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "get_min_voting_threshold", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u128" + ] + }, + { + "name": "get_required_proposer_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "get_voting_duration_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "reconfigure", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "remove_approved_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "resolve", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "address" + ], + "return": [ + "signer" + ] + }, + { + "name": "store_signer_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::account::SignerCapability" + ], + "return": [] + }, + { + "name": "update_governance_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u128", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "vote", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64", + "bool" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ApprovedExecutionHashes", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "hashes", + "type": "0x1::simple_map::SimpleMap>" + } + ] + }, + { + "name": "CreateProposalEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposer", + "type": "address" + }, + { + "name": "stake_pool", + "type": "address" + }, + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "execution_hash", + "type": "vector" + }, + { + "name": "proposal_metadata", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + } + ] + }, + { + "name": "GovernanceConfig", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "min_voting_threshold", + "type": "u128" + }, + { + "name": "required_proposer_stake", + "type": "u64" + }, + { + "name": "voting_duration_secs", + "type": "u64" + } + ] + }, + { + "name": "GovernanceEvents", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "create_proposal_events", + "type": "0x1::event::EventHandle<0x1::aptos_governance::CreateProposalEvent>" + }, + { + "name": "update_config_events", + "type": "0x1::event::EventHandle<0x1::aptos_governance::UpdateConfigEvent>" + }, + { + "name": "vote_events", + "type": "0x1::event::EventHandle<0x1::aptos_governance::VoteEvent>" + } + ] + }, + { + "name": "GovernanceResponsbility", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "signer_caps", + "type": "0x1::simple_map::SimpleMap" + } + ] + }, + { + "name": "RecordKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "stake_pool", + "type": "address" + }, + { + "name": "proposal_id", + "type": "u64" + } + ] + }, + { + "name": "UpdateConfigEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "min_voting_threshold", + "type": "u128" + }, + { + "name": "required_proposer_stake", + "type": "u64" + }, + { + "name": "voting_duration_secs", + "type": "u64" + } + ] + }, + { + "name": "VoteEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "voter", + "type": "address" + }, + { + "name": "stake_pool", + "type": "address" + }, + { + "name": "num_votes", + "type": "u64" + }, + { + "name": "should_pass", + "type": "bool" + } + ] + }, + { + "name": "VotingRecords", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "votes", + "type": "0x1::table::Table<0x1::aptos_governance::RecordKey, bool>" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010008020804030c1905251107369a0108d0012006f0012c109c02650a8103060c87035b0de203020fe40302000100020003000400050800000600010000070001000309020100010a040400020b01010002060c0a020001060c0102010301070a020767656e6573697310636f6e73656e7375735f636f6e666967056572726f720f7265636f6e66696775726174696f6e1073797374656d5f6164647265737365730f436f6e73656e737573436f6e6669670a696e697469616c697a650373657406636f6e666967166173736572745f6170746f735f6672616d65776f726b10696e76616c69645f617267756d656e740b7265636f6e66696775726500000000000000000000000000000000000000000000000000000000000000010308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630510101000000000000000f45494e56414c49445f434f4e464947375468652070726f7669646564206f6e20636861696e20636f6e6669672062797465732061726520656d707479206f7220696e76616c6964000201080a020003000001110a0011020e01410306000000000000000024030c0b000107001103270b000b0112002d0002010100010005130b0011020e01410306000000000000000024030a070011032707012a000f000c020b010b02151104020000000000", + "abi": { + "address": "0x1", + "name": "consensus_config", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + }, + { + "name": "set", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ConsensusConfig", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "config", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c0100120212140326710497011005a701ac0107d302ff0308d2062006f2062e10a0075e0afe070a0c8808a9020db10a0200000001000200030004000500060007000800090800010d0600071107020000000002120800000a000100000b020100000c030100000e040500000f060100010a08070004130a01010006140a0b0004150c01010003160d010005170f0f00071811120204040719130f020404071a1401020404011b151600011c080100071d0114020404071e1801020404081f1a1b010001200b1c00060908090b100c100d1010101110121903060c0a020a020004060c0a020a020304060c0a020a020a0a0202060c0501080104060c0c08010a02020c080102060c0a0201080301060c010503060c050303060c0a020a0a0209050708000800010c05080108010b020205080101030205080102070b020209000901060900020900090101060b020209000901010b02020900090101060801010c050a020a02070800050503070b02020900090109000901010201060a09000101010a02107265736f757263655f6163636f756e74076163636f756e740a6170746f735f636f696e04636f646504636f696e056572726f72067369676e65720a73696d706c655f6d617006766563746f7209436f6e7461696e6572176372656174655f7265736f757263655f6163636f756e74206372656174655f7265736f757263655f6163636f756e745f616e645f66756e642b6372656174655f7265736f757263655f6163636f756e745f616e645f7075626c6973685f7061636b616765105369676e65724361706162696c6974791d72657472696576655f7265736f757263655f6163636f756e745f63617036726f746174655f6163636f756e745f61757468656e7469636174696f6e5f6b65795f616e645f73746f72655f6361706162696c6974790573746f72650953696d706c654d6170094170746f73436f696e0872656769737465720a616464726573735f6f66087472616e73666572137075626c6973685f7061636b6167655f74786e096e6f745f666f756e640672656d6f7665066c656e6774680d64657374726f795f656d7074791d6372656174655f7369676e65725f776974685f6361706162696c69747922726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c06637265617465036164640869735f656d707479166765745f61757468656e7469636174696f6e5f6b65790000000000000000000000000000000000000000000000000000000000000001030801000000000000000a0221200000000000000000000000000000000000000000000000000000000000000000126170746f733a3a6d657461646174615f76304a0101000000000000001845434f4e5441494e45525f4e4f545f5055424c495348454427436f6e7461696e6572207265736f75726365206e6f7420666f756e6420696e206163636f756e74000201100b02020508010001040100070b0a000b0111050c040c030b000b030b040b02110402010104010007120a000b0111050c050c040e0438000a000e0411070b0338010b000b040b050b021104020201040100070f0a000b0111050c050c040e040b020b0311090b000b040b05070111040203010001000e2f0a01290003080b00010700110a270b0011070c070a012a000c030a030f000e0738020c09010b090b0310003803060000000000000000210c050c080b05031f05270b012c000c040b0413000c0a0b0a38040e08110e0c060e060701110f0b08020400000100172a0a0011070c070a072900200308050d0b00380512002d00050f0b00010a072a000c060e0111070c080b060f000b080b0238060e033807031e05220b0711130c0405240b030c040b040c050e010b05110f02000000", + "abi": { + "address": "0x1", + "name": "resource_account", + "friends": [], + "exposed_functions": [ + { + "name": "create_resource_account", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "create_resource_account_and_fund", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "u64" + ], + "return": [] + }, + { + "name": "create_resource_account_and_publish_package", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector>" + ], + "return": [] + }, + { + "name": "retrieve_resource_account_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [ + "0x1::account::SignerCapability" + ] + } + ], + "structs": [ + { + "name": "Container", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "store", + "type": "0x1::simple_map::SimpleMap" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000801000603062d0533150748e40108ac022006cc02c003108c06f7020c83099b020000000100020003000100000400010000050201000006000100000700010000080203000009020300020a000200010b04040001060c000105010101030a010101010101010101051073797374656d5f616464726573736573056572726f72067369676e6572166173736572745f6170746f735f6672616d65776f726b146173736572745f636f72655f7265736f757263651c6173736572745f636f72655f7265736f757263655f61646472657373216173736572745f6672616d65776f726b5f72657365727665645f61646472657373096173736572745f766d1a69735f6170746f735f6672616d65776f726b5f616464726573731869735f636f72655f7265736f757263655f616464726573730a616464726573735f6f66117065726d697373696f6e5f64656e6965640000000000000000000000000000000000000000000000000000000000000001030803000000000000000308010000000000000003080400000000000000030802000000000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000005052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000008052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000a052000000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000a550c18126170746f733a3a6d657461646174615f7630e2020401000000000000001a454e4f545f434f52455f5245534f555243455f414444524553534354686520616464726573732f6163636f756e7420646964206e6f7420636f72726573706f6e6420746f2074686520636f7265207265736f75726365206164647265737302000000000000000345564d2d546865206f7065726174696f6e2063616e206f6e6c7920626520706572666f726d65642062792074686520564d03000000000000001c454e4f545f4150544f535f4652414d45574f524b5f414444524553534454686520616464726573732f6163636f756e7420646964206e6f7420636f72726573706f6e6420746f2074686520636f7265206672616d65776f726b206164647265737304000000000000001f454e4f545f4652414d45574f524b5f52455345525645445f414444524553532d5468652061646472657373206973206e6f74206672616d65776f726b20726573657276656420616464726573730001000001080b001107110503070700110827020101000001040b0011071102020201000001070b00110603060701110827020301000005650b0011070c0a0a0a0704210308050b080c01050f0a0a0705210c010b0103120515080c0205190a0a0706210c020b02031c051f080c0305230a0a0707210c030b0303260529080c04052d0a0a0708210c040b0403300533080c0505370a0a0709210c050b05033a053d080c0605410a0a070a210c060b0603440547080c07054b0a0a070b210c070b07034e0551080c0805550a0a070c210c080b080358055b080c09055f0b0a070d210c090b0903640702110827020401000001090b001107070e2103080703110827020501000001040b00070421020601000001040b00070f210200", + "abi": { + "address": "0x1", + "name": "system_addresses", + "friends": [], + "exposed_functions": [ + { + "name": "assert_aptos_framework", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "assert_core_resource", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "assert_core_resource_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "assert_framework_reserved_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "assert_vm", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "is_aptos_framework_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_core_resource_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e01000602061003167c0492010e05a00174079402ad0108c1032006e1031e10ff03560ad5040d0be204020ce404a0020d8407040e8807040000000100020003040203010001020f040203010001000400010203000005020302030000060405020300000700050203020008020602030000090701020300000a0806020300000b0809020300000c0107020304000d040a02030002040c0102030002050d0302030002060e0502030002080d06020300011009090002110f01020300020c010f020304020d0e0a0203000a0b0b0b0c0b0d0b0f0b100b110b03070b000209000901090009010002060b00020900090109000106090102070b0002090009010900010709010101010b00020900090101060b0002090009010103010901020900090103070b0102090009010900090102060b010209000901090002070b0102090009010900010b010209000901117461626c655f776974685f6c656e677468056572726f72057461626c650f5461626c65576974684c656e6774680361646406626f72726f770a626f72726f775f6d757417626f72726f775f6d75745f776974685f64656661756c7408636f6e7461696e730d64657374726f795f656d70747905656d707479066c656e677468036e65770672656d6f766505696e6e6572055461626c650d696e76616c69645f73746174650764657374726f790000000000000000000000000000000000000000000000000000000000000001030864000000000000000308660000000000000003086500000000000000126170746f733a3a6d657461646174615f7630420364000000000000000f45414c52454144595f4558495354530065000000000000000a454e4f545f464f554e440066000000000000000a454e4f545f454d505459000002020e0b0102090009010b03000b00010000010e0a0036000b010b0238000a00370114060100000000000000160b00360115020101000001050b0037000b013801020201000001050b0036000b013802020301000005200a0037000a0138030306050c0b0036000b0138020c03051e0a0036000a010b0238000a00370114060100000000000000160a003601150b0036000b0138020c030b03020401000001050b0037000b01380302050100000f100e003701140600000000000000002103090701110e270b003a00010c010b013804020601000001060b0037011406000000000000000021020701000001040b00370114020801000001043805060000000000000000390002090100000a0f0a0036000b0138060c020a00370114060100000000000000170b003601150b020200000001000b010b00", + "abi": { + "address": "0x1", + "name": "table_with_length", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0", + "T1" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "&T1" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "borrow_mut_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0", + "T1" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "0x1::table_with_length::TableWithLength" + ], + "return": [] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength" + ], + "return": [ + "u64" + ] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [], + "return": [ + "0x1::table_with_length::TableWithLength" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "T1" + ] + } + ], + "structs": [ + { + "name": "TableWithLength", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "inner", + "type": "0x1::table::Table" + }, + { + "name": "length", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000a020a10031a25043f020541260767870208ee0220068e032c10ba03690aa304090cac044a0ff60404000200030004000500060007080001080400040e0402030100010009000100000a020100000b030400000c050100030f03040002100707000411040a020304060902060c04010801010401060c000207080004010708000103010800020504010b0202090009010767656e65736973136f7074696f6e616c5f61676772656761746f721261676772656761746f725f666163746f72790a61676772656761746f72056572726f721073797374656d5f616464726573736573057461626c651141676772656761746f72466163746f72790a41676772656761746f72116372656174655f61676772656761746f721a6372656174655f61676772656761746f725f696e7465726e616c1d696e697469616c697a655f61676772656761746f725f666163746f72790e6e65775f61676772656761746f720d7068616e746f6d5f7461626c65055461626c65166173736572745f6170746f735f6672616d65776f726b096e6f745f666f756e64036e657700000000000000000000000000000000000000000000000000000000000000010308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630550101000000000000001d4541474752454741544f525f464143544f52595f4e4f545f464f554e442d5768656e2061676772656761746f7220666163746f7279206973206e6f74207075626c6973686564207965742e0002010d0b02020504000100010004050b0011040b011101020103000100060d070129000306070011052707012a000c010b010b001103020203000008090a001104380012000c010b000b012d0002030002000000000100", + "abi": { + "address": "0x1", + "name": "aggregator_factory", + "friends": [ + "0x1::genesis", + "0x1::optional_aggregator" + ], + "exposed_functions": [ + { + "name": "create_aggregator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u128" + ], + "return": [ + "0x1::aggregator::Aggregator" + ] + }, + { + "name": "create_aggregator_internal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u128" + ], + "return": [ + "0x1::aggregator::Aggregator" + ] + }, + { + "name": "initialize_aggregator_factory", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + } + ], + "structs": [ + { + "name": "AggregatorFactory", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "phantom_table", + "type": "0x1::table::Table" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000901000202020403060a05100407146a087e200a9e01050ca301130fb601020001000206000003000100000400010000010800106170746f735f676f7665726e616e636513676f7665726e616e63655f70726f706f73616c12476f7665726e616e636550726f706f73616c156372656174655f656d7074795f70726f706f73616c0f6372656174655f70726f706f73616c0b64756d6d795f6669656c640000000000000000000000000000000000000000000000000000000000000001000201050100030000000211010201030000000309120002000000", + "abi": { + "address": "0x1", + "name": "governance_proposal", + "friends": [ + "0x1::aptos_governance" + ], + "exposed_functions": [ + { + "name": "create_empty_proposal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::governance_proposal::GovernanceProposal" + ] + }, + { + "name": "create_proposal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::governance_proposal::GovernanceProposal" + ] + } + ], + "structs": [ + { + "name": "GovernanceProposal", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000a020a12031cb30104cf012205f1017b07ec02f50308e1062006810714109507520ae707160cfd07bf040dbc0c080fc40c02000100020003000400050006040000070400041b07010000011c040000080001000009020100000a030100000b040100000c030500000d030500000e060700000f08050000100903000011050400001206050000130805000014000100001502010000160a010000170a010000180a050000190a0500041e0d070100041f0e0f01000108100100032011110004210d130100010f140500042215160100010a0c01000423150101000224050c000425161501000426011501000112140500011410010004270e160100042819010100120c130c1304160c180c1a04160418041a0c1c0c1d041d0c1c042004210c200c21040207080104000207080004010801010800010401060801010101060800020401010708010207080307080001080301060b0201090001070b020109000107090002070803040103030b020108030b02010800040106090001060803010b02010900010900030406080306080003080308000402070b02010900090004636f696e136f7074696f6e616c5f61676772656761746f720a61676772656761746f721261676772656761746f725f666163746f7279056572726f72066f7074696f6e07496e7465676572124f7074696f6e616c41676772656761746f72036164640b6164645f696e74656765720764657374726f790f64657374726f795f696e74656765721b64657374726f795f6f7074696f6e616c5f61676772656761746f721864657374726f795f6f7074696f6e616c5f696e74656765721169735f706172616c6c656c697a61626c65056c696d6974036e65770b6e65775f696e746567657204726561640c726561645f696e7465676572037375620b7375625f696e746567657206737769746368137377697463685f616e645f7a65726f5f6f7574217377697463685f746f5f61676772656761746f725f616e645f7a65726f5f6f75741e7377697463685f746f5f696e74656765725f616e645f7a65726f5f6f75740576616c7565064f7074696f6e0a41676772656761746f7207696e74656765720769735f736f6d650a626f72726f775f6d75740c6f75745f6f665f72616e676506626f72726f770c64657374726f795f736f6d650c64657374726f795f6e6f6e651a6372656174655f61676772656761746f725f696e7465726e616c04736f6d65046e6f6e6507657874726163740466696c6c00000000000000000000000000000000000000000000000000000000000000010308010000000000000003080200000000000000126170746f733a3a6d657461646174615f76303e020100000000000000144541474752454741544f525f4f564552464c4f57000200000000000000154541474752454741544f525f554e444552464c4f57000002021a040f04010202020b020108031d0b02010800000100000b150a00100038000305050d0b000f0038010c020b020b01111405140b000f0138020c030b030b011101020100000001180a010a001002140a001003141725030f0b000107001115270a001003140b01160b000f03150202010000010c0e001106030405080b00110401050b0b00110501020300000001050b00130001010204000000120f0b0013010c020c010e01380311170c030b01380411190b0238050b030205000000120f0b0013010c020c010e02380611070c030b02380711030b0138080b03020601000001040b0010003800020700000001040b00100214020803000003120b010303050a0b00111b3809380a12010c020510380b0b001109380c12010c020b020209000000010432000000000000000000000000000000000b001200020a01000017160a00100038000305050d0b00100038030c020b02111e0c0105140b00100138060c030b03110b0c010b01020b00000001040b00100314020c0100000b150a00100038000305050d0b000f0038010c020b020b01111f05140b000f0138020c030b030b01110d020d00000001140a010a0010031425030b0b000107011115270a001003140b01170b000f0315020e010000050a0a002e110a0c010a00110f0b000b011100020f000000010d0a002e1106030505090b00111101050c0b00111001021000000018120a000f01380d0c020e0211070c030b0211030a03111b0c010b000f000b01380e0b03021100000018120a000f00380f0c010e0111170c030b0111190a0311090c020b000f010b0238100b03020100010100010000000000", + "abi": { + "address": "0x1", + "name": "optional_aggregator", + "friends": [ + "0x1::coin" + ], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::optional_aggregator::OptionalAggregator", + "u128" + ], + "return": [] + }, + { + "name": "destroy", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::optional_aggregator::OptionalAggregator" + ], + "return": [] + }, + { + "name": "is_parallelizable", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::optional_aggregator::OptionalAggregator" + ], + "return": [ + "bool" + ] + }, + { + "name": "new", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u128", + "bool" + ], + "return": [ + "0x1::optional_aggregator::OptionalAggregator" + ] + }, + { + "name": "read", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::optional_aggregator::OptionalAggregator" + ], + "return": [ + "u128" + ] + }, + { + "name": "sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::optional_aggregator::OptionalAggregator", + "u128" + ], + "return": [] + }, + { + "name": "switch", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::optional_aggregator::OptionalAggregator" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Integer", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "value", + "type": "u128" + }, + { + "name": "limit", + "type": "u128" + } + ] + }, + { + "name": "OptionalAggregator", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "aggregator", + "type": "0x1::option::Option<0x1::aggregator::Aggregator>" + }, + { + "name": "integer", + "type": "0x1::option::Option<0x1::optional_aggregator::Integer>" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000006010002030205050704070b24082f200c4f040000000100010000010a02137472616e73616374696f6e5f636f6e746578740f6765745f7363726970745f6861736800000000000000000000000000000000000000000000000000000000000000010001020000", + "abi": { + "address": "0x1", + "name": "transaction_context", + "friends": [], + "exposed_functions": [ + { + "name": "get_script_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "vector" + ] + } + ], + "structs": [] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010014021408031c61047d040581015707d801ad040885062006a506b20110d707540aab08140cbf08a2030fe10b02000100020003000400050006000700080009000a000b0800021b0800000c000100000d020100000e030100000f0401000010030100001105010005180707000519070700061a080900041c09070100091d0b0100011e090100071f0801000120090e000121090d000822010700032301100001240907000425090e0100090a120a050c030303030005060c0a020a020a020a02070c030a0203030302090c030a020a050a0a0203030302080c030a02030303020a0203050303010301060c0105010801020503040303050a02010a020101040303030501020767656e65736973167472616e73616374696f6e5f76616c69646174696f6e076163636f756e740a6170746f735f636f696e08636861696e5f696404636f696e056572726f72067369676e65721073797374656d5f6164647265737365730974696d657374616d700f7472616e73616374696f6e5f666565155472616e73616374696f6e56616c69646174696f6e086570696c6f6775650a696e697469616c697a650f6d6f64756c655f70726f6c6f6775651b6d756c74695f6167656e745f7363726970745f70726f6c6f6775650f70726f6c6f6775655f636f6d6d6f6e0f7363726970745f70726f6c6f6775650b6d6f64756c655f616464720b6d6f64756c655f6e616d65147363726970745f70726f6c6f6775655f6e616d65146d6f64756c655f70726f6c6f6775655f6e616d65196d756c74695f6167656e745f70726f6c6f6775655f6e616d6512757365725f6570696c6f6775655f6e616d6510696e76616c69645f617267756d656e740c6f75745f6f665f72616e67650a616464726573735f6f66094170746f73436f696e0762616c616e6365086275726e5f66656519696e6372656d656e745f73657175656e63655f6e756d626572166173736572745f6170746f735f6672616d65776f726b096578697374735f6174166765745f61757468656e7469636174696f6e5f6b65790b6e6f775f7365636f6e647303676574136765745f73657175656e63655f6e756d6265721569735f6163636f756e745f726567697374657265640000000000000000000000000000000000000000000000000000000000000001030806000000000000000410ffffffffffffffff00000000000000000308ec030000000000000308ef030000000000000308ed030000000000000308e9030000000000000308f1030000000000000308f0030000000000000308eb030000000000000308ea030000000000000308ee03000000000000052000000000000000000000000000000000000000000000000000000000000000010a0217167472616e73616374696f6e5f76616c69646174696f6e126170746f733a3a6d657461646174615f7630400106000000000000000b454f55545f4f465f4741532a5472616e73616374696f6e2065786365656465642069747320616c6c6f6361746564206d6178206761730002061205130a02140a02150a02160a02170a0200000000062b0a030a0426030707001106270b030b04170c060a02350a063518070125031607001107270b020b06180c070e0011080c050a0538000a0726032507041107270a050b07110a0b05110b0201030000010c0a00110c0b00070b070c0b010b020b030b0412002d00020200000001090b000b010b020b030b040b050b06110402030000000c380b000b010b020b050b060b070b0811040e0341090c0a0e04410d0a0a21031307061106270600000000000000000c090a090a0a23031a05370e030a094209140c0b0a0b110d032507021106270e040a09420d140c0c0b0c0b0b110e21033207051106270b09060100000000000000160c09051502040000000f4d110f0b05230307070a11062711100b0621030e07031106270e0011080c0a0a0a110d031707021106270b020a0a110e21031f07051106270a0135070123032707071107270a0a11110c070a010a0726033107091106270b010b0721033807081106270b030b04180c090a0a3801034207041106270b0a38000c080b080b0926034c0704110627020500000001090b000b010b020b030b040b050b06110402000000", + "abi": { + "address": "0x1", + "name": "transaction_validation", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "TransactionValidation", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "module_addr", + "type": "address" + }, + { + "name": "module_name", + "type": "vector" + }, + { + "name": "script_prologue_name", + "type": "vector" + }, + { + "name": "module_prologue_name", + "type": "vector" + }, + { + "name": "multi_agent_prologue_name", + "type": "vector" + }, + { + "name": "user_epilogue_name", + "type": "vector" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::code::PackageRegistry", + "data": "package registry omitted" + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::coin::CoinInfo<0x1::aptos_coin::AptosCoin>", + "data": { + "decimals": 8, + "name": "Aptos Coin", + "supply": { + "vec": [ + { + "aggregator": { + "vec": [ + { + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "limit": "340282366920938463463374607431768211455" + } + ] + }, + "integer": { + "vec": [] + } + } + ] + }, + "symbol": "APT" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::coin::SupplyConfig", + "data": { + "allow_upgrades": false + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::block::BlockResource", + "data": { + "epoch_interval": "86400000000", + "height": "0", + "new_block_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "3" + } + } + }, + "update_epoch_interval_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "4" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::stake::ValidatorSet", + "data": { + "active_validators": [ + { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "config": { + "consensus_pubkey": "0xaa7023a1ea88520c0b163c530367dfbfe9269621c96dc9dc9147aca9c278b1340c07b21600b2b5423a2fb88c679b0c5a", + "fullnode_addresses": "0x012d040000000000052518072022b18b21ecf48f18a1ebb1b8fbe0347af7913e84ad27473669eca6efc8df087a0800", + "network_addresses": "0x012d040000000000052418072093c5ad141db18cfef10f1452d9019922745c7b8cec22ea40118b9e1a76a756680800", + "validator_index": "0" + }, + "voting_power": "1" + } + ], + "consensus_scheme": 0, + "pending_active": [], + "pending_inactive": [], + "total_joining_power": "0", + "total_voting_power": "1" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::stake::ValidatorPerformance", + "data": { + "validators": [ + { + "failed_proposals": "0", + "successful_proposals": "0" + } + ] + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::stake::AptosCoinCapabilities", + "data": { + "mint_cap": { + "dummy_field": false + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::voting::VotingForum<0x1::governance_proposal::GovernanceProposal>", + "data": { + "events": { + "create_proposal_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "5" + } + } + }, + "register_forum_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "6" + } + } + }, + "resolve_proposal_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "7" + } + } + }, + "vote_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "8" + } + } + } + }, + "next_proposal_id": "0", + "proposals": { + "handle": "0x38ff67f17cf7998cd41ed5267b52cff7af37d06a22e8b390ce44b69680fc0e97" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "0" + } + } + }, + "guid_creation_num": "12", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::account::OriginatingAddress", + "data": { + "address_map": { + "handle": "0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::version::Version", + "data": { + "major": "4" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::version::SetVersionCapability", + "data": { + "dummy_field": false + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::chain_id::ChainId", + "data": { + "id": 4 + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::timestamp::CurrentTimeMicroseconds", + "data": { + "microseconds": "0" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::chain_status::GenesisEndMarker", + "data": { + "dummy_field": false + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::gas_schedule::GasSchedule", + "data": { + "entries": [ + { + "key": "instr.nop", + "val": "1" + }, + { + "key": "instr.ret", + "val": "1" + }, + { + "key": "instr.abort", + "val": "1" + }, + { + "key": "instr.br_true", + "val": "1" + }, + { + "key": "instr.br_false", + "val": "1" + }, + { + "key": "instr.branch", + "val": "1" + }, + { + "key": "instr.pop", + "val": "1" + }, + { + "key": "instr.ld_u8", + "val": "1" + }, + { + "key": "instr.ld_u64", + "val": "1" + }, + { + "key": "instr.ld_u128", + "val": "1" + }, + { + "key": "instr.ld_true", + "val": "1" + }, + { + "key": "instr.ld_false", + "val": "1" + }, + { + "key": "instr.ld_const.base", + "val": "1" + }, + { + "key": "instr.ld_const.per_byte", + "val": "1" + }, + { + "key": "instr.imm_borrow_loc", + "val": "1" + }, + { + "key": "instr.mut_borrow_loc", + "val": "1" + }, + { + "key": "instr.imm_borrow_field", + "val": "1" + }, + { + "key": "instr.mut_borrow_field", + "val": "1" + }, + { + "key": "instr.imm_borrow_field_generic", + "val": "1" + }, + { + "key": "instr.mut_borrow_field_generic", + "val": "1" + }, + { + "key": "instr.copy_loc.base", + "val": "1" + }, + { + "key": "instr.copy_loc.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.move_loc.base", + "val": "1" + }, + { + "key": "instr.st_loc.base", + "val": "1" + }, + { + "key": "instr.call.base", + "val": "1" + }, + { + "key": "instr.call.per_arg", + "val": "1" + }, + { + "key": "instr.call_generic.base", + "val": "1" + }, + { + "key": "instr.call_generic.per_ty_arg", + "val": "1" + }, + { + "key": "instr.call_generic.per_arg", + "val": "1" + }, + { + "key": "instr.pack.base", + "val": "1" + }, + { + "key": "instr.pack.per_field", + "val": "1" + }, + { + "key": "instr.pack_generic.base", + "val": "1" + }, + { + "key": "instr.pack_generic.per_field", + "val": "1" + }, + { + "key": "instr.unpack.base", + "val": "1" + }, + { + "key": "instr.unpack.per_field", + "val": "1" + }, + { + "key": "instr.unpack_generic.base", + "val": "1" + }, + { + "key": "instr.unpack_generic.per_field", + "val": "1" + }, + { + "key": "instr.read_ref.base", + "val": "1" + }, + { + "key": "instr.read_ref.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.write_ref.base", + "val": "1" + }, + { + "key": "instr.freeze_ref", + "val": "1" + }, + { + "key": "instr.cast_u8", + "val": "1" + }, + { + "key": "instr.cast_u64", + "val": "1" + }, + { + "key": "instr.cast_u128", + "val": "1" + }, + { + "key": "instr.add", + "val": "1" + }, + { + "key": "instr.sub", + "val": "1" + }, + { + "key": "instr.mul", + "val": "1" + }, + { + "key": "instr.mod", + "val": "1" + }, + { + "key": "instr.div", + "val": "1" + }, + { + "key": "instr.bit_or", + "val": "1" + }, + { + "key": "instr.bit_and", + "val": "1" + }, + { + "key": "instr.bit_xor", + "val": "1" + }, + { + "key": "instr.bit_shl", + "val": "1" + }, + { + "key": "instr.bit_shr", + "val": "1" + }, + { + "key": "instr.or", + "val": "1" + }, + { + "key": "instr.and", + "val": "1" + }, + { + "key": "instr.not", + "val": "1" + }, + { + "key": "instr.lt", + "val": "1" + }, + { + "key": "instr.gt", + "val": "1" + }, + { + "key": "instr.le", + "val": "1" + }, + { + "key": "instr.ge", + "val": "1" + }, + { + "key": "instr.eq.base", + "val": "1" + }, + { + "key": "instr.eq.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.neq.base", + "val": "1" + }, + { + "key": "instr.neq.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.imm_borrow_global.base", + "val": "10" + }, + { + "key": "instr.imm_borrow_global_generic.base", + "val": "10" + }, + { + "key": "instr.mut_borrow_global.base", + "val": "10" + }, + { + "key": "instr.mut_borrow_global_generic.base", + "val": "10" + }, + { + "key": "instr.exists.base", + "val": "10" + }, + { + "key": "instr.exists_generic.base", + "val": "10" + }, + { + "key": "instr.move_from.base", + "val": "10" + }, + { + "key": "instr.move_from_generic.base", + "val": "10" + }, + { + "key": "instr.move_to.base", + "val": "10" + }, + { + "key": "instr.move_to_generic.base", + "val": "10" + }, + { + "key": "instr.vec_len.base", + "val": "1" + }, + { + "key": "instr.vec_imm_borrow.base", + "val": "1" + }, + { + "key": "instr.vec_mut_borrow.base", + "val": "1" + }, + { + "key": "instr.vec_push_back.base", + "val": "1" + }, + { + "key": "instr.vec_pop_back.base", + "val": "1" + }, + { + "key": "instr.vec_swap.base", + "val": "1" + }, + { + "key": "instr.vec_pack.base", + "val": "1" + }, + { + "key": "instr.vec_pack.per_elem", + "val": "1" + }, + { + "key": "instr.vec_unpack.base", + "val": "1" + }, + { + "key": "instr.vec_unpack.per_expected_elem", + "val": "1" + }, + { + "key": "txn.min_transaction_gas_units", + "val": "600" + }, + { + "key": "txn.large_transaction_cutoff", + "val": "600" + }, + { + "key": "txn.intrinsic_gas_per_byte", + "val": "8" + }, + { + "key": "txn.maximum_number_of_gas_units", + "val": "4000000" + }, + { + "key": "txn.min_price_per_gas_unit", + "val": "0" + }, + { + "key": "txn.max_price_per_gas_unit", + "val": "10000" + }, + { + "key": "txn.max_transaction_size_in_bytes", + "val": "32768" + }, + { + "key": "txn.gas_unit_scaling_factor", + "val": "1000" + }, + { + "key": "txn.load_data.base", + "val": "1" + }, + { + "key": "txn.load_data.per_byte", + "val": "1" + }, + { + "key": "txn.load_data.failure", + "val": "1" + }, + { + "key": "txn.write_data.per_op", + "val": "100" + }, + { + "key": "txn.write_data.new_item", + "val": "1000" + }, + { + "key": "txn.write_data.per_byte_in_key", + "val": "100" + }, + { + "key": "txn.write_data.per_byte_in_val", + "val": "100" + }, + { + "key": "move_stdlib.bcs.to_bytes.per_byte_serialized", + "val": "1" + }, + { + "key": "move_stdlib.bcs.to_bytes.failure", + "val": "10" + }, + { + "key": "move_stdlib.hash.sha2_256.base", + "val": "1" + }, + { + "key": "move_stdlib.hash.sha2_256.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.hash.sha3_256.base", + "val": "1" + }, + { + "key": "move_stdlib.hash.sha3_256.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.signer.borrow_address.base", + "val": "1" + }, + { + "key": "move_stdlib.string.check_utf8.base", + "val": "1" + }, + { + "key": "move_stdlib.string.check_utf8.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.string.is_char_boundary.base", + "val": "1" + }, + { + "key": "move_stdlib.string.sub_string.base", + "val": "1" + }, + { + "key": "move_stdlib.string.sub_string.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.string.index_of.base", + "val": "1" + }, + { + "key": "move_stdlib.string.index_of.per_byte_pattern", + "val": "1" + }, + { + "key": "move_stdlib.string.index_of.per_byte_searched", + "val": "1" + }, + { + "key": "move_stdlib.unit_test.create_signers_for_testing.base", + "val": "1" + }, + { + "key": "move_stdlib.unit_test.create_signers_for_testing.unit", + "val": "1" + }, + { + "key": "aptos_framework.account.create_address.base", + "val": "1" + }, + { + "key": "aptos_framework.account.create_signer.base", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.base", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pubkey_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pubkey_aggregate", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pubkey_subgroup_check", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_aggregate", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_subgroup_check", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_verify", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pop_verify", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pairing", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_msg_hashing", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_byte_hashing", + "val": "1" + }, + { + "key": "aptos_framework.signature.base", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_pubkey_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_pubkey_small_order_check", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_sig_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_sig_strict_verify", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_msg_hashing_base", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_msg_byte_hashing", + "val": "1" + }, + { + "key": "aptos_framework.secp256k1.base", + "val": "1" + }, + { + "key": "aptos_framework.secp256k1.ecdsa_recover", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.basepoint_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.basepoint_double_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_add", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_compress", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_decompress", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_equals", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_from_64_uniform_bytes", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_identity", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_neg", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_sub", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_parse_arg", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_sha512_per_byte", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_sha512_per_hash", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_add", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_reduced_from_32_bytes", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_uniform_from_64_bytes", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_from_u128", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_from_u64", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_invert", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_is_canonical", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_neg", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_sub", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_parse_arg", + "val": "1" + }, + { + "key": "aptos_framework.hash.sip_hash.base", + "val": "1" + }, + { + "key": "aptos_framework.hash.sip_hash.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.hash.keccak256.base", + "val": "1" + }, + { + "key": "aptos_framework.hash.keccak256.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_of.base", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_of.per_abstract_memory_unit", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_name.base", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_name.per_abstract_memory_unit", + "val": "1" + }, + { + "key": "aptos_framework.util.from_bytes.base", + "val": "1" + }, + { + "key": "aptos_framework.util.from_bytes.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.transaction_context.get_script_hash.base", + "val": "1" + }, + { + "key": "aptos_framework.code.request_publish.base", + "val": "1" + }, + { + "key": "aptos_framework.code.request_publish.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.event.write_to_event_store.base", + "val": "1" + }, + { + "key": "aptos_framework.event.write_to_event_store.per_abstract_memory_unit", + "val": "1" + }, + { + "key": "aptos_framework.state_storage.get_usage.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.add.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.read.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.sub.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.destroy.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator_factory.new_aggregator.base", + "val": "1" + }, + { + "key": "table.common.load.base", + "val": "1" + }, + { + "key": "table.common.load.per_byte", + "val": "1" + }, + { + "key": "table.common.load.failure", + "val": "1" + }, + { + "key": "table.new_table_handle.base", + "val": "1" + }, + { + "key": "table.add_box.base", + "val": "1" + }, + { + "key": "table.add_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.borrow_box.base", + "val": "1" + }, + { + "key": "table.borrow_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.contains_box.base", + "val": "1" + }, + { + "key": "table.contains_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.remove_box.base", + "val": "1" + }, + { + "key": "table.remove_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.destroy_empty_box.base", + "val": "1" + }, + { + "key": "table.drop_unchecked_box.base", + "val": "1" + }, + { + "key": "misc.abs_val.u8", + "val": "1" + }, + { + "key": "misc.abs_val.u64", + "val": "8" + }, + { + "key": "misc.abs_val.u128", + "val": "16" + }, + { + "key": "misc.abs_val.bool", + "val": "1" + }, + { + "key": "misc.abs_val.address", + "val": "32" + }, + { + "key": "misc.abs_val.struct", + "val": "8" + }, + { + "key": "misc.abs_val.vector", + "val": "16" + }, + { + "key": "misc.abs_val.reference", + "val": "16" + }, + { + "key": "misc.abs_val.per_u8_packed", + "val": "1" + }, + { + "key": "misc.abs_val.per_u64_packed", + "val": "8" + }, + { + "key": "misc.abs_val.per_u128_packed", + "val": "16" + }, + { + "key": "misc.abs_val.per_bool_packed", + "val": "1" + }, + { + "key": "misc.abs_val.per_address_packed", + "val": "32" + } + ] + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::state_storage::GasParameter", + "data": "state storage gas parameter omitted" + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::state_storage::StateStorageUsage", + "data": "state storage omitted" + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::staking_config::StakingConfig", + "data": { + "allow_validator_set_change": false, + "maximum_stake": "18446744073709551615", + "minimum_stake": "0", + "recurring_lockup_duration_secs": "86400", + "rewards_rate": "273972", + "rewards_rate_denominator": "1000000000", + "voting_power_increase_limit": "50" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::reconfiguration::Configuration", + "data": { + "epoch": "1", + "events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "2" + } + } + }, + "last_reconfiguration_time": "0" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::transaction_fee::AptosCoinCapabilities", + "data": { + "burn_cap": { + "dummy_field": false + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::VotingRecords", + "data": { + "votes": { + "handle": "0xdc3189011da6e60643ef48030b4f8fc315beddc236c6c523db96778af7b47056" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::GovernanceConfig", + "data": { + "min_voting_threshold": "0", + "required_proposer_stake": "0", + "voting_duration_secs": "3600" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::GovernanceEvents", + "data": { + "create_proposal_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "9" + } + } + }, + "update_config_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "10" + } + } + }, + "vote_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "11" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::ApprovedExecutionHashes", + "data": { + "hashes": { + "data": [] + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::GovernanceResponsbility", + "data": { + "signer_caps": { + "data": [ + { + "key": "0x1", + "value": { + "account": "0x1" + } + }, + { + "key": "0x2", + "value": { + "account": "0x2" + } + }, + { + "key": "0x3", + "value": { + "account": "0x3" + } + }, + { + "key": "0x4", + "value": { + "account": "0x4" + } + }, + { + "key": "0x5", + "value": { + "account": "0x5" + } + }, + { + "key": "0x6", + "value": { + "account": "0x6" + } + }, + { + "key": "0x7", + "value": { + "account": "0x7" + } + }, + { + "key": "0x8", + "value": { + "account": "0x8" + } + }, + { + "key": "0x9", + "value": { + "account": "0x9" + } + }, + { + "key": "0xa", + "value": { + "account": "0xa" + } + } + ] + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::consensus_config::ConsensusConfig", + "data": { + "config": "0x00010a0000000000000014000000000000000200e8030000000000000a0000000000000001000000000000000a0000000a00000000000000010000000000000001050000000a00000000000000" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aggregator_factory::AggregatorFactory", + "data": { + "phantom_table": { + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::transaction_validation::TransactionValidation", + "data": { + "module_addr": "0x1", + "module_name": "0x7472616e73616374696f6e5f76616c69646174696f6e", + "module_prologue_name": "0x6d6f64756c655f70726f6c6f677565", + "multi_agent_prologue_name": "0x6d756c74695f6167656e745f7363726970745f70726f6c6f677565", + "script_prologue_name": "0x7363726970745f70726f6c6f677565", + "user_epilogue_name": "0x6570696c6f677565" + } + }, + "type": "write_resource" + }, + { + "address": "0x2", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000002", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x2", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x2", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01001002105a036a880204f2023c05ae03980507c608a10d08e7154006a716e601108d18c0060acd1ea0020ced20fe110deb323c000001010102010301040105010600070008060000090400000a0700000b0800000c0600000d0600000e0600000f0600001006000011070000120400001304000014070000150700001607000017080000180600051a07000646040203010001034904010601075b07000019000100001b020300001c040500001d060300001e070800001f0603000020090a0000210b0c0000220d0c000023070e0000240f03000025100a000026110300002712030000281303000029140300002a0c1500002b160100002c160100002d161700002e180100002f19030000301a030000311a030000321b030000331c030000341d0c0000351e030000361f0300003720210000381822000039230300003a240300003b252100003c262100066829050203000669292a020300026a010100046b1a1700036c2e030106066d2f30020300066e2f31020300066f033502030401701a370106027101010006723a03020300076f3d3e000773033e00027401010007754b030023282428232c272d282c292c23332a332a2c2b362b382b392d33273628332d2c273827412d282828242c2a282b412b442b2d2b4527392745274429280205080d010306060c050811081103030002050811010106060c081108110811030a0101060a0101080203050811081101080c02080c0301080d0405081108110301080e0e060c081108110811030308110503030a010a08110a0a020a08110d060c081108110811030811050303080e0a08110a0a020a081102060c080a0205080a04060c060c080d0307060c060c050811081103030108090106080901050106080a02060c080d01060c0207080a080a05060c05081108110303060c080c030a060c05050811081103030a08110a0a020a081102060c010207080a0301080a0106080d04060c080d05030505080d0a08110a0a020a081103060c080d030305080d03020306080f02080d080a02060b12020900090109000106090106030708030507080b080d07080f02080c080b01080002070b13010900090002070b12020900090109000107090101090101060b120208110801020811080107070b1202081108010811050801070b1202081108010708030802010b120209000901010804010b1301090001080501080703070b1202090009010900090102080e080c0c030305081103030305070801070803080b080c030a08110a0a020a081101081404070b1202080d080a080d05070b1202080d080a0307080a07080f07080f01080604060b1202080c080b0506080b080c09070b1202080d080a080d03080d0814080d070b1202080d080a05070b1202080d080a01081001080806070b1202080c080b080c070b1202080c080b0507080b080d0b070b1202080c080b080c070b1202080c080b030303080a080d080a07080b080d020507010201080a04070b1202080d080a080d070b1202080d080a070814040708140a08110a0a020a081106070b1202080d080a080d080a070307080f070b1202080d080a05746f6b656e076163636f756e74056572726f72056576656e74067369676e657206737472696e67057461626c650c70726f70657274795f6d61700e4275726e546f6b656e4576656e740e436f6c6c656374696f6e446174611a436f6c6c656374696f6e4d75746162696c697479436f6e6669670b436f6c6c656374696f6e7315437265617465436f6c6c656374696f6e4576656e7414437265617465546f6b656e446174614576656e740c4465706f7369744576656e740e4d696e74546f6b656e4576656e741b4d7574617465546f6b656e50726f70657274794d61704576656e7407526f79616c747905546f6b656e09546f6b656e446174610b546f6b656e44617461496407546f6b656e496415546f6b656e4d75746162696c697479436f6e6669670a546f6b656e53746f72650d57697468647261774576656e740a62616c616e63655f6f6606537472696e67046275726e17636865636b5f636f6c6c656374696f6e5f657869737473116372656174655f636f6c6c656374696f6e236372656174655f636f6c6c656374696f6e5f6d75746162696c6974795f636f6e666967186372656174655f636f6c6c656374696f6e5f736372697074146372656174655f746f6b656e5f646174615f69640f6372656174655f746f6b656e5f6964136372656174655f746f6b656e5f69645f7261771e6372656174655f746f6b656e5f6d75746162696c6974795f636f6e666967136372656174655f746f6b656e5f736372697074106372656174655f746f6b656e646174610d6465706f7369745f746f6b656e0e6469726563745f6465706f7369740f6469726563745f7472616e73666572166469726563745f7472616e736665725f7363726970740b6765745f726f79616c7479176765745f726f79616c74795f64656e6f6d696e61746f72156765745f726f79616c74795f6e756d657261746f72116765745f726f79616c74795f7061796565106765745f746f6b656e5f616d6f756e7410696e697469616c697a655f746f6b656e17696e697469616c697a655f746f6b656e5f73637269707416696e697469616c697a655f746f6b656e5f73746f7265056d657267650b6d696e745f7363726970740a6d696e745f746f6b656e176d75746174655f746f6b656e5f70726f70657274696573166f70745f696e5f6469726563745f7472616e736665720573706c697408746f6b656e5f6964087472616e736665721e7570646174655f746f6b656e5f70726f70657274795f696e7465726e616c0e77697468647261775f746f6b656e1c77697468647261775f776974685f6576656e745f696e7465726e616c02696406616d6f756e740b6465736372697074696f6e046e616d650375726906737570706c79076d6178696d756d116d75746162696c6974795f636f6e6669670f636f6c6c656374696f6e5f64617461055461626c650a746f6b656e5f64617461186372656174655f636f6c6c656374696f6e5f6576656e74730b4576656e7448616e646c65186372656174655f746f6b656e5f646174615f6576656e7473116d696e745f746f6b656e5f6576656e74730763726561746f720f636f6c6c656374696f6e5f6e616d6515726f79616c74795f70617965655f616464726573731a726f79616c74795f706f696e74735f64656e6f6d696e61746f7218726f79616c74795f706f696e74735f6e756d657261746f720d70726f70657274795f6b6579730f70726f70657274795f76616c7565730e70726f70657274795f7479706573066f6c645f6964066e65775f6964046b6579730676616c7565730574797065730d70617965655f6164647265737310746f6b656e5f70726f706572746965730b50726f70657274794d6170186c6172676573745f70726f70657274795f76657273696f6e07726f79616c74791264656661756c745f70726f706572746965730a636f6c6c656374696f6e0d746f6b656e5f646174615f69641070726f70657274795f76657273696f6e0a70726f7065727469657306746f6b656e730e6465706f7369745f6576656e74730f77697468647261775f6576656e74730b6275726e5f6576656e74731c6d75746174655f746f6b656e5f70726f70657274795f6576656e747308636f6e7461696e7306626f72726f77096e6f745f666f756e640a616464726573735f6f660a656d69745f6576656e740a626f72726f775f6d75740672656d6f7665036e6577106e65775f6576656e745f68616e646c650e616c72656164795f6578697374730361646405656d70747910696e76616c69645f617267756d656e74137570646174655f70726f70657274795f6d61700000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000103080000000000000000030802000000000000000308010000000000000003080400000000000000030803000000000000000308050000000000000003081000000000000000030806000000000000000308070000000000000003080800000000000000030809000000000000000308140000000000000003080a0000000000000003080b0000000000000003081100000000000000030813000000000000000308120000000000000003080c0000000000000003080d0000000000000003080f0000000000000003080e000000000000000308150000000000000003081600000000000000126170746f733a3a6d657461646174615f7630ab061700000000000000001445414c52454144595f4841535f42414c414e4345000100000000000000164542414c414e43455f4e4f545f5055424c49534845440002000000000000001a45434f4c4c454354494f4e535f4e4f545f5055424c49534845440003000000000000001945434f4c4c454354494f4e5f4e4f545f5055424c49534845440004000000000000001a45434f4c4c454354494f4e5f414c52454144595f45584953545300050000000000000027454352454154455f574f554c445f4558434545445f434f4c4c454354494f4e5f4d4158494d554d0006000000000000001545494e53554646494349454e545f42414c414e43450007000000000000001845494e56414c49445f434f4c4c454354494f4e5f4e414d450008000000000000001445494e56414c49445f544f4b454e5f4d4552474500090000000000000020454d494e545f574f554c445f4558434545445f544f4b454e5f4d4158494d554d000a0000000000000013454e4f5f4255524e5f4341504142494c495459000b0000000000000013454e4f5f4d494e545f4341504142494c495459000c000000000000001545544f4b454e5f414c52454144595f455849535453000d000000000000001445544f4b454e5f4e4f545f5055424c4953484544000e000000000000001a45544f4b454e5f53544f52455f4e4f545f5055424c4953484544000f000000000000002c45544f4b454e5f53504c49545f414d4f554e545f4c41524745525f5448454e5f544f4b454e5f414d4f554e5400100000000000000012454649454c445f4e4f545f4d555441424c4500110000000000000015454e4f5f4d55544154455f4341504142494c4954590012000000000000001745544f454b4e5f50524f50455254595f4558495354454400130000000000000018454e4f5f544f4b454e5f494e5f544f4b454e5f53544f52450014000000000000002c454e4f4e5f5a45524f5f50524f50455254595f56455253494f4e5f4f4e4c595f4f4e455f494e5354414e43450015000000000000002045555345525f4e4f545f4f50545f494e5f4449524543545f5452414e534645520016000000000000000e4557495448445241575f5a45524f000002023d080d3e030102063f0811400811410811420343034408020202033f0141014301030205450b120208110801470b1202080c080b480b130108044a0b130108054b0b130108070402054c054d08114108113f0811430305020c3d080c3f081143034108114e054f03500340081144080e510a0811520a0a02530a08110602023d080d3e030702023d080c3e0308020554080d55080d560a0811570a0a02580a081109020350034f0359050a02033d080d3e035a08140b020943035c0342034108115d08094008113f08115e081444080e0c02034c055f08114008110d020260080c61030e0205430141015d013f0162010f0206630b1202080d080a2801640b13010806650b13010810660b13010800670b130108081002023d080d3e03000100010f27170b002b0f0c030a0310000a013800030905110b0310000b0138011001140c0205150b03010600000000000000000c020b020201010402030f2b600b010b020b030b0411080c0a0e0a10021003140c080a08290303130b000107011125270b082a030c070a0710040e0a100214380203240b00010b070107121125270a000a0a0b051121130a010c06010b0011262a0f0c0b0b0b0f050a0a0a06120038030a070f040e0a10021438040c090a091006140b06170a090f06150b0910061406000000000000000021034c055d0b070f040e0a1002143805130b010101010101010101055f0b0701020201000103320e0a002903030607011125270b002b0310070c020b020b01380602030100010334470a0011260c080a08290320030805140a00380738080a0038090a00380a0b00380b12032d0305160b00010a082a030f070c0a0a0a0a010c070c060b062e0b0738062003290b0a010703112c270e0511040c0c0a020e01140a030600000000000000000a040b0c12010c090b0a0a010b09380c0a082a030c0b0b0b0f080b080e01140b030b020b041204380d0204010000030e0a0007004205140a0007024205140b000701420514120202050104010303080b000b010b020b030b040b051103020601000003050b000b010b02120c020701000003040b000b01120d020801000003070b000b010b0211060b03120d020901000003160a0007004205140a0007024205140a0007044205140a0007014205140b000703420514120e020a010402030f3b180e0a11090c0e0a000b010b020b030b050b060b070b080b090b0e0b0b0b0c0b0d110b0c0f0b000b0f0b04111a01020b010001033c750b0011260c140a142903030907011125270a142a030c160b140b010a0211060c180a1610070e181009143806031d0b16010704112c270a1610040a1838022003280b16010711112c270a160f070e18100914380e0c150a15100a14060100000000000000160a150f0a150a15100b140b15100a142603430b16010705270a040c130a050c100a070c0d0a080c0e0a060c0f0b130600000000000000000600000000000000000b100b0e0b0d0b0f12090a020a030a0a0a0b0a0c112e0a09120b0c170a160f040a180b17380f0b160f0c0a180b030b040b050b060b070b080b020b090b0a0b0b0b0c120538100b18020c0100010f3f220a0011260c040a0011170a042a0f0f000c050b050e01100d140c030c020b022e0b033800200316051c0b000e01100d141115051e0b00010b040b01110d020d0000010f40320a002a0f0c030b030f0e0e01100d140e01100114120638110a00290f031307141125270b002a0f0c040a0410000e01100d14380020031f05270b040f000e01100d140b01381205310b040f000e01100d1438130c020b020b011118020e0100010f21090b000b020b0311210c040b010b04110c020f0104010f0c0c0b020b030b040b0511080c070b000b010b070b06110e02100100010342210e001002140c040e041003140c020a022903030d0701270b022b0310040c010a010a04380203190b01010712270b010b0438140c030b03100f14021101000003040b00101014021201000003040b00101114021301000003040b00101214021401000003040b0010011402150100010f432c0b0011260c090a09290f030907141125270b092a0f0f000c0a0a0a0a010c030c020b022e0b03380020031c0b0a010700112c270b0a0c080a010c070b010c05112f0c060b080b070b050600000000000000000b06120a3812021601040003030b001117021701000003170a001126290f20030605140a003815090a0038160a0038170a0038180b003819120f2d0f05160b00010218010000031b0a00100d0e01100d21030b0b000107091130270a001001140e01100114160b000f01150b01130a0101010219010402030f0a160b010b020b0311060c050e051003140a0011262103100b0001070d270b000b050b04111a01021a010002030f46510e011003140a00112621030b0b0001070d270e011003140c060a062a030f040c050a050a010c040c030b032e0b04380203220b05010b00010712270b050a0138040c070a071006140a02160a071013142503360b07010b0001070a270a071006140a02160b070f06150a0106000000000000000011070c080b000a080a02112f120a110c0b062a030f140b010b021207381a0b08021b010402030f478b010b0011260a02210307070e270a022903030c0701270a022a030f040c0c0b020b030b040b0511080c140a0c0e141002140c0b0c0a0b0a2e0b0b380203250b0c010712270b0c0e1410021438040c130a13101510161403340b13010706270e1410171406000000000000000021033b057c0a010a140b0611220c120600000000000000000c0e0a131018140c0f0a0e0e1210011423034d056e0a0f0a0e16060100000000000000160c0d0e141002140b0d11070c110a110601000000000000000a13101914120a0c100a010b10110d0a010b110a070a080a0911200b0e060100000000000000160c0e05460b0f0e12100114160b130f18150b12130a010101058a010b13010b0606010000000000000021038401070b270b010b140b070b080b091120021c0104010f48100b0011260c020a02290f03080714270b022a0f0f1a0c030b010b0315021d01000003190a001001140a0126030a0b00010713270a001001140a01170a000f01150b00100d140b01112f120a021e01000003030b00100d021f0100010f49140a022b0f101a140c040b04030b0b00010715270b000b010b0311210c050b020b05110d02200000010f4a260a002a0f0f000c070a070a010c060c050b052e0b06380003110b0701070f270b070a0138130f1b0c080b080a020a030a0411310b002a0f0f1c0a010b010b020b030b041208381b02210100010f17080b0011260c030b030b010b02112202220000010f4c520a0206000000000000000024030707161130270a000a0111000a0226031007071130270a002a0f0c070b070f1d0a010a021210381c0a00290f031f07141125270b002a0f0f000c080a080a010c040c030b032e0b04380003310b080107021125270a080a0138130f010c060a06140a0224033c054a0b08010a06140a02170b06150b010b02112f120a0c0505500b06010b080b01381d0c050b05020f000a010d000c0003010f040b02030003020c010103010403030a000f020b040901090009020b0003040b080e040d010b010b070f010a020f050f0300", + "abi": { + "address": "0x3", + "name": "token", + "friends": [], + "exposed_functions": [ + { + "name": "balance_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x3::token::TokenId" + ], + "return": [ + "u64" + ] + }, + { + "name": "burn", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "check_collection_exists", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "create_collection", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "vector" + ], + "return": [] + }, + { + "name": "create_collection_mutability_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector" + ], + "return": [ + "0x3::token::CollectionMutabilityConfig" + ] + }, + { + "name": "create_collection_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "vector" + ], + "return": [] + }, + { + "name": "create_token_data_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::string::String", + "0x1::string::String" + ], + "return": [ + "0x3::token::TokenDataId" + ] + }, + { + "name": "create_token_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x3::token::TokenDataId", + "u64" + ], + "return": [ + "0x3::token::TokenId" + ] + }, + { + "name": "create_token_id_raw", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [ + "0x3::token::TokenId" + ] + }, + { + "name": "create_token_mutability_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector" + ], + "return": [ + "0x3::token::TokenMutabilityConfig" + ] + }, + { + "name": "create_token_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "0x1::string::String", + "address", + "u64", + "u64", + "vector", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [] + }, + { + "name": "create_tokendata", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "0x1::string::String", + "address", + "u64", + "u64", + "0x3::token::TokenMutabilityConfig", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [ + "0x3::token::TokenDataId" + ] + }, + { + "name": "deposit_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::Token" + ], + "return": [] + }, + { + "name": "direct_transfer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [] + }, + { + "name": "direct_transfer_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "get_royalty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x3::token::TokenId" + ], + "return": [ + "0x3::token::Royalty" + ] + }, + { + "name": "get_royalty_denominator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Royalty" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_royalty_numerator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Royalty" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_royalty_payee", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Royalty" + ], + "return": [ + "address" + ] + }, + { + "name": "get_token_amount", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Token" + ], + "return": [ + "u64" + ] + }, + { + "name": "initialize_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId" + ], + "return": [] + }, + { + "name": "initialize_token_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize_token_store", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "merge", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::token::Token", + "0x3::token::Token" + ], + "return": [] + }, + { + "name": "mint_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [] + }, + { + "name": "mint_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenDataId", + "u64" + ], + "return": [ + "0x3::token::TokenId" + ] + }, + { + "name": "mutate_token_properties", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [] + }, + { + "name": "opt_in_direct_transfer", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "bool" + ], + "return": [] + }, + { + "name": "split", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::token::Token", + "u64" + ], + "return": [ + "0x3::token::Token" + ] + }, + { + "name": "token_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Token" + ], + "return": [ + "&0x3::token::TokenId" + ] + }, + { + "name": "transfer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "address", + "u64" + ], + "return": [] + }, + { + "name": "withdraw_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [ + "0x3::token::Token" + ] + } + ], + "structs": [ + { + "name": "BurnTokenEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "CollectionData", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "supply", + "type": "u64" + }, + { + "name": "maximum", + "type": "u64" + }, + { + "name": "mutability_config", + "type": "0x3::token::CollectionMutabilityConfig" + } + ] + }, + { + "name": "CollectionMutabilityConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "description", + "type": "bool" + }, + { + "name": "uri", + "type": "bool" + }, + { + "name": "maximum", + "type": "bool" + } + ] + }, + { + "name": "Collections", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "collection_data", + "type": "0x1::table::Table<0x1::string::String, 0x3::token::CollectionData>" + }, + { + "name": "token_data", + "type": "0x1::table::Table<0x3::token::TokenDataId, 0x3::token::TokenData>" + }, + { + "name": "create_collection_events", + "type": "0x1::event::EventHandle<0x3::token::CreateCollectionEvent>" + }, + { + "name": "create_token_data_events", + "type": "0x1::event::EventHandle<0x3::token::CreateTokenDataEvent>" + }, + { + "name": "mint_token_events", + "type": "0x1::event::EventHandle<0x3::token::MintTokenEvent>" + } + ] + }, + { + "name": "CreateCollectionEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "creator", + "type": "address" + }, + { + "name": "collection_name", + "type": "0x1::string::String" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "maximum", + "type": "u64" + } + ] + }, + { + "name": "CreateTokenDataEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenDataId" + }, + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "maximum", + "type": "u64" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "royalty_payee_address", + "type": "address" + }, + { + "name": "royalty_points_denominator", + "type": "u64" + }, + { + "name": "royalty_points_numerator", + "type": "u64" + }, + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "mutability_config", + "type": "0x3::token::TokenMutabilityConfig" + }, + { + "name": "property_keys", + "type": "vector<0x1::string::String>" + }, + { + "name": "property_values", + "type": "vector>" + }, + { + "name": "property_types", + "type": "vector<0x1::string::String>" + } + ] + }, + { + "name": "DepositEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "MintTokenEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenDataId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "MutateTokenPropertyMapEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "old_id", + "type": "0x3::token::TokenId" + }, + { + "name": "new_id", + "type": "0x3::token::TokenId" + }, + { + "name": "keys", + "type": "vector<0x1::string::String>" + }, + { + "name": "values", + "type": "vector>" + }, + { + "name": "types", + "type": "vector<0x1::string::String>" + } + ] + }, + { + "name": "Royalty", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "royalty_points_numerator", + "type": "u64" + }, + { + "name": "royalty_points_denominator", + "type": "u64" + }, + { + "name": "payee_address", + "type": "address" + } + ] + }, + { + "name": "Token", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "token_properties", + "type": "0x3::property_map::PropertyMap" + } + ] + }, + { + "name": "TokenData", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "maximum", + "type": "u64" + }, + { + "name": "largest_property_version", + "type": "u64" + }, + { + "name": "supply", + "type": "u64" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "royalty", + "type": "0x3::token::Royalty" + }, + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "default_properties", + "type": "0x3::property_map::PropertyMap" + }, + { + "name": "mutability_config", + "type": "0x3::token::TokenMutabilityConfig" + } + ] + }, + { + "name": "TokenDataId", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "creator", + "type": "address" + }, + { + "name": "collection", + "type": "0x1::string::String" + }, + { + "name": "name", + "type": "0x1::string::String" + } + ] + }, + { + "name": "TokenId", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_data_id", + "type": "0x3::token::TokenDataId" + }, + { + "name": "property_version", + "type": "u64" + } + ] + }, + { + "name": "TokenMutabilityConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "maximum", + "type": "bool" + }, + { + "name": "uri", + "type": "bool" + }, + { + "name": "royalty", + "type": "bool" + }, + { + "name": "description", + "type": "bool" + }, + { + "name": "properties", + "type": "bool" + } + ] + }, + { + "name": "TokenStore", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "tokens", + "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token::Token>" + }, + { + "name": "direct_transfer", + "type": "bool" + }, + { + "name": "deposit_events", + "type": "0x1::event::EventHandle<0x3::token::DepositEvent>" + }, + { + "name": "withdraw_events", + "type": "0x1::event::EventHandle<0x3::token::WithdrawEvent>" + }, + { + "name": "burn_events", + "type": "0x1::event::EventHandle<0x3::token::BurnTokenEvent>" + }, + { + "name": "mutate_token_property_events", + "type": "0x1::event::EventHandle<0x3::token::MutateTokenPropertyMapEvent>" + } + ] + }, + { + "name": "WithdrawEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000a020a14031eb80104d6010e05e401b801079c03890308a5064006e506850110ea07f1010adb09140cef09eb050dda0f0600000101010201030104000507000006070004070700031a07020000000000080001000009020300000a030400000b030500000c020600000d010700000e080900000f0a07000010020b00001102060000120204000013020c0000140209000015020d0000160e0f0000171001000018110100030c1206020404011d090900030e1309020404011e0909000308140102040403091215020404031f011602040404200504000221050b00022205060002230504000224050c0002250509000226050d0001270909000316191a0204040328191d020404110f130f150f160f170f200f210f0307080008020801000206080006080201060801010802010a020101010800010608000103030a08020a0a020a0802010501040102020708000608020208020801040708000a08020a0a020a080203070800060802080102060b03020900090106090001060b03020900090103070b0302090009010900090101060901010b03020900090102030800030708000608020102070b0302090009010609000209000901050303080103030407080006080201070801010709010c70726f70657274795f6d6170056572726f720866726f6d5f6263730a73696d706c655f6d617006737472696e670b50726f70657274794d61700d50726f706572747956616c756506537472696e670361646406626f72726f770b626f72726f775f747970650c626f72726f775f76616c75650c636f6e7461696e735f6b657905656d707479066c656e677468036e65770c726561645f6164647265737309726561645f626f6f6c0b726561645f737472696e6709726561645f7531323808726561645f75363407726561645f75380672656d6f7665137570646174655f70726f70657274795f6d6170157570646174655f70726f70657274795f76616c7565036d61700953696d706c654d61700576616c756504747970650e616c72656164795f6578697374730d696e76616c69645f73746174650663726561746504757466380a746f5f6164647265737307746f5f626f6f6c09746f5f737472696e6707746f5f7531323806746f5f75363405746f5f7538096e6f745f666f756e640a626f72726f775f6d7574000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010308010000000000000003080500000000000000030804000000000000000308030000000000000003080200000000000000030806000000000000000308e8030000000000000a020807616464726573730a020504626f6f6c0a0214133078313a3a737472696e673a3a537472696e670a020504753132380a0204037536340a0203027538126170746f733a3a6d657461646174615f7630dc0106010000000000000021454b45595f4152454144595f45584953545f494e5f50524f50455254595f4d41500002000000000000001d4550524f50455254595f4e554d4245525f4558434545445f4c494d4954000300000000000000134550524f50455254595f4e4f545f455849535400040000000000000020454b45595f434f554e545f4e4f545f4d415443485f56414c55455f434f554e540005000000000000001f454b45595f434f554e545f4e4f545f4d415443485f545950455f434f554e540006000000000000000f45545950455f4e4f545f4d4154434800000201190b0302080208010102021b0a021c080200010000011c0a0010000e01380020030b0b000107001112270a001000380107062503160b000107041114270b000f000b010b023802020101000006110a000a0111040c020b02030c0b00010b01010703270b0010000b013803020201000001040b00100114020301000001040b00100214020401000001050b0010000b0138000205010000010338041200020601000001040b0010003801020701000017340e0041040e01410521030907021114270e0041040e0241042103120701111427380412000c040600000000000000000c030a030e00410423031d05320d040f000e000a034204140e010a034205140e020a03420414120138020b03060100000000000000160c0305170b04020801000003150b000b0111010c020a02100114070711182103100b020107051114270b021002141119020901000003150b000b0111010c020a02100114070811182103100b020107051114270b02100214111a020a01000003150b000b0111010c020a02100114070911182103100b020107051114270b02100214111b020b01000003150b000b0111010c020a02100114070a11182103100b020107051114270b02100214111c020c01000003150b000b0111010c020a02100114070b11182103100b020107051114270b02100214111d020d01000003150b000b0111010c020a02100114070c11182103100b020107051114270b02100214111e020e01000018170a000a010c030c020b022e0b0311040c040b0403120b00010b01010703111f270b000f000b013805020f0100001b3b0e0141040c050e0241050c080e0341040c070b050a082103120b000107021114270b080b0721031b0b000107011114270600000000000000000c040a040e01410423032305380e020a044205140e030a0442041412010c060a000e010a0442040b0611100b04060100000000000000160c04051d0b000102100100001c1b0a000a010c040c030b032e0b0411040c050b0503120b00010b01010703111f270b000f000b0138060c060b020b06150200000101010000", + "abi": { + "address": "0x3", + "name": "property_map", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "0x1::string::String", + "0x3::property_map::PropertyValue" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "&0x3::property_map::PropertyValue" + ] + }, + { + "name": "borrow_type", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyValue" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "borrow_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyValue" + ], + "return": [ + "vector" + ] + }, + { + "name": "contains_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x3::property_map::PropertyMap" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap" + ], + "return": [ + "u64" + ] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [ + "0x3::property_map::PropertyMap" + ] + }, + { + "name": "read_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "address" + ] + }, + { + "name": "read_bool", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "read_string", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "read_u128", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "u128" + ] + }, + { + "name": "read_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "u64" + ] + }, + { + "name": "read_u8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "u8" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "0x1::string::String", + "0x3::property_map::PropertyValue" + ] + }, + { + "name": "update_property_map", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [] + }, + { + "name": "update_property_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "&0x1::string::String", + "0x3::property_map::PropertyValue" + ], + "return": [] + } + ], + "structs": [ + { + "name": "PropertyMap", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "map", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, 0x3::property_map::PropertyValue>" + } + ] + }, + { + "name": "PropertyValue", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "value", + "type": "vector" + }, + { + "name": "type", + "type": "0x1::string::String" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e0100140214440358aa010482022405a602e502078b05dd0608e80b4006a80c4610ee0c91020aff0e520bd10f040cd50ff8050dcd15100edd150a0000010101020103010401050106010701080009000a06010001000b0400000c0600000d08010001000e0800000f060009100700091204000514070008220700062404020301000103260401060102320401000109330700001100010100001302010000150301010000160401010000170401000018050101000019000600001a070600042b040900062c0c0d020300062d0e0f020300092e100100062f0e1302030009301401000631150102030009341718000235091901000936181a0009371b190009381b190009391b0900023a1c1d0100023b1e010100083c011f0100033d21010106063e0123020304013f04250106094000060007410119000942290600090b0a0b09120c120e12100a0c0b150a160a170a1820190b1a241a201912030a0e0b182403060c0806030004060c080608070308060c03050508080808030301060c08060c050808080803030303010807030508060305070b0a0208060b000109000806070b0a0208060b0001090005080701050109000208060b0001090002060b0a02090009010900010102070b0a0209000901090001090102060c080705070b0a020806080108060708070801070b0a020806080102080608010107090102070807080703070b0a0209000901090009010e030b0c0109000b0c0109000503080d0303050806070b03010900070b0001090008070304050808080803010806010301080d0106080d02060c03010b0c01090002050b0c01090001080901080502070b0b010900090002050b03010900010b0a0209000901010802010b0b0109000205080407070b0a0208060b000109000806070b0b010802070b0a0208060b000109000b000109000807080604070b0a02080608010806070801070b0a020806080102070807030f746f6b656e5f636f696e5f73776170076163636f756e7404636f696e056576656e74067369676e657206737472696e67057461626c650974696d657374616d7009747970655f696e666f05746f6b656e0d546f6b656e436f696e537761700b546f6b656e457363726f7711546f6b656e4c697374696e674576656e740d546f6b656e4c697374696e677310546f6b656e53746f7265457363726f770e546f6b656e537761704576656e7407546f6b656e49641463616e63656c5f746f6b656e5f6c697374696e6705546f6b656e176465706f7369745f746f6b656e5f746f5f657363726f7706537472696e671765786368616e67655f636f696e5f666f725f746f6b656e18696e697469616c697a655f746f6b656e5f6c697374696e671d696e697469616c697a655f746f6b656e5f73746f72655f657363726f77136c6973745f746f6b656e5f666f725f737761701a77697468647261775f746f6b656e5f66726f6d5f657363726f772377697468647261775f746f6b656e5f66726f6d5f657363726f775f696e7465726e616c0c746f6b656e5f616d6f756e74136d696e5f70726963655f7065725f746f6b656e116c6f636b65645f756e74696c5f7365637308746f6b656e5f696406616d6f756e74096d696e5f70726963650e636f696e5f747970655f696e666f0854797065496e666f086c697374696e6773055461626c650e6c697374696e675f6576656e74730b4576656e7448616e646c650b737761705f6576656e74730d746f6b656e5f657363726f77730b746f6b656e5f62757965720b636f696e5f616d6f756e740a616464726573735f6f6608636f6e7461696e730672656d6f76650d6465706f7369745f746f6b656e0a626f72726f775f6d7574056d657267650361646404436f696e07526f79616c7479136372656174655f746f6b656e5f69645f7261770762616c616e63650b6765745f726f79616c7479176765745f726f79616c74795f64656e6f6d696e61746f72156765745f726f79616c74795f6e756d657261746f72116765745f726f79616c74795f7061796565087769746864726177076465706f73697407747970655f6f660a656d69745f6576656e74036e6577106e65775f6576656e745f68616e646c650e77697468647261775f746f6b656e0b6e6f775f7365636f6e64730573706c69740000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000103080700000000000000030801000000000000000308060000000000000003080400000000000000030802000000000000000308050000000000000003080300000000000000126170746f733a3a6d657461646174615f7630fc010701000000000000001545544f4b454e5f414c52454144595f4c49535445440002000000000000001845544f4b454e5f4c495354494e475f4e4f545f45584953540003000000000000001445544f4b454e5f4e4f545f494e5f455343524f570004000000000000003345544f4b454e5f43414e4e4f545f4d4f56455f4f55545f4f465f455343524f575f4245464f52455f4c4f434b55505f54494d450005000000000000001a45544f4b454e5f4d494e5f50524943455f4e4f545f4d415443480006000000000000001745544f4b454e5f414d4f554e545f4e4f545f4d4154434800070000000000000010454e4f545f454e4f5547485f434f494e000002021b031c030102020908071d030202051e08061f0320031d03210809030203230b0a0208060b00010900250b0b010802270b0b010805040201280b0a02080608010502051e080629051b032a03210809030a000a00010002030408230a0011080c060b063c0036000c050a050a010c040c030b032e0b04380003160b00010b05010704270b050a013801010a000b010b0211060c070b000b07110b02010100010411210b0011082a040f010c080a080a010c050c040b042e0b053802030f05180b080b0138030f020c060b060b02110d05200b020b0312010c070b080b010b0738040202010002030416a1010b030b040b050b06110f0c110a0011080c0b0a023c000c120a1237000a11380003170b12010b00010704270a0b38050a012603220b12010b00010700270a1236000a1138060c130a133701140a07180b012503370b13010b12010b00010705270a133702140a072603450b13010b12010b00010702270a020a110a0711070c140a000b14110b0a1111110c0d0a133701140a07180c150e0d11120c0e0b0e06000000000000000021035e05610600000000000000000c0805690a150e0d1113180e0d11121a0c080b080c0f0a150a0f170c0c0e0d11140c100a000b0f38070c090b100b0938080b000b0c38070c0a0b020b0a38080a133702140a0721038701058f010b13010a1236000a113801010597010a133702140a07170b133602150b1236030b110b0b0b070b1538091205380a020300000022160a0011080c010b013b002003080513380b0a00380c0a00380d39000c020b000b023f0005150b0001020400000026120a0011080c010b012904200308050f380e12040c020b000b022d0405110b000102050104020304273f0b010b020b030b04110f0c0e0a0011040a000a0e0a05111b0c0d0a000a0e0b0d0a0711010a00380f0a050a0639010c0c0a0011083c0036000c0b0a0b0a0e0c090c080b082e0b09380020032d0b00010b0b010701270b0b0a0e0b0c38100b0011083c0036040c0a0b0a0b0e0b050b060b0738091202381102060100010401060b0011080b010b02110702070000010428240b002a040f010c060a060a010c040c030b032e0b04380203110b06010706270b060b0138030c05111c0a0510071424031f0b05010703270b050f020b02111d0203000400010000010000030203010101000a030a040a050a060a00", + "abi": { + "address": "0x3", + "name": "token_coin_swap", + "friends": [], + "exposed_functions": [ + { + "name": "cancel_token_listing", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [] + }, + { + "name": "deposit_token_to_escrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "0x3::token::Token", + "u64" + ], + "return": [] + }, + { + "name": "exchange_coin_for_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "u64", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "list_token_for_swap", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "withdraw_token_from_escrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [ + "0x3::token::Token" + ] + } + ], + "structs": [ + { + "name": "TokenCoinSwap", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "token_amount", + "type": "u64" + }, + { + "name": "min_price_per_token", + "type": "u64" + } + ] + }, + { + "name": "TokenEscrow", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token", + "type": "0x3::token::Token" + }, + { + "name": "locked_until_secs", + "type": "u64" + } + ] + }, + { + "name": "TokenListingEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "min_price", + "type": "u64" + }, + { + "name": "locked_until_secs", + "type": "u64" + }, + { + "name": "coin_type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + }, + { + "name": "TokenListings", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "listings", + "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token_coin_swap::TokenCoinSwap>" + }, + { + "name": "listing_events", + "type": "0x1::event::EventHandle<0x3::token_coin_swap::TokenListingEvent>" + }, + { + "name": "swap_events", + "type": "0x1::event::EventHandle<0x3::token_coin_swap::TokenSwapEvent>" + } + ] + }, + { + "name": "TokenStoreEscrow", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_escrows", + "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token_coin_swap::TokenEscrow>" + } + ] + }, + { + "name": "TokenSwapEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "token_buyer", + "type": "address" + }, + { + "name": "token_amount", + "type": "u64" + }, + { + "name": "coin_amount", + "type": "u64" + }, + { + "name": "coin_type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01001002102e033e7a04b8011605ce01e40107b203aa0408dc0740069c080a10a608350adb08430c9e098d030dab0c08000001010102010301040105010600070008080000090600000a0600000b0600000c0700070d0700050f0700061804020301000107190400031b04010601000e0001000010020100001100010000120201000013030400001405010000150601000016070100042205090006230b0c02030007240d0e0007250f010003261101010607271312000628151602030002290e0e00062a0118020304012b051a0106072c1c1d00062d1e01020300062e0b1f020300072f200100090a0c100e0a0c17100a111911101117130a140a0c1903060c05080500060c050508060806030205080501080401060c04060c05080503070c05050806080603030503070b07020804080805080808040105020804080802070b070209000901090001090101060808010302060c080801080102070b0901090009000108050405080608060306070b070208040808080403070b0702080408080804080802060b07020900090109000101010802010b070209000901010803010b0901090007070b0702080408080804070808070b070208040808050808080403060c08050301080803070b07020900090109000901010709010207080808080f746f6b656e5f7472616e7366657273076163636f756e74056572726f72056576656e74067369676e657206737472696e67057461626c6505746f6b656e0d50656e64696e67436c61696d7315546f6b656e43616e63656c4f666665724576656e740f546f6b656e436c61696d4576656e740f546f6b656e4f666665724576656e740c546f6b656e4f66666572496407546f6b656e49640c63616e63656c5f6f6666657206537472696e671363616e63656c5f6f666665725f73637269707405636c61696d0c636c61696d5f736372697074156372656174655f746f6b656e5f6f666665725f69641a696e697469616c697a655f746f6b656e5f7472616e7366657273056f666665720c6f666665725f7363726970740e70656e64696e675f636c61696d73055461626c6505546f6b656e0c6f666665725f6576656e74730b4576656e7448616e646c651363616e63656c5f6f666665725f6576656e74730c636c61696d5f6576656e74730a746f5f6164647265737308746f6b656e5f696406616d6f756e7407746f5f616464720a616464726573735f6f660672656d6f7665106765745f746f6b656e5f616d6f756e740d6465706f7369745f746f6b656e0a656d69745f6576656e74136372656174655f746f6b656e5f69645f72617708636f6e7461696e73096e6f745f666f756e64036e6577106e65775f6576656e745f68616e646c650e77697468647261775f746f6b656e036164640a626f72726f775f6d7574056d657267650000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f7630210101000000000000001645544f4b454e5f4f464645525f4e4f545f455849535400000204170b0702080408081a0b090108031c0b090108011d0b090108020102031e051f080520030202031e051f080520030302031e051f0805200304020221051f08050001000100081e0a0011080c050b010a0211040c070a052a000f000c040b040b0738000c060e06110a0c030b000b06110b0a052a000f010b050b020b0312013801020101040100120b0b020b030b040b05110d0c060e000b010b061100020201000100142d0a012a000f000c060a0011080a0211040c070a060a070c040c030b032e0b04380203190b00010b06010700110f270b060b0738000c080e08110a0c050a000b08110b0b012a000f020b0011080b020b0512023803020301040100120b0b020b030b040b05110d0c060e000b010b061102020400000001040b000b0112040205000000010b0a0038040a0038050a0038060b00380712002d000206010001001b370a0011080c080a082900200308050a0a0011050a082a000f000c070b010a0211040c0a0b000a020a0311120c090a070a0a0c050c040b042e0b05380220032205270b070b0a0b093808052e0b070b0a38090c060b060b0911150a082a000f030b080b020b031203380a020701040100120c0b020b030b040b05110d0c070e000b010b070b06110602000000020003000100", + "abi": { + "address": "0x3", + "name": "token_transfers", + "friends": [], + "exposed_functions": [ + { + "name": "cancel_offer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x3::token::TokenId" + ], + "return": [] + }, + { + "name": "cancel_offer_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [] + }, + { + "name": "claim", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x3::token::TokenId" + ], + "return": [] + }, + { + "name": "claim_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [] + }, + { + "name": "offer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x3::token::TokenId", + "u64" + ], + "return": [] + }, + { + "name": "offer_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "PendingClaims", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pending_claims", + "type": "0x1::table::Table<0x3::token_transfers::TokenOfferId, 0x3::token::Token>" + }, + { + "name": "offer_events", + "type": "0x1::event::EventHandle<0x3::token_transfers::TokenOfferEvent>" + }, + { + "name": "cancel_offer_events", + "type": "0x1::event::EventHandle<0x3::token_transfers::TokenCancelOfferEvent>" + }, + { + "name": "claim_events", + "type": "0x1::event::EventHandle<0x3::token_transfers::TokenClaimEvent>" + } + ] + }, + { + "name": "TokenCancelOfferEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_address", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "TokenClaimEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_address", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "TokenOfferEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_address", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "TokenOfferId", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_addr", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + } + ] + } + ] + }, + "data": "bytecode omitted" + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "type": "0x1::code::PackageRegistry", + "data": "package registry omitted" + }, + "type": "write_resource" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x3", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x3", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x4", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x4", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x4", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x5", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x5", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x5", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x6", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000006", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x6", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x6", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x7", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000007", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x7", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x7", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x8", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000008", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x8", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x8", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x9", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000009", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x9", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x9", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x000000000000000000000000000000000000000000000000000000000000000a", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": { + "coin": { + "value": "18446744073709551615" + }, + "deposit_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "2" + } + } + }, + "frozen": false, + "withdraw_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "3" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0xcef8ffd1ab9017e96132df8a56b22de39a8155e1c3fc32affbbf93eb624b532a", + "coin_register_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "0" + } + } + }, + "guid_creation_num": "4", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::version::SetVersionCapability", + "data": { + "dummy_field": false + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_coin::Delegations", + "data": { + "inner": [] + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_coin::MintCapStore", + "data": { + "mint_cap": { + "dummy_field": false + } + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": { + "coin": { + "value": "0" + }, + "deposit_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "2" + } + } + }, + "frozen": false, + "withdraw_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "3" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::stake::StakePool", + "data": { + "active": { + "value": "1" + }, + "add_stake_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "6" + } + } + }, + "delegated_voter": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "distribute_rewards_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "12" + } + } + }, + "inactive": { + "value": "0" + }, + "increase_lockup_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "10" + } + } + }, + "initialize_validator_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "4" + } + } + }, + "join_validator_set_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "11" + } + } + }, + "leave_validator_set_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "15" + } + } + }, + "locked_until_secs": "86400", + "operator_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "pending_active": { + "value": "0" + }, + "pending_inactive": { + "value": "0" + }, + "reactivate_stake_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "7" + } + } + }, + "rotate_consensus_key_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "8" + } + } + }, + "set_operator_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "5" + } + } + }, + "unlock_stake_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "13" + } + } + }, + "update_network_and_fullnode_addresses_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "9" + } + } + }, + "withdraw_stake_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "14" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::stake::OwnerCapability", + "data": { + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::stake::ValidatorConfig", + "data": { + "consensus_pubkey": "0xaa7023a1ea88520c0b163c530367dfbfe9269621c96dc9dc9147aca9c278b1340c07b21600b2b5423a2fb88c679b0c5a", + "fullnode_addresses": "0x012d040000000000052518072022b18b21ecf48f18a1ebb1b8fbe0347af7913e84ad27473669eca6efc8df087a0800", + "network_addresses": "0x012d040000000000052418072093c5ad141db18cfef10f1452d9019922745c7b8cec22ea40118b9e1a76a756680800", + "validator_index": "0" + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "coin_register_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "0" + } + } + }, + "guid_creation_num": "16", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "state_key_hash": "", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "value": "0x00000000000000000100000000000000", + "data": { + "data": null + }, + "type": "write_table_item" + } + ], + "payload": { + "write_set": { + "changes": [ + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010006020604030a30043a0605403607765e08d4012006f4011410880287010a8f03060c950392010da704020000000100020003070000040001000005020100000602030000070104000008000100020607030100010a080800020b070a010002080b0c01000506070608060207080005000206080005010101080002070a050605010502060a0900060900010304070a050605010302010302070a0900030109000361636c056572726f7206766563746f720341434c036164640f6173736572745f636f6e7461696e7308636f6e7461696e7305656d7074790672656d6f7665046c69737410696e76616c69645f617267756d656e7408696e6465785f6f6600000000000000000000000000000000000000000000000000000000000000010308000000000000000003080100000000000000126170746f733a3a6d657461646174615f7630730200000000000000000845434f4e5441494e255468652041434c20616c726561647920636f6e7461696e732074686520616464726573732e01000000000000000c454e4f545f434f4e5441494e255468652041434c20646f6573206e6f7420636f6e7461696e2074686520616464726573732e000201090a050001000005150a000f000e010c030c020b022e0b0338002003100b000107001106270b000f000b014406020101000001080b000b01110203070701110627020201000001050b0010000e01380002030100000103400600000000000000001200020401000009180a000f000e010c030c020b022e0b0338010c050c040b0403120b000107011106270b000f000b0538020102000000", + "abi": { + "address": "0x1", + "name": "acl", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::acl::ACL", + "address" + ], + "return": [] + }, + { + "name": "assert_contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::acl::ACL", + "address" + ], + "return": [] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::acl::ACL", + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::acl::ACL" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::acl::ACL", + "address" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ACL", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "list", + "type": "vector
" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000c020c08031428043c0605421b075d800108dd012006fd010a108702740afb02090c8403370dbb03040fbf03020001000200030004000500060007060004090700000800010106000a020300000b01000100050a04050100010d06070100020e080800030f0700010003000400060001090001080001060800010608010001080101060900010a0201030c636f707961626c655f616e7903616e7903626373056572726f720866726f6d5f62637306737472696e6709747970655f696e666f03416e79047061636b06537472696e6709747970655f6e616d6506756e7061636b046461746108746f5f627974657310696e76616c69645f617267756d656e740a66726f6d5f6279746573000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f7630600101000000000000000e45545950455f4d49534d415443484754686520747970652070726f766964656420666f722060756e7061636b60206973206e6f74207468652073616d652061732077617320676976656e20666f7220607061636b602e0002020a08010c0a0200010000040538000e0038011200020101000004030b0010000202010000040e38000e0010001421030907001105270e0010011438020200000001000000", + "abi": { + "address": "0x1", + "name": "any", + "friends": [ + "0x1::copyable_any" + ], + "exposed_functions": [ + { + "name": "pack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::any::Any" + ] + }, + { + "name": "type_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::any::Any" + ], + "return": [ + "&0x1::string::String" + ] + }, + { + "name": "unpack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::any::Any" + ], + "return": [ + "T0" + ] + } + ], + "structs": [ + { + "name": "Any", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "type_name", + "type": "0x1::string::String" + }, + { + "name": "data", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000006010002030206050807070f0d081c200c3c04000000010001010001060900010a020362637308746f5f627974657300000000000000000000000000000000000000000000000000000000000000010001020000", + "abi": { + "address": "0x1", + "name": "bcs", + "friends": [], + "exposed_functions": [ + { + "name": "to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0" + ], + "return": [ + "vector" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010012021222033466049a0104059e01b50107d302950508e807200688089a0310a20b91050ab310450cf810b2090daa1a1400000001000200030004000500060007000800090600000a0700000b0600000c0e00000d0700050f070003200701000001210700000e00010000100203000011040300001205030000130607000014080300001509010000160a030000170b030000180c03000019030d00001a030d00001b030d00022c111100022d111100022e111100082f160101000630180300043118090007321b1c0100101013140208040804010102060802060a080500020506080203060802060802060a080501060802010a080503060c060c0802010503060c08020a0a0203060c0a020a0a0204050a08050a0a0202010804040303060805060800010800010805010309060801060802060a08010103030303060803010801010802030804030a080502060a090006090002030a080501060c090101010101010101010b070a080203050303030a0805060802070a0802080403010a0201090004636f64650c636f707961626c655f616e79056572726f72066f7074696f6e067369676e657206737472696e671073797374656d5f616464726573736573047574696c06766563746f720e4d6f64756c654d657461646174610a5061636b6167654465700f5061636b6167654d657461646174610f5061636b61676552656769737472790d55706772616465506f6c6963791c63616e5f6368616e67655f757067726164655f706f6c6963795f746f06537472696e6711636865636b5f636f6578697374656e636512636865636b5f646570656e64656e6369657313636865636b5f7570677261646162696c697479106765745f6d6f64756c655f6e616d65730a696e697469616c697a651a69735f706f6c6963795f6578656d707465645f616464726573730f7075626c6973685f7061636b616765137075626c6973685f7061636b6167655f74786e0f726571756573745f7075626c69736818757067726164655f706f6c6963795f61726269747261727915757067726164655f706f6c6963795f636f6d70617418757067726164655f706f6c6963795f696d6d757461626c65046e616d6506736f757263650a736f757263655f6d617009657874656e73696f6e064f7074696f6e03416e79076163636f756e740c7061636b6167655f6e616d650e757067726164655f706f6c6963790e757067726164655f6e756d6265720d736f757263655f646967657374086d616e6966657374076d6f64756c65730464657073087061636b6167657306706f6c6963790e616c72656164795f657869737473096e6f745f666f756e6410696e76616c69645f617267756d656e7408636f6e7461696e73166173736572745f6170746f735f6672616d65776f726b0a616464726573735f6f660a66726f6d5f62797465730000000000000000000000000000000000000000000000000000000000000001030807000000000000000308060000000000000003080400000000000000030801000000000000000308050000000000000003080200000000000000030803000000000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000005052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000008052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000a126170746f733a3a6d657461646174615f7630fc0407010000000000000012454d4f44554c455f4e414d455f434c415348685061636b61676520636f6e7461696e73206475706c6963617465206d6f64756c65206e616d65732077697468206578697374696e67206d6f64756c6573207075626c6973656420696e206f74686572207061636b61676573206f6e2074686973206164647265737302000000000000001245555047524144455f494d4d555441424c452343616e6e6f74207570677261646520616e20696d6d757461626c65207061636b61676503000000000000001645555047524144455f5745414b45525f504f4c4943593143616e6e6f7420646f776e67726164652061207061636b6167652773207570677261646162696c69747920706f6c69637904000000000000000f454d4f44554c455f4d495353494e473d43616e6e6f742064656c6574652061206d6f64756c65207468617420776173207075626c697368656420696e207468652073616d65207061636b616765050000000000000014455041434b4147455f4445505f4d495353494e473a446570656e64656e637920636f756c64206e6f74206265207265736f6c76656420746f20616e79207075626c6973686564207061636b6167652e060000000000000012454445505f5745414b45525f504f4c494359314120646570656e64656e63792063616e6e6f7420686176652061207765616b6572207570677261646520706f6c6963792e07000000000000001f454445505f4152424954524152595f4e4f545f53414d455f41444452455353434120646570656e64656e637920746f20616e206061726269747261727960207061636b616765206d757374206265206f6e207468652073616d6520616464726573732e0002041c08051d0a021e0a021f0b0601080701020222052308050202081c08052408042503260805270a02280a0800290a08011f0b060108070302012a0a08020402012b020001000003080e001000140e011000142502010000000e390600000000000000000c020a020a001001410f23030905340a0010010a02420f0c050600000000000000000c030a030a014110230316052d0a010a0342100c040a0510020b042203280b00010b05010b01010703110d270b03060100000000000000160c0305100b05010b02060100000000000000160c0205020b00010b01010202000001031297010a0110030c040600000000000000000c060a0441130c090a060a0923030d0592010a040a0642130c020a021004142903031f0b01010b04010b02010704110e270a0210041411060325052c0b02010b06060100000000000000160c0605080a021004142b030c0a0600000000000000000c070a0a100541140c08090c050a070a0823033e0584010a0a10050a0742140c030a031006140a0210071421034c057d0b0a010a0310081000140a0110081000142603630b01010b04010b03010b02010701110f270b03100814110a21036a05780b021004140a002103770b01010b04010700110f27057a0b0201080c050584010b03010b07060100000000000000160c0705390b05038d010b01010b04010704110e270b06060100000000000000160c0605080b01010b040102030000001540110c0c030a0010081000140e031000142303140b00010b01010b02010705110f270a001008140b01100814110003230b00010b02010706110f270b0011040c050600000000000000000c040a040e05411023032e053d0a020e050a044210380003380b02010702270b04060100000000000000160c0405280b02010204000000171c401000000000000000000c020600000000000000000c010a010a001001410f23030b05180d020a0010010a01420f10021444100b01060100000000000000160c0105040b00010b0202050000010309180b0011110a0111120c030a03290320030a05100b010b024014010000000000000012032d0305170b01010b032a030f050b0244140206000000195e0a0007072103050508080c01050c0a000708210c010b01030f0512080c0205160a000709210c020b020319051c080c0305200a00070a210c030b0303230526080c04052a0a00070b210c040b04032d0530080c0505340a00070c210c050b050337053a080c06053e0a00070d210c060b0603410544080c0705480a00070e210c070b07034b054e080c0805520a00070f210c080b0803550558080c09055c0b000710210c090b090207010001031a6d0a0011120c050a052903200308050d0b004014000000000000000012032d03050f0b00010a050e0111020e0111040c090a052a030f050c0b0a0b2e41140c080a080c070600000000000000000c060600000000000000000c0d0a060a08230328054f0a0b0a060c040c030b032e0b0442140c0a0a0a1006140e0110061421033a05470a0a100914060100000000000000160c0d0b0a0e010e0911030a060c07054a0b0a0e0911010b06060100000000000000160c0605230b0d0d010f09150e011008140c0c0a070b0823035c05620b010b0b0b0743141505650b0b0b0144140b050b090b020e0c100014110902080104010303060b000b0138010b02110702090002000a010000030331001204020b010000030331011204020c01000003033102120402040002050000020601000300020001010201020200", + "abi": { + "address": "0x1", + "name": "code", + "friends": [], + "exposed_functions": [ + { + "name": "can_change_upgrade_policy_to", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::code::UpgradePolicy", + "0x1::code::UpgradePolicy" + ], + "return": [ + "bool" + ] + }, + { + "name": "publish_package", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::code::PackageMetadata", + "vector>" + ], + "return": [] + }, + { + "name": "publish_package_txn", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector>" + ], + "return": [] + }, + { + "name": "upgrade_policy_arbitrary", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::code::UpgradePolicy" + ] + }, + { + "name": "upgrade_policy_compat", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::code::UpgradePolicy" + ] + }, + { + "name": "upgrade_policy_immutable", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::code::UpgradePolicy" + ] + } + ], + "structs": [ + { + "name": "ModuleMetadata", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "source", + "type": "vector" + }, + { + "name": "source_map", + "type": "vector" + }, + { + "name": "extension", + "type": "0x1::option::Option<0x1::copyable_any::Any>" + } + ] + }, + { + "name": "PackageDep", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account", + "type": "address" + }, + { + "name": "package_name", + "type": "0x1::string::String" + } + ] + }, + { + "name": "PackageMetadata", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "upgrade_policy", + "type": "0x1::code::UpgradePolicy" + }, + { + "name": "upgrade_number", + "type": "u64" + }, + { + "name": "source_digest", + "type": "0x1::string::String" + }, + { + "name": "manifest", + "type": "vector" + }, + { + "name": "modules", + "type": "vector<0x1::code::ModuleMetadata>" + }, + { + "name": "deps", + "type": "vector<0x1::code::PackageDep>" + }, + { + "name": "extension", + "type": "0x1::option::Option<0x1::copyable_any::Any>" + } + ] + }, + { + "name": "PackageRegistry", + "is_native": false, + "abilities": [ + "drop", + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "packages", + "type": "vector<0x1::code::PackageMetadata>" + } + ] + }, + { + "name": "UpgradePolicy", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "policy", + "type": "u8" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000f010014021448035caf02048b032c05b703df02079606d90708ef0d20068f0e980110a70ff3060a9a164b0be5160c0cf116a2080d931f140ea71f120fb91f0400020003000400050006000700080009000a000b000c05010001000d04010001000e08010001000f0801000100100600001105010001001205010001001308000014060007230700042e0701000005370400033a04010601094407000015000100001602030100001704010100001805010100001901020100001a01060100001b07010100001c08010100001d09010100001e0a010100001f0b01010000200c0b010000210d0b010000220e01010000240f100100002511100100002612010000270f100100002802130100002901130100002a14010100002b150b0100002c01160100002d12010100002f0117010000300116010000311801010000321201010000331903010000341a0b01000035010b0100083e120100023f030300024003030004411f1301000442202101000543220100094501240100094625020002470303000348280101060649120200024a030300054b2a1e00044c1c2b0100044d012b0100054e220100014f020101000150122e010604511f310100055232330005533213000554350100121c041c221e231e0b1c021c251c2827141c0f1c2c1e2d1e1e1c2f1c3027302f311e2c332d331d1c061c282f02060c010001050103020b01010900060b00010900030503060b00010900010202050b01010900010b00010900010b05010900010b06010900010b0101090002070b010109000301070b010109000205060b0501090005060c080908090201030b000109000b050109000b0601090006060c0809080902010101060c010102070b010109000b010109000203060b06010900010809010b0a010403060c050301060b0101090002060c030107010109000303070b0a01080b07080b01080b01060b0a01090001070b0a010900010709000207080b0402070b030109000b0101090001080d0106080d01070b0301090001080402070b0c0109000900060b0a01080b0208090809050b02010900020401010b0a01090002070b0a01080b07080b02050b03010900010b0c010900010808040b0a0104060b0a01080b06080b04010609000106080b01040305070b0a01080b07080b0107080b0205070b030109000a6170746f735f636f696e0767656e6573697304636f696e076163636f756e74056572726f72056576656e74066f7074696f6e136f7074696f6e616c5f61676772656761746f72067369676e657206737472696e671073797374656d5f61646472657373657309747970655f696e666f0e4275726e4361706162696c69747904436f696e08436f696e496e666f09436f696e53746f72650c4465706f7369744576656e7410467265657a654361706162696c6974790e4d696e744361706162696c6974790c537570706c79436f6e6669670d57697468647261774576656e7415616c6c6f775f737570706c795f75706772616465730762616c616e6365046275726e096275726e5f66726f6d0c636f696e5f6164647265737308646563696d616c73076465706f7369741064657374726f795f6275726e5f6361701264657374726f795f667265657a655f6361701064657374726f795f6d696e745f6361700c64657374726f795f7a65726f07657874726163740b657874726163745f616c6c11667265657a655f636f696e5f73746f726506537472696e670a696e697469616c697a6513696e697469616c697a655f696e7465726e616c18696e697469616c697a655f737570706c795f636f6e66696725696e697469616c697a655f776974685f706172616c6c656c697a61626c655f737570706c791569735f6163636f756e745f726567697374657265641369735f636f696e5f696e697469616c697a6564056d65726765046d696e74046e616d65087265676973746572064f7074696f6e06737570706c790673796d626f6c087472616e736665720e757067726164655f737570706c790576616c7565087769746864726177047a65726f0b64756d6d795f6669656c64124f7074696f6e616c41676772656761746f720666726f7a656e0e6465706f7369745f6576656e74730b4576656e7448616e646c650f77697468647261775f6576656e747306616d6f756e740e616c6c6f775f7570677261646573166173736572745f6170746f735f6672616d65776f726b096e6f745f666f756e6410696e76616c69645f617267756d656e740769735f736f6d650a626f72726f775f6d7574037375620854797065496e666f07747970655f6f660f6163636f756e745f61646472657373117065726d697373696f6e5f64656e6965640a656d69745f6576656e740a616464726573735f6f660e616c72656164795f657869737473036e657704736f6d65046e6f6e65036164640d72656769737465725f636f696e106e65775f6576656e745f68616e646c6506626f72726f7704726561641169735f706172616c6c656c697a61626c65067377697463680000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000030804000000000000000308050000000000000003080b000000000000000308070000000000000003080a0000000000000003080600000000000000030809000000000000000410ffffffffffffffffffffffffffffffff05200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630de060a01000000000000001b45434f494e5f494e464f5f414444524553535f4d49534d415443486541646472657373206f66206163636f756e74207768696368206973207573656420746f20696e697469616c697a65206120636f696e2060436f696e547970656020646f65736e2774206d6174636820746865206465706c6f796572206f66206d6f64756c6502000000000000001c45434f494e5f494e464f5f414c52454144595f5055424c49534845442b60436f696e547970656020697320616c726561647920696e697469616c697a6564206173206120636f696e03000000000000001845434f494e5f494e464f5f4e4f545f5055424c49534845442c60436f696e5479706560206861736e2774206265656e20696e697469616c697a6564206173206120636f696e04000000000000001d45434f494e5f53544f52455f414c52454144595f5055424c4953484544394163636f756e7420616c7265616479206861732060436f696e53746f726560207265676973746572656420666f722060436f696e547970656005000000000000001945434f494e5f53544f52455f4e4f545f5055424c4953484544344163636f756e74206861736e277420726567697374657265642060436f696e53746f72656020666f722060436f696e547970656006000000000000001545494e53554646494349454e545f42414c414e4345284e6f7420656e6f75676820636f696e7320746f20636f6d706c657465207472616e73616374696f6e07000000000000001d454445535452554354494f4e5f4f465f4e4f4e5a45524f5f544f4b454e1d43616e6e6f742064657374726f79206e6f6e2d7a65726f20636f696e73090000000000000011455a45524f5f434f494e5f414d4f554e541a436f696e20616d6f756e742063616e6e6f74206265207a65726f0a00000000000000074546524f5a454e3b436f696e53746f72652069732066726f7a656e2e20436f696e732063616e6e6f74206265206465706f7369746564206f722077697468647261776e0b000000000000002245434f494e5f535550504c595f555047524144455f4e4f545f535550504f525445444543616e6e6f7420757067726164652074686520746f74616c20737570706c79206f6620636f696e7320746f20646966666572656e7420696d706c656d656e746174696f6e2e000201360101020133030202042c08093008091a022f0b0a01080b030204020b010109003801390b0c0108043b0b0c0108080402013c03050201360106020136010702013d010802013c03031c011c021c001c051c061c00010001071b0a0b00111f070b2a070f000c020b010b0215020101000103010c0a003800030607041120270b003d0037003701140202010001021d1e0b003a010c020a0206000000000000000024030a070911212738013c0236020c030a032e38020313051b0b0338030c040b040b02351124051d0b03010203010002020323140a0106000000000000000021030505080b0201020b003c000c030b0336000b0138040c040b040b0238050204000000240538060c000e001126020501000102010538013d02370314020601000103261f0a003800030607041120270b003c000c020a023704142003130b020107071127270a0236050e01370114120438070b0236000b013808020701000001040b003a0301020801000001040b003a0401020901000001040b003a0501020a010000030b0b003a010c010b0106000000000000000021030a0706112127020b01000001160a003701140a0126030b0b000107081121270a003701140a01170b003601150b013901020c010000030b0a003701140c010600000000000000000b003601150b013901020d0104010326080b003c000c02080b02360415020e01000001080b000b010b020b030b04093809020f00000029360a0011290c0a38010a0a21030c0b000107001121270b0a3b022003150b00010701112a270b010c090b020c080b030c070b04031e0524070a0b05112b380a0c060526380b0c060b090b080b070b0639020c0b0b000b0b3f02093903093904093905021003000001070a00111f0b000912072d070211030000010a0a00111f0b000b010b020b030b04083809021201000001030b003b000213010000010338013b020214010000010e0a003701140e01370114160b003601150b013a01010215010001022c1d0a000600000000000000002103050507380c0238013c0236020c020a022e3802031005180b0238030c030b030a0035112e051a0b02010b003901021601000102010538013d0237061402170100002d1b0a0011290c010a01380020030c0b00010703112a270b01380d0600000000000000003901090a00380e0a00380f39000c020b000b023f00021801000102301838013d0237020c010a013802030805120b0138100c020b0211320c030b0338110c0005160b010138120c000b00021901000102010538013d02370714021a010401030b080b000b0238130c030b010b033814021b0104020207342d0b0011290c0138010a0121030a0700112127070b2a07100014031207051127270b013c0236020c020a022e3802031b052a0b0238030c030a032e113320032405270b03113405290b0301052c0b0201021c01000001040b00370114021d0100010336200b0011290c020a023800030907041120270b023c000c030a033704142003160b030107071127270a0336080a01120838150b0336000b013804021e01000001030600000000000000003901020700030001000203020203010302020002010303011c021c031c041c051c061c071c081c091c0000000100", + "abi": { + "address": "0x1", + "name": "coin", + "friends": [ + "0x1::aptos_coin", + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "allow_supply_upgrades", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "bool" + ], + "return": [] + }, + { + "name": "balance", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "burn", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::Coin", + "&0x1::coin::BurnCapability" + ], + "return": [] + }, + { + "name": "burn_from", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address", + "u64", + "&0x1::coin::BurnCapability" + ], + "return": [] + }, + { + "name": "decimals", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "u8" + ] + }, + { + "name": "deposit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address", + "0x1::coin::Coin" + ], + "return": [] + }, + { + "name": "destroy_burn_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::BurnCapability" + ], + "return": [] + }, + { + "name": "destroy_freeze_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::FreezeCapability" + ], + "return": [] + }, + { + "name": "destroy_mint_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::MintCapability" + ], + "return": [] + }, + { + "name": "destroy_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::coin::Coin" + ], + "return": [] + }, + { + "name": "extract", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::coin::Coin", + "u64" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "extract_all", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::coin::Coin" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "freeze_coin_store", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address", + "&0x1::coin::FreezeCapability" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "u8", + "bool" + ], + "return": [ + "0x1::coin::BurnCapability", + "0x1::coin::FreezeCapability", + "0x1::coin::MintCapability" + ] + }, + { + "name": "initialize_supply_config", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize_with_parallelizable_supply", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "u8", + "bool" + ], + "return": [ + "0x1::coin::BurnCapability", + "0x1::coin::FreezeCapability", + "0x1::coin::MintCapability" + ] + }, + { + "name": "is_account_registered", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_coin_initialized", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "bool" + ] + }, + { + "name": "merge", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::coin::Coin", + "0x1::coin::Coin" + ], + "return": [] + }, + { + "name": "mint", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "u64", + "&0x1::coin::MintCapability" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "register", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "supply", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "symbol", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "transfer", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + }, + { + "name": "upgrade_supply", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::coin::Coin" + ], + "return": [ + "u64" + ] + }, + { + "name": "withdraw", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "u64" + ], + "return": [ + "0x1::coin::Coin" + ] + }, + { + "name": "zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::coin::Coin" + ] + } + ], + "structs": [ + { + "name": "BurnCapability", + "is_native": false, + "abilities": [ + "copy", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "Coin", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "value", + "type": "u64" + } + ] + }, + { + "name": "CoinInfo", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "symbol", + "type": "0x1::string::String" + }, + { + "name": "decimals", + "type": "u8" + }, + { + "name": "supply", + "type": "0x1::option::Option<0x1::optional_aggregator::OptionalAggregator>" + } + ] + }, + { + "name": "CoinStore", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "coin", + "type": "0x1::coin::Coin" + }, + { + "name": "frozen", + "type": "bool" + }, + { + "name": "deposit_events", + "type": "0x1::event::EventHandle<0x1::coin::DepositEvent>" + }, + { + "name": "withdraw_events", + "type": "0x1::event::EventHandle<0x1::coin::WithdrawEvent>" + } + ] + }, + { + "name": "DepositEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "FreezeCapability", + "is_native": false, + "abilities": [ + "copy", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "MintCapability", + "is_native": false, + "abilities": [ + "copy", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "SupplyConfig", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "allow_upgrades", + "type": "bool" + } + ] + }, + { + "name": "WithdrawEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "amount", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010002020208030a2805322307557408c9012006e9010a10f30198010a8b030d0c98037e0d9604060f9c040200010002060000030700000400010000050203000006040500000704060000080708000009040300000a090500000b0906000205070301080002050301080101060800010301050206080006080101010106080100076163636f756e740467756964044755494402494406637265617465096372656174655f69640c6372656174696f6e5f6e756d0f63726561746f725f616464726573730565715f69640269640f69645f6372656174696f6e5f6e756d1269645f63726561746f725f616464726573730461646472000000000000000000000000000000000000000000000000000000000000000103080000000000000000126170746f733a3a6d657461646174615f763083010100000000000000001d45475549445f47454e455241544f525f4e4f545f5055424c49534845445b475549442067656e657261746f72206d757374206265207075626c6973686564206168656164206f66206669727374207573616765206f6620606372656174655f776974685f6361706162696c697479602066756e6374696f6e2e00020109080101020206030c0500030000050d0a01140c020a02060100000000000000160b01150b020b001201120002010100000a040b010b00120102020100000a050b00100010011402030100000a050b00100010021402040100000a050b0010000b012102050100000a040b0010001402060100000a040b0010011402070100000a040b0010021402000001000101000000", + "abi": { + "address": "0x1", + "name": "guid", + "friends": [ + "0x1::account" + ], + "exposed_functions": [ + { + "name": "create", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "&mut u64" + ], + "return": [ + "0x1::guid::GUID" + ] + }, + { + "name": "create_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "u64" + ], + "return": [ + "0x1::guid::ID" + ] + }, + { + "name": "creation_num", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID" + ], + "return": [ + "u64" + ] + }, + { + "name": "creator_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID" + ], + "return": [ + "address" + ] + }, + { + "name": "eq_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID", + "&0x1::guid::ID" + ], + "return": [ + "bool" + ] + }, + { + "name": "id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::GUID" + ], + "return": [ + "0x1::guid::ID" + ] + }, + { + "name": "id_creation_num", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::ID" + ], + "return": [ + "u64" + ] + }, + { + "name": "id_creator_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::guid::ID" + ], + "return": [ + "address" + ] + } + ], + "structs": [ + { + "name": "GUID", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x1::guid::ID" + } + ] + }, + { + "name": "ID", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "creation_num", + "type": "u64" + }, + { + "name": "addr", + "type": "address" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000601000203020a050c03070f170826200c4608000000010000000002000000010a02046861736808736861325f32353608736861335f3235360000000000000000000000000000000000000000000000000000000000000001000102000101020000", + "abi": { + "address": "0x1", + "name": "hash", + "friends": [], + "exposed_functions": [ + { + "name": "sha2_256", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "vector" + ] + }, + { + "name": "sha3_256", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "vector" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000801000203020b040d02050f09071835084d200c6d0f0f7c04000200030001000004000201000101010a0201050109000004636f64650c6761735f7363686564756c65047574696c12616464726573735f66726f6d5f62797465730a66726f6d5f627974657300000000000000000000000000000000000000000000000000000000000000010001000003030b00380002010302000000000100", + "abi": { + "address": "0x1", + "name": "util", + "friends": [ + "0x1::code", + "0x1::gas_schedule" + ], + "exposed_functions": [ + { + "name": "address_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "address" + ] + }, + { + "name": "from_bytes", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "vector" + ], + "return": [ + "T0" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d010014021418032c7d04a9010e05b7016e07a502a60608cb082006eb086210cd09c8020a950c2f0cc40cb0030df40f0e0f821002000100020003000400050006000700080009000a000b0800000c0600000d0600031004010601042307010000000e000100000f020100001103010000120104000013010400001405010000150501000824070100062508090002260404000427010a0100062808040004290b0a0100032a0d040106062b0e0100052c010400072d040100052e010400052f0101000930110100023104040003321201010608330701000134071301060a040c040d0c150c170c17141514080c050303050a030a020300010c03060c070b030108010801010302060c03040107080008010b04010301060c01050101010b0401090001090001080101060b03010900020b0401030a030207080005010203060c050302070b030109000900010b0301090001080202070800030767656e6573697305626c6f636b076163636f756e74056572726f72056576656e74066f7074696f6e0f7265636f6e66696775726174696f6e057374616b650d73746174655f73746f726167651073797374656d5f6164647265737365730974696d657374616d700d426c6f636b5265736f757263650d4e6577426c6f636b4576656e741855706461746545706f6368496e74657276616c4576656e740e626c6f636b5f70726f6c6f67756518656d69745f67656e657369735f626c6f636b5f6576656e740b4576656e7448616e646c6514656d69745f6e65775f626c6f636b5f6576656e74186765745f63757272656e745f626c6f636b5f686569676874176765745f65706f63685f696e74657276616c5f736563730a696e697469616c697a651f7570646174655f65706f63685f696e74657276616c5f6d6963726f73656373066865696768740e65706f63685f696e74657276616c106e65775f626c6f636b5f6576656e74731c7570646174655f65706f63685f696e74657276616c5f6576656e747304686173680565706f636805726f756e641b70726576696f75735f626c6f636b5f766f7465735f6269747665630870726f706f736572176661696c65645f70726f706f7365725f696e64696365731174696d655f6d6963726f7365636f6e6473126f6c645f65706f63685f696e74657276616c126e65775f65706f63685f696e74657276616c064f7074696f6e096173736572745f766d1a69735f63757272656e745f65706f63685f76616c696461746f72117065726d697373696f6e5f64656e696564046e6f6e65136765745f76616c696461746f725f696e64657804736f6d6507636f756e7465721d7570646174655f706572666f726d616e63655f737461746973746963730d63757272656e745f65706f63680c6f6e5f6e65775f626c6f636b196c6173745f7265636f6e66696775726174696f6e5f74696d650b7265636f6e666967757265127570646174655f676c6f62616c5f74696d6510696e76616c69645f617267756d656e740a656d69745f6576656e74166173736572745f6170746f735f6672616d65776f726b106e65775f6576656e745f68616e646c6500000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000030803000000000000000520000000000000000000000000000000000000000000000000000000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630b30203010000000000000031454e554d5f4e45575f424c4f434b5f4556454e54535f444f45535f4e4f545f4d415443485f424c4f434b5f48454947485447546865206e756d626572206f66206e657720626c6f636b206576656e747320646f6573206e6f7420657175616c207468652063757272656e7420626c6f636b206865696768742e02000000000000001145494e56414c49445f50524f504f5345525c416e20696e76616c69642070726f706f736572207761732070726f76696465642e204578706563746564207468652070726f706f73657220746f2062652074686520564d206f7220616e206163746976652076616c696461746f722e030000000000000014455a45524f5f45504f43485f494e54455256414c1b45706f636820696e74657276616c2063616e6e6f7420626520302e00020416031703180b03010801190b030108020102081a051b031c0316031d0a021e051f0a03200302020221032203000000010006470e0011070a040703210307050a080c08050d0a0411080c080b080312070011092738000c0b0a040703220319051d0a04110b38010c0b07042a000c090a09100038020a090f01150b010b020b030a091001140b060b040a050a0712010c0a0e000a090f000b0a11020b0b0b05110e110f11100b071111170b09100214260345054611120201000001000f1107042a000c010e000b010f0007030600000000000000000600000000000000000600000000000000004010000000000000000007034004000000000000000006000000000000000012011102020200000001190b000e021003140e0210041411130a012e38020e021005142103150b010107011114270b010b023803020301000100010507042b00100114020401000100010707042b001002140640420f00000000001a020503000001150a0011160a0106000000000000000024030b0b000107021114270a000600000000000000000b010a0038040b00380512002d00020601000100151b0b0011160a01060000000000000000240309070211142707042a000c020a021002140c030a010a020f02150b020f060b030b0112023806020002000000010105010701030003000000", + "abi": { + "address": "0x1", + "name": "block", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "get_current_block_height", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "get_epoch_interval_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "update_epoch_interval_microsecs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "BlockResource", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "height", + "type": "u64" + }, + { + "name": "epoch_interval", + "type": "u64" + }, + { + "name": "new_block_events", + "type": "0x1::event::EventHandle<0x1::block::NewBlockEvent>" + }, + { + "name": "update_epoch_interval_events", + "type": "0x1::event::EventHandle<0x1::block::UpdateEpochIntervalEvent>" + } + ] + }, + { + "name": "NewBlockEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "hash", + "type": "address" + }, + { + "name": "epoch", + "type": "u64" + }, + { + "name": "round", + "type": "u64" + }, + { + "name": "height", + "type": "u64" + }, + { + "name": "previous_block_votes_bitvec", + "type": "vector" + }, + { + "name": "proposer", + "type": "address" + }, + { + "name": "failed_proposer_indices", + "type": "vector" + }, + { + "name": "time_microseconds", + "type": "u64" + } + ] + }, + { + "name": "UpdateEpochIntervalEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "old_epoch_interval", + "type": "u64" + }, + { + "name": "new_epoch_interval", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000601000203020b050d0507121e0830200c5008000000010001010000020101000106090000056465627567057072696e74117072696e745f737461636b5f74726163650000000000000000000000000000000000000000000000000000000000000001000102000101020000", + "abi": { + "address": "0x1", + "name": "debug", + "friends": [], + "exposed_functions": [ + { + "name": "print", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0" + ], + "return": [] + }, + { + "name": "print_stack_trace", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b05000000070100020302410543060749b7010880022006a00282010ca203ab010000000100000000020000000003010000000400000000050000000006000000000700000000080000000009000000000a000000000b000000000c000000000d000000010302030300056572726f720761626f727465640e616c72656164795f6578697374730963616e6f6e6963616c08696e7465726e616c10696e76616c69645f617267756d656e740d696e76616c69645f7374617465096e6f745f666f756e640f6e6f745f696d706c656d656e7465640c6f75745f6f665f72616e6765117065726d697373696f6e5f64656e696564127265736f757263655f6578686175737465640f756e61757468656e746963617465640b756e617661696c61626c650000000000000000000000000000000000000000000000000000000000000001030807000000000000000308080000000000000003080a0000000000000003080b0000000000000003080100000000000000030803000000000000000308060000000000000003080c000000000000000308020000000000000003080500000000000000030809000000000000000308040000000000000003080d0000000000000000010000020407000b0011020201010000020407010b001102020201000002060b0031102f0b01160203010000020407030b0011020204010000020407040b0011020205010000020407050b0011020206010000020407060b0011020207010000020407070b0011020208010000020407080b0011020209010000020407090b001102020a0100000204070a0b001102020b0100000204070b0b001102020c0100000204070c0b0011020200", + "abi": { + "address": "0x1", + "name": "error", + "friends": [], + "exposed_functions": [ + { + "name": "aborted", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "already_exists", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "canonical", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "internal", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "invalid_argument", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "invalid_state", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "not_found", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "not_implemented", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "out_of_range", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "permission_denied", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "resource_exhausted", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "unauthenticated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "unavailable", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000602060a03102a043a04053e30076e7908e701200a8702080b8f02020c9102660df702040efb02040fff020200010002000300040401060102080600000500010106000602030106000704030106000300050106000906020106000a07030106010b090a01000606050801060b000109000103010b000109000002070b00010900090001060801010801030a0203090001090001060900010a02076163636f756e74056576656e740362637304677569640b4576656e7448616e646c6507636f756e7465720e64657374726f795f68616e646c650a656d69745f6576656e740447554944106e65775f6576656e745f68616e646c651477726974655f746f5f6576656e745f73746f726508746f5f62797465730000000000000000000000000000000000000000000000000000000000000001000202050303080100080001000003040b00370014020101000003050b003a000101020201000003110a00370138000a003700140b0138010a00370014060100000000000000160b00360015020301000003030b003701020403000003040600000000000000000b00390002050002000000000100080108000000", + "abi": { + "address": "0x1", + "name": "event", + "friends": [ + "0x1::account" + ], + "exposed_functions": [ + { + "name": "counter", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&0x1::event::EventHandle" + ], + "return": [ + "u64" + ] + }, + { + "name": "destroy_handle", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "0x1::event::EventHandle" + ], + "return": [] + }, + { + "name": "emit_event", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&mut 0x1::event::EventHandle", + "T0" + ], + "return": [] + }, + { + "name": "guid", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&0x1::event::EventHandle" + ], + "return": [ + "&0x1::guid::GUID" + ] + }, + { + "name": "new_event_handle", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "0x1::guid::GUID" + ], + "return": [ + "0x1::event::EventHandle" + ] + } + ], + "structs": [ + { + "name": "EventHandle", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "fields": [ + { + "name": "counter", + "type": "u64" + }, + { + "name": "guid", + "type": "0x1::guid::GUID" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01001a021a7a039401b80304cc0450059c058f0607ab0b9e1708c9222006e922ea0110d3249c0b0aef2fa0020c8f32821e0d9150440fd550060003000400050006000700080009000a000b000c000d000e000f0010060000110800001206000013060000140600001506000016060000170c000018060000190600001a0600001b0600001c0800001d0600001e0600001f0f000020070000210800002208000023060004250401000102260800072f0701000004500501000109560b00067004010601039f01070003a0010700002400010000270201000028030101000029040100002a050600002b070100002c080100002d090600002e0a080000300b0c0000310d0e000032060f000033040600003404040000350406000036100600003704040000381104000039040600003a041200003b041300003c040600003d040600003e0a0100003f11010000400a010000410a010000421401000043150100004404160000451701000046170100004717010000480101000049000100004a180100004b190100004c170100004d1a0100004e170100004f1a010000511b0100005200010000531c0100005419010000551d010000571e010000580601000059000100005a181f00088e010a0400045900220100048f01240601000590010606000791012516010004920126010100099301012700099401280f000695012a0101060c96012c1601000497012f2201000798012b300100079901013001000b9a01010600099b012806000a9c010a0100049d0101220100019e010a3b010603a10147480003a201494a0009a30128160007a4014f2b01000ca501502b010004a4015322010005a60106060009a701280f0004a8015b22010009a90128060004aa015e01010033213421360637213a293b2b3c213d063e063a374221433a433c4329433d433e433f433743404341434243434344364b3b453a404706480e3a44020e49213a3d3a3e3a3c3a423a3f4c213a414e213a4302060c0300020608070b1401081502070a0900070a09000105050303030303010302060c080701080705070b140108150303030301060c02060a081005010b160103030506080c080f0108100203030106080c010608070403030303030a020a020a0204060c03050505060c0a020a020a020a02010102060c05020608070304060c050a020a02020608070502060c0b170108150203060807020b1601030a030306081105060818010b140108150205060807010815010b140109000a0b1601030b16010301081803030507080c0708120301060b1401090001060b1601090002070b140109000b140109000108180106081801080002070b19010900090001090001060a0900030304040503060b170108150b1401081503030203060b17010900010b1601090002060804060a08040108040501030303030106080f070b1601030b1601030b160103030303060812040818030507080c01080307020a08100a08100a08100404060c150b140108150b190108000b190108080b1901080a0b1901080e0b190108030b190108050b190108020b1901080d0b190108130b190108060b14010815060c0b140108150b140108150305050b190108090b1901080b05010809010b1901090001080b01080801080a01080e01080501080201080d010813010806010203081a0a020b1601081b010a0201081a020a0206081a010b1601081b01081b0201030c0507080c080f070a08100818030307080c07080f07081203030708180b1601030b16010307080c08100708120401070b1601090002070a0900031e0708110507080c080f050608180708110506081808180303030303030308100a0810070810050307080c07080c06081006081007080f0307081107081203050b1401081507080c02070b140109000306081a0a020b1601081b0a0207080c07080f0107080c03050507080c030507080c0b14010815040a020a0207080c07080f0803030307080407080403030708110906080403030303030307080c06080f01070b140109000308180708120403050b1401081506080702050b1401090005010b140108150507080c0305626c6f636b0767656e657369730f7265636f6e66696775726174696f6e057374616b65076163636f756e740a6170746f735f636f696e08626c73313233383104636f696e056572726f72056576656e74066f7074696f6e067369676e65720e7374616b696e675f636f6e6669671073797374656d5f6164647265737365730974696d657374616d7006766563746f720d4164645374616b654576656e74154170746f73436f696e4361706162696c69746965731644697374726962757465526577617264734576656e7413496e6372656173654c6f636b75704576656e741e496e646976696475616c56616c696461746f72506572666f726d616e6365154a6f696e56616c696461746f725365744576656e74164c6561766556616c696461746f725365744576656e740f4f776e65724361706162696c69747914526561637469766174655374616b654576656e741f526567697374657256616c696461746f7243616e6469646174654576656e7417526f74617465436f6e73656e7375734b65794576656e74105365744f70657261746f724576656e74095374616b65506f6f6c10556e6c6f636b5374616b654576656e74265570646174654e6574776f726b416e6446756c6c6e6f64654164647265737365734576656e740f56616c696461746f72436f6e6669670d56616c696461746f72496e666f1456616c696461746f72506572666f726d616e63650c56616c696461746f725365741257697468647261775374616b654576656e74096164645f7374616b6504436f696e094170746f73436f696e126164645f7374616b655f776974685f63617006617070656e64186173736572745f7374616b655f706f6f6c5f6578697374731863616c63756c6174655f726577617264735f616d6f756e74116465706f7369745f6f776e65725f6361701164657374726f795f6f776e65725f63617012646973747269627574655f7265776172647311657874726163745f6f776e65725f636170064f7074696f6e0e66696e645f76616c696461746f721767656e65726174655f76616c696461746f725f696e666f216765745f63757272656e745f65706f63685f70726f706f73616c5f636f756e74731e6765745f63757272656e745f65706f63685f766f74696e675f706f776572136765745f64656c6567617465645f766f7465720f6765745f6c6f636b75705f736563731b6765745f6e6578745f65706f63685f766f74696e675f706f7765720c6765745f6f70657261746f72166765745f6f776e65645f706f6f6c5f61646472657373196765745f72656d61696e696e675f6c6f636b75705f73656373096765745f7374616b65146765745f76616c696461746f725f636f6e666967136765745f76616c696461746f725f696e646578136765745f76616c696461746f725f73746174650f696e6372656173655f6c6f636b757018696e6372656173655f6c6f636b75705f776974685f6361700a696e697469616c697a6510696e697469616c697a655f6f776e657216696e697469616c697a655f7374616b655f6f776e657214696e697469616c697a655f76616c696461746f721a69735f63757272656e745f65706f63685f76616c696461746f72126a6f696e5f76616c696461746f725f7365741b6a6f696e5f76616c696461746f725f7365745f696e7465726e616c136c656176655f76616c696461746f725f7365740c6f6e5f6e65775f65706f636810726561637469766174655f7374616b6519726561637469766174655f7374616b655f776974685f63617014726f746174655f636f6e73656e7375735f6b6579137365745f64656c6567617465645f766f7465721c7365745f64656c6567617465645f766f7465725f776974685f6361700c7365745f6f70657261746f72157365745f6f70657261746f725f776974685f6361700e4d696e744361706162696c6974791973746f72655f6170746f735f636f696e5f6d696e745f63617006756e6c6f636b0f756e6c6f636b5f776974685f636170257570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365731d7570646174655f706572666f726d616e63655f737461746973746963730d5374616b696e67436f6e666967117570646174655f7374616b655f706f6f6c1c7570646174655f766f74696e675f706f7765725f696e6372656173650877697468647261771177697468647261775f776974685f6361700c706f6f6c5f616464726573730c616d6f756e745f6164646564086d696e745f6361700e726577617264735f616d6f756e74156f6c645f6c6f636b65645f756e74696c5f73656373156e65775f6c6f636b65645f756e74696c5f73656373147375636365737366756c5f70726f706f73616c73106661696c65645f70726f706f73616c7306616d6f756e74146f6c645f636f6e73656e7375735f7075626b6579146e65775f636f6e73656e7375735f7075626b65790c6f6c645f6f70657261746f720c6e65775f6f70657261746f720661637469766508696e6163746976650e70656e64696e675f6163746976651070656e64696e675f696e616374697665116c6f636b65645f756e74696c5f73656373106f70657261746f725f616464726573730f64656c6567617465645f766f7465721b696e697469616c697a655f76616c696461746f725f6576656e74730b4576656e7448616e646c65137365745f6f70657261746f725f6576656e7473106164645f7374616b655f6576656e747317726561637469766174655f7374616b655f6576656e74731b726f746174655f636f6e73656e7375735f6b65795f6576656e74732c7570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365735f6576656e747316696e6372656173655f6c6f636b75705f6576656e7473196a6f696e5f76616c696461746f725f7365745f6576656e747319646973747269627574655f726577617264735f6576656e747313756e6c6f636b5f7374616b655f6576656e74731577697468647261775f7374616b655f6576656e74731a6c656176655f76616c696461746f725f7365745f6576656e74730f616d6f756e745f756e6c6f636b6564156f6c645f6e6574776f726b5f616464726573736573156e65775f6e6574776f726b5f616464726573736573166f6c645f66756c6c6e6f64655f616464726573736573166e65775f66756c6c6e6f64655f61646472657373657310636f6e73656e7375735f7075626b6579116e6574776f726b5f6164647265737365731266756c6c6e6f64655f6164647265737365730f76616c696461746f725f696e64657804616464720c766f74696e675f706f77657206636f6e6669670a76616c696461746f727310636f6e73656e7375735f736368656d65116163746976655f76616c696461746f727312746f74616c5f766f74696e675f706f77657213746f74616c5f6a6f696e696e675f706f77657210616d6f756e745f77697468647261776e0a616464726573735f6f660576616c756510696e76616c69645f617267756d656e740769735f736f6d65056d6572676503676574126765745f72657175697265645f7374616b650a656d69745f6576656e740869735f656d707479046d696e7404736f6d65046e6f6e650b6e6f775f7365636f6e64731d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e166173736572745f6170746f735f6672616d65776f726b047a65726f106e65775f6576656e745f68616e646c651150726f6f664f66506f7373657373696f6e105075626c69634b657957697468506f501e70726f6f665f6f665f706f7373657373696f6e5f66726f6d5f62797465731e7075626c69635f6b65795f66726f6d5f62797465735f776974685f706f701e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e676507657874726163740b737761705f72656d6f7665096e6f745f666f756e640f6765745f7265776172645f726174650b657874726163745f616c6c1f6765745f766f74696e675f706f7765725f696e6372656173655f6c696d6974076465706f73697400000000000000000000000000000000000000000000000000000000000000010308060000000000000003080a0000000000000003080f00000000000000030810000000000000000308080000000000000003080d000000000000000308010000000000000003080c000000000000000308070000000000000003080b0000000000000003080e0000000000000003080900000000000000030814000000000000000308050000000000000003080400000000000000030803000000000000000308120000000000000003081300000000000000030802000000000000000308000001000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630870b13010000000000000014454c4f434b5f54494d455f544f4f5f53484f5254274c6f636b757020706572696f642069732073686f72746572207468616e2072657175697265642e0200000000000000154557495448445241575f4e4f545f414c4c4f574544305769746864726177206e6f7420616c6c6f7765642c20746865207374616b65206973207374696c6c206c6f636b65642e0300000000000000114556414c494441544f525f434f4e4649471f56616c696461746f7220436f6e666967206e6f74207075626c69736865642e04000000000000000e455354414b455f544f4f5f4c4f57274e6f7420656e6f756768207374616b6520746f206a6f696e2076616c696461746f72207365742e05000000000000000f455354414b455f544f4f5f4849474825546f6f206d756368207374616b6520746f206a6f696e2076616c696461746f72207365742e06000000000000001945414c52454144595f4143544956455f56414c494441544f52344163636f756e7420697320616c726561647920612076616c696461746f72206f722070656e64696e672076616c696461746f722e07000000000000000e454e4f545f56414c494441544f521b4163636f756e74206973206e6f7420612076616c696461746f722e08000000000000000f454c4153545f56414c494441544f521c43616e27742072656d6f7665206c6173742076616c696461746f722e090000000000000012455354414b455f455843454544535f4d415824546f74616c207374616b652065786365656473206d6178696d756d20616c6c6f7765642e0a000000000000001345414c52454144595f52454749535445524544374163636f756e7420697320616c7265616479207265676973746572656420617320612076616c696461746f722063616e6469646174652e0b0000000000000015454e4f5f434f494e535f544f5f57495448445241573b4e6f20636f696e7320696e20696e61637469766520737461746520746f2077697468647261772066726f6d2073706563696669656420706f6f6c2e0c000000000000000d454e4f545f4f50455241544f52344163636f756e7420646f6573206e6f74206861766520746865207269676874206f70657261746f72206361706162696c6974792e0d0000000000000013454c4f434b5f54494d455f544f4f5f4c4f4e47254c6f636b757020706572696f64206973206c6f6e676572207468616e20616c6c6f7765642e0e000000000000002d454e4f5f504f53545f47454e455349535f56414c494441544f525f5345545f4348414e47455f414c4c4f5745444256616c696461746f72732063616e6e6f74206a6f696e206f72206c6561766520706f73742067656e65736973206f6e20746869732074657374206e6574776f726b2e0f000000000000001345494e56414c49445f5055424c49435f4b45591c496e76616c696420636f6e73656e737573207075626c6963206b657910000000000000001545494e56414c49445f5354414b455f414d4f554e5422496e76616c6964207374616b6520616d6f756e74202875737561756c6c792030292e1200000000000000184556414c494441544f525f5345545f544f4f5f4c415247451f56616c696461746f7220736574206578636565647320746865206c696d697413000000000000002445564f54494e475f504f5745525f494e4352454153455f455843454544535f4c494d495444566f74696e6720706f77657220696e6372656173652068617320657863656564656420746865206c696d697420666f7220746869732063757272656e742065706f63682e14000000000000001a455354414b455f504f4f4c5f444f45535f4e4f545f4558495354375374616b6520706f6f6c20646f6573206e6f74206578697374206174207468652070726f766964656420706f6f6c20616464726573732e0002025b055c030102015d0b170108150202025b055e030302035b055f036003040202610362030502015b050602015b050702015b050802025b0563030902015b050a02035b05640a02650a020b02035b05660567050c0213680b14010815690b140108156a0b140108156b0b140108156c036d056e056f0b19010809710b1901080b720b19010800730b19010808740b1901080a750b1901080e760b19010803770b19010805780b19010802790b1901080d7a0b190108137b0b190108060d02025b057c030e02055b057d0a027e0a027f0a0280010a020f020481010a0282010a0283010a028401031002038501058601038701080f11020188010a08041202068901028a010a08106b0a08106a0a08108b01048c01041302025b058d010300010403070c12200c0a0011320c020b022b070c030b030b000b013800110102010100020c1223580b001000140c080a0811030e0138010c060a06060000000000000000240310070311352707142a120c0a0a0a10010a0811090c020e023802031c05210b0a01080c0405290b0a10020a0811090c030e0338020c040b04032c052e0a06112f0a082a0c0c090a08111d0335053a0a090f030b013803053e0a090f040b01380311380c050e0511390c07010a092e110f0c0b0b0b0b072503510b0901070b1135270b090f050b080b0612003804020200000001100a012e3805200306050b0a000a01452b442b05000b01010b0001020300000001070b00290c0306070c11352702040000002d1e0b00350b0335180b0135180c070b04350b0235180c060a063200000000000000000000000000000000240314051a0b070b061a340c05051c0600000000000000000c050b05020501000001040b000b012d07020601000001040b001307010207000001012e2a0a002e38010c090a0906000000000000000024030905110b090b010b020b030b0411040c0505130600000000000000000c050b050c080a0806000000000000000024031a052607142b0110060c060a080b0638060c070b000b07380305280b00010b0802080100010701040b0011322c0702090000000f210600000000000000000c020a00410e0c030a020a0323030a051d0a000a02420e1007140a0121031305180b00010b023807020b02060100000000000000160c0205050b00013808020a00000006080b01110f0c030b000b030b021210020b01000111310f07142b1110080c020b020b0042320c010a011009140b01100a14020c0100020c1233250a0011160c050a050712210308050b080c01050f0b05070f210c010b01031205210a002b0c100438010c030b002b0c100b38010c040b030b04160c0205230600000000000000000c020b02020d0100010c01050b002b0c100c14020e0100010c01050b002b0c100d14020f000000010c0a00100338010a0010043801160b00100b38011602100100010c01050b002b0c100e14021101000001040b0010001402120100010c0f130b002b0c100d140c020a02113f25030a050d0600000000000000000c0105110b02113f170c010b0102130100010c10100b002b0c0c010a01100438010a01100f38010a01100338010b01100b380102140100010f340d0b002b0f0c010a011010140a011011140b0110121402150100010f01050b002b0f101314021601000112353307142b120c070a0710020a0011090c010e013802030c05110b070107060c0605310a0710010a0011090c020e023802031a051f0b070107120c05052f0b0710140b0011090c030e0338020328052b070f0c04052d070e0c040b040c050b050c060b060217010402070c20090b0011320c010b012b070c020b02111802180100010c36200b001000140c030a03110311380c010a032a0c0c040a04100d140c02113f0e011140160a040f0d150a040f150b030b020b04100d1412033809021903000038180a0011410a000c07400e00000000000000000c02400e00000000000000000c03400e00000000000000000c040b0731000b020b040b033200000000000000000000000000000000320000000000000000000000000000000012122d120b004032000000000000000012112d11021a00000039590a0011320c150a15290c20030c0b000107011135270a000c0d380a0c01380a0c0c380a0c0e380a0c0f0a150c110a150c120a00380b0c130a00380c0c140a00380d0c020a00380e0c030a00380f0c040a0038100c050a0038110c060a0038120c070a0038130c080a0038140c090a0038150c0a0a0038160c0b0b0d0b010b0f0b0c0b0e0600000000000000000b110b120b130b140b020b030b040b050b060b070b080b090b0a0b0b120c2d0c0b000b1512072d07021b010403070c1204280a00111a0a00404500000000000000004045000000000000000040450000000000000000060000000000000000120f2d0f0a0106000000000000000024030e05110a000b0111000a0011320c040a040a02220319051c0a000b0211270b040a0322032105250b000b03112505270b0001021c010400461c0a010c060b0211440c050b060e0511450c070d072e381703120b000107021135270a00111a0b000b010b030b04060000000000000000120f2d0f021d010001124c110b0011160c020a020712210308050b080c01050f0b02070f210c010b01021e0104030c0f12270e11380c020e021146030a0b0001070a1135270b000b01111f021f0300030c0f124d770a0111030a012a0c0c090b0011320a09100e142103110b090107071135270a011116070e21031b0b0901070011352711380c060e0611390c070c080a092e110f0c0d0a0d0b0826032e0b0901070e1135270a0d0b072503370b0901070d1135270b0d112f0a012a0f0c0a0a0a101038182003480b0a010b0901070211352707142a120c0b0a0b1001410e0a0b1002410e160c0c0b0c07132503600b0b010b0a010b090107101135270b0b0f020c050a010a090b0a140c040c030c020b050b020b032e0b04110a440e0b090f160b011205381902200104020c124e7311380c020e021146030a0b0001070a1135270a0111030a012a0c0c050b0011320a05100e1421031b0b0501070711352707142a120c070a0710020a0111090c040e043802032705470a070f020d04381a381b010b052e110f350c080a071017140a0824033905420a071017140b08170b070f1715054632000000000000000000000000000000000b070f171505720a0710010a0111090c030e03380203560b07010b050107081135270a070f010d03381a381b0c060a071001410e0600000000000000002403690b07010b050107041135270b070f140b06440e0b050f180b011206381c0221030005010c0f111251d60107142a120c1d11380c0907142a110c1c0600000000000000000c0a0a1d1001410e0c0d0a0a0a0d230313052a0a1d10010a0a420e0c180a1c0b181007140e090c050c040c000b002e0b040b05112e0b0a060100000000000000160c0a050e0600000000000000000c0c0a1d1014410e0c0f0a0c0a0f230335054c0a1d10140a0c420e0c190a1c0b191007140e090c080c070c060b062e0b070b08112e0b0c060100000000000000160c0c05300a1d0f010a1d0f02381d400e00000000000000000a1d0f14150e091139010c100e0911400c150600000000000000000c0b0600000000000000000c1b0a1d1001410e0c0e400e00000000000000000c12403200000000000000000a1c0f081532000000000000000000000000000000000a1d0f191532000000000000000000000000000000000a1d0f17150a0b0a0e23037705cf010a1d0f010a0b430e0c130b131007140c140a142a0f0c1a0a1b0a1a0f13150a142a0c0c160a140b160b1a140c030c020c010b010b022e0b03110a0c110b0b060100000000000000160c0b0e11101a140a102303a20105a30105720b1b060100000000000000160c1b0a1d1019140e11101a1435160a1d0f19150d120b11440e0a1c0f08060000000000000000060000000000000000120444320b142a0c0c170a17100d14113f2503c50105cc01113f0a15160b170f0d1505ce010b170105720b1c010b120b1d0f01150222010402070c200a0b0011320c020b022b070c030b030b01112302230100010c52240b001000140c020a0211030a022a0c0c040a010a04100b38012503140b040107031135270a040f0b0a01381e0c030a040f040b0338030b040f1b0b020b011208381f02240104020c0f54400a0111030a012a0c0c080b0011320a08100e142103110b080107071135270a01290f03190b0801070f114a270a012a0f0c090a091010140c070a020c050b0311440c040b050e0411450c060d062e381703340b09010b080107021135270a020b090f10150b080f1c0b010b070b02120a38200225010402070c200a0b0011320c020b022b070c030b030b01112602260100010c550a0b001000142a0c0c020b010b020f0c150227010402070c200a0b0011320c020b022b070c030b030b01112802280100010c56170b001000140c030a032a0c0c040a04100e140c020a010a040f0e150b040f1d0b030b020b01120b3821022903000001070a0011410b000b0112012d01022a010402070c200a0b0011320c020b022b070c030b010b03112b022b0100010c57210a0006000000000000000021030505080b0101020b011000140c020a0211030a022a0c0c030a030f040a00381e0c040a030f0b0b0438030b030f1e0b020b00120d3822022c0104020c0f58360a0111030a012a0c0c060b0011320a06100e142103110b060107071135270a01290f03190b0601070f114a270a012a0f0c070a071011140c050a020a070f11150a071012140c040a030b070f12150b060f1f0b010b050b020b040b03120e3823022d03000111594907142a110c090a09100841320c080e003802030b05200d00381a0c020a020a0823031305200a090f080b0243320c050a05100914060100000000000000160b050f09150600000000000000000c030e0141060c040a030a0423032a05460e010a034206140c070a070a0823033405410a090f080b0743320c060a06100a14060100000000000000160b060f0a150b03060100000000000000160c0305250b0901022e000003010c0f5a4b0a012a0c0c0a0a012b0f0c0b0b0010080b0b10131442320c030a031009140c050a031009140b03100a14160c060b02114b0c090c080a0a0f040a050a060a080a0911070c070b070a0a0f0b0b050b060b080b091107160c070a0a0f040a0a0f03382438030a0a100d140c04113f0b0426033e05440a0a0f0f0a0a0f0b382438030b0a0f200b010b0712023825022f000001125c2c07142a120c0211380c010e01114d350c030a021017140b0035160a020f17150a02101914320000000000000000000000000000000024031905290a021017140b021019140b031832640000000000000000000000000000001a2503280711113527052b0b02010230010403070c125d0e0b0011320c020a022b070c040b040b0111310c030b020b03382602310100020c125f420b001000140c040a0411030a042a0c0c050a041116070e21030f0516113f0a05100d14260c020518090c020b02031b05230a050f0b38240c030a050f0f0b0338030a05100f38010c060a010a0624032c052e0b060c010a010600000000000000002403370b050107091135270a050f210b040a01121338270b050f0f0b01381e020700120112030c020c000c09010010001100040004010c030c060c040c050c010f000f010f020f0312020c0d0c0e12050c12120410010c0a0c0b0c080c100c0c0c0f0c1100000001000200", + "abi": { + "address": "0x1", + "name": "stake", + "friends": [ + "0x1::block", + "0x1::genesis", + "0x1::reconfiguration" + ], + "exposed_functions": [ + { + "name": "add_stake", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "add_stake_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + }, + { + "name": "deposit_owner_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "destroy_owner_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "extract_owner_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "0x1::stake::OwnerCapability" + ] + }, + { + "name": "get_current_epoch_proposal_counts", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "u64", + "u64" + ] + }, + { + "name": "get_current_epoch_voting_power", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_delegated_voter", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "address" + ] + }, + { + "name": "get_lockup_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_operator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "address" + ] + }, + { + "name": "get_owned_pool_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability" + ], + "return": [ + "address" + ] + }, + { + "name": "get_remaining_lockup_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64", + "u64", + "u64", + "u64" + ] + }, + { + "name": "get_validator_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "vector", + "vector", + "vector" + ] + }, + { + "name": "get_validator_index", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_validator_state", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "increase_lockup", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "increase_lockup_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize_stake_owner", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "address", + "address" + ], + "return": [] + }, + { + "name": "initialize_validator", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "is_current_epoch_validator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "join_validator_set", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "join_validator_set_internal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "leave_validator_set", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "on_new_epoch", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + }, + { + "name": "reactivate_stake", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "reactivate_stake_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "u64" + ], + "return": [] + }, + { + "name": "rotate_consensus_key", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "set_delegated_voter", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "set_delegated_voter_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "address" + ], + "return": [] + }, + { + "name": "set_operator", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [] + }, + { + "name": "set_operator_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "address" + ], + "return": [] + }, + { + "name": "store_aptos_coin_mint_cap", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + }, + { + "name": "unlock", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "unlock_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "&0x1::stake::OwnerCapability" + ], + "return": [] + }, + { + "name": "update_network_and_fullnode_addresses", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "update_performance_statistics", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::option::Option", + "vector" + ], + "return": [] + }, + { + "name": "withdraw", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "withdraw_with_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::stake::OwnerCapability", + "u64" + ], + "return": [ + "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + ] + } + ], + "structs": [ + { + "name": "AddStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount_added", + "type": "u64" + } + ] + }, + { + "name": "AptosCoinCapabilities", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "mint_cap", + "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + } + ] + }, + { + "name": "DistributeRewardsEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "rewards_amount", + "type": "u64" + } + ] + }, + { + "name": "IncreaseLockupEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_locked_until_secs", + "type": "u64" + }, + { + "name": "new_locked_until_secs", + "type": "u64" + } + ] + }, + { + "name": "IndividualValidatorPerformance", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "successful_proposals", + "type": "u64" + }, + { + "name": "failed_proposals", + "type": "u64" + } + ] + }, + { + "name": "JoinValidatorSetEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "LeaveValidatorSetEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "OwnerCapability", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "ReactivateStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "RegisterValidatorCandidateEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + } + ] + }, + { + "name": "RotateConsensusKeyEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_consensus_pubkey", + "type": "vector" + }, + { + "name": "new_consensus_pubkey", + "type": "vector" + } + ] + }, + { + "name": "SetOperatorEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_operator", + "type": "address" + }, + { + "name": "new_operator", + "type": "address" + } + ] + }, + { + "name": "StakePool", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "active", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "inactive", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "pending_active", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "pending_inactive", + "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>" + }, + { + "name": "locked_until_secs", + "type": "u64" + }, + { + "name": "operator_address", + "type": "address" + }, + { + "name": "delegated_voter", + "type": "address" + }, + { + "name": "initialize_validator_events", + "type": "0x1::event::EventHandle<0x1::stake::RegisterValidatorCandidateEvent>" + }, + { + "name": "set_operator_events", + "type": "0x1::event::EventHandle<0x1::stake::SetOperatorEvent>" + }, + { + "name": "add_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::AddStakeEvent>" + }, + { + "name": "reactivate_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::ReactivateStakeEvent>" + }, + { + "name": "rotate_consensus_key_events", + "type": "0x1::event::EventHandle<0x1::stake::RotateConsensusKeyEvent>" + }, + { + "name": "update_network_and_fullnode_addresses_events", + "type": "0x1::event::EventHandle<0x1::stake::UpdateNetworkAndFullnodeAddressesEvent>" + }, + { + "name": "increase_lockup_events", + "type": "0x1::event::EventHandle<0x1::stake::IncreaseLockupEvent>" + }, + { + "name": "join_validator_set_events", + "type": "0x1::event::EventHandle<0x1::stake::JoinValidatorSetEvent>" + }, + { + "name": "distribute_rewards_events", + "type": "0x1::event::EventHandle<0x1::stake::DistributeRewardsEvent>" + }, + { + "name": "unlock_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::UnlockStakeEvent>" + }, + { + "name": "withdraw_stake_events", + "type": "0x1::event::EventHandle<0x1::stake::WithdrawStakeEvent>" + }, + { + "name": "leave_validator_set_events", + "type": "0x1::event::EventHandle<0x1::stake::LeaveValidatorSetEvent>" + } + ] + }, + { + "name": "UnlockStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount_unlocked", + "type": "u64" + } + ] + }, + { + "name": "UpdateNetworkAndFullnodeAddressesEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "old_network_addresses", + "type": "vector" + }, + { + "name": "new_network_addresses", + "type": "vector" + }, + { + "name": "old_fullnode_addresses", + "type": "vector" + }, + { + "name": "new_fullnode_addresses", + "type": "vector" + } + ] + }, + { + "name": "ValidatorConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "consensus_pubkey", + "type": "vector" + }, + { + "name": "network_addresses", + "type": "vector" + }, + { + "name": "fullnode_addresses", + "type": "vector" + }, + { + "name": "validator_index", + "type": "u64" + } + ] + }, + { + "name": "ValidatorInfo", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "addr", + "type": "address" + }, + { + "name": "voting_power", + "type": "u64" + }, + { + "name": "config", + "type": "0x1::stake::ValidatorConfig" + } + ] + }, + { + "name": "ValidatorPerformance", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "validators", + "type": "vector<0x1::stake::IndividualValidatorPerformance>" + } + ] + }, + { + "name": "ValidatorSet", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "consensus_scheme", + "type": "u8" + }, + { + "name": "active_validators", + "type": "vector<0x1::stake::ValidatorInfo>" + }, + { + "name": "pending_inactive", + "type": "vector<0x1::stake::ValidatorInfo>" + }, + { + "name": "pending_active", + "type": "vector<0x1::stake::ValidatorInfo>" + }, + { + "name": "total_voting_power", + "type": "u128" + }, + { + "name": "total_joining_power", + "type": "u128" + } + ] + }, + { + "name": "WithdrawStakeEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pool_address", + "type": "address" + }, + { + "name": "amount_withdrawn", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000202020e03107e048e011605a401850107a902ee01089704200ab7040b0bc204040cc604e4010daa06020eac06020fae0602000100020e0100000003040203010001000400010203000005020103030000000603040203000007030503030000000806070303000000090608020300000a0008020302000b0309020300000c030903030000000d0a01020300000e0b0103030000000f0a01030300000010010a0203040011010c0200000012060d0203000013060e0303000000140001020302010f030f040f071000100510080f0a0f0b0f0d100f0f03070b010209000901090009010003070b01020900090109000b0001090102060b01020900090109000106090101060b0001090102070b010209000901090001070b00010901010709010101010b01020900090101060b0102090009010105010901010b0001090103090009010b00010901020900090103070b0102090009010900070901117461626c655f776974685f6c656e677468057461626c6503426f78055461626c6503616464076164645f626f7806626f72726f770a626f72726f775f626f780e626f72726f775f626f785f6d75740a626f72726f775f6d757417626f72726f775f6d75745f776974685f64656661756c7408636f6e7461696e730c636f6e7461696e735f626f780764657374726f791164657374726f795f656d7074795f626f781264726f705f756e636865636b65645f626f78036e6577106e65775f7461626c655f68616e646c650672656d6f76650a72656d6f76655f626f78067570736572740376616c0668616e646c6500000000000000000000000000000000000000000000000000000000000000010002011509000102011605000d01100001000001060b000b010b023900380002010002000201000001050b000b01380137000203000200040002000501000001050b000b0138023600020601000006130a000a010c040c030b032e0b04380320030b050f0a000a010b0238040b000b013805020701000001040b000b01380602080002000903000001050e0038070b003808020a0002000b0002000c010000010338093901020d0002000e0100000d070b000b01380a3a000c020b02020f0002001001000011180a000a010c040c030b032e0b04380320030b05100b000a010b02380405170b000b0138050c050b020b0515020000000d000000", + "abi": { + "address": "0x1", + "name": "table", + "friends": [ + "0x1::table_with_length" + ], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0", + "T1" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table::Table", + "T0" + ], + "return": [ + "&T1" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "borrow_mut_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0", + "T1" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table::Table", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "0x1::table::Table" + ], + "return": [] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [], + "return": [ + "0x1::table::Table" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0" + ], + "return": [ + "T1" + ] + }, + { + "name": "upsert", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&mut 0x1::table::Table", + "T0", + "T1" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Box", + "is_native": false, + "abilities": [ + "drop", + "store", + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "val", + "type": "T0" + } + ] + }, + { + "name": "Table", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "handle", + "type": "address" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e010004020406030a780482010e0590018701079702db0108f203200692041410a604ad020ad306070bda06020cdc0682040dde0a020ee00a0200000001000207010000000300010100000402030100000504010100000604050100000706070100000806080100000909080102000a02080100000b0a070100000c0b080103000d00050100000e00050100000f0706010000100806010000110a08010000120a0601000013060c010001150e05010001060f0501000116080c01000b08110812080a0813080c080d0801060b000109000106090001070b000109000107090002060b000109000609000101010b0001090000010900020b00010900090002070b00010900090002060b000109000900010a090002060900060a090001060a090002060a09000609000209000a090001070a0900020900060a0900020900070a0900030b000109000b00010900070a0900066f7074696f6e06766563746f72064f7074696f6e06626f72726f770a626f72726f775f6d757413626f72726f775f776974685f64656661756c7408636f6e7461696e730c64657374726f795f6e6f6e650c64657374726f795f736f6d651464657374726f795f776974685f64656661756c7407657874726163740466696c6c106765745f776974685f64656661756c740769735f6e6f6e650769735f736f6d65046e6f6e6504736f6d6504737761700c737761705f6f725f66696c6c06746f5f766563037665630869735f656d7074790973696e676c65746f6e00000000000000000000000000000000000000000000000000000000000000010308000004000000000003080100040000000000126170746f733a3a6d657461646174615f763098020200000400000000000e454f5054494f4e5f49535f5345547354686520604f7074696f6e6020697320696e20616e20696e76616c696420737461746520666f7220746865206f7065726174696f6e20617474656d707465642e0a2054686520604f7074696f6e602069732060536f6d6560207768696c652069742073686f756c6420626520604e6f6e65602e01000400000000000f454f5054494f4e5f4e4f545f5345547354686520604f7074696f6e6020697320696e20616e20696e76616c696420737461746520666f7220746865206f7065726174696f6e20617474656d707465642e0a2054686520604f7074696f6e6020697320604e6f6e6560207768696c652069742073686f756c642062652060536f6d65602e000201140a0900000800010000070c0a00380003070b00010701270b00370006000000000000000042080201010000070d0a002e380003080b00010701270b003600060000000000000000430802020100000d140b0037000c030a0338010307050c0b03010b010c0205120b01010b0306000000000000000042080c020b02020301000007050b0037000b01380202040100000c0b0e00380303050700270b003a000c010b01460800000000000000000205010000100f0e00380003050701270b003a000c020d0245080c010b02460800000000000000000b01020601000010100b003a000c030d032e38010308050b0b010c02050e0d0345080c020b020207010000070c0a002e380003080b00010701270b00360045080208010000110f0b0036000c020a022e3801030b0b02010700270b020b014408020901000012130b0037000c030a0338010307050c0b03010b010c0205110b030600000000000000004208140c020b02020a01000007040b0037003801020b01000007050b003700380120020c0100000703400800000000000000003900020d01000007040b0038043900020e01000013130a002e380003080b00010701270b0036000c030a0345080c020b030b0144080b02020f01000014160b0036000c040a042e38010308050b38050c02050f0a04450838060c020b020c030b040b0144080b0302100100000c050b003a000c010b01020000000800", + "abi": { + "address": "0x1", + "name": "option", + "friends": [], + "exposed_functions": [ + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option" + ], + "return": [ + "&T0" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option" + ], + "return": [ + "&mut T0" + ] + }, + { + "name": "borrow_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option", + "&T0" + ], + "return": [ + "&T0" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option", + "&T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy_none", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::option::Option" + ], + "return": [] + }, + { + "name": "destroy_some", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::option::Option" + ], + "return": [ + "T0" + ] + }, + { + "name": "destroy_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "0x1::option::Option", + "T0" + ], + "return": [ + "T0" + ] + }, + { + "name": "extract", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option" + ], + "return": [ + "T0" + ] + }, + { + "name": "fill", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option", + "T0" + ], + "return": [] + }, + { + "name": "get_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + } + ], + "params": [ + "&0x1::option::Option", + "T0" + ], + "return": [ + "T0" + ] + }, + { + "name": "is_none", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_some", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&0x1::option::Option" + ], + "return": [ + "bool" + ] + }, + { + "name": "none", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "some", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "swap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option", + "T0" + ], + "return": [ + "T0" + ] + }, + { + "name": "swap_or_fill", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::option::Option", + "T0" + ], + "return": [ + "0x1::option::Option" + ] + }, + { + "name": "to_vec", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::option::Option" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "Option", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "vec", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000601000203020a050c090715210836200c561000000001000100000200020001060c010501060500067369676e65720a616464726573735f6f660e626f72726f775f6164647265737300000000000000000000000000000000000000000000000000000000000000010001000003040b00110114020101020000", + "abi": { + "address": "0x1", + "name": "signer", + "friends": [], + "exposed_functions": [ + { + "name": "address_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "address" + ] + }, + { + "name": "borrow_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "&address" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602060a03105e046e0805767f07f501d30108c8032006e8031410fc03700aec04060cf204f7020de9070200000001000200030700011007010000000400010000050201000006030400000705060000080701000009040800000a090600000b0a0800000c0b0c00000d030800000e030600000f0d0e0000110c0f0000120c0e00020411010100020d130801000113151601000114011601000e100f10100e110e02070800080000020708000a020106080001060a0202060800060800010303070800030800010102060a02060a0202060a020303060a020303010a02030608000303010800010b01010800010202070a09000a09000b0107080003030708000303060a02080008000301060a090005010101060a0203010900010b0101090006737472696e67066f7074696f6e06766563746f7206537472696e6706617070656e640b617070656e645f7574663805627974657308696e6465785f6f6606696e7365727413696e7465726e616c5f636865636b5f7574663811696e7465726e616c5f696e6465785f6f6619696e7465726e616c5f69735f636861725f626f756e6461727913696e7465726e616c5f7375625f737472696e670869735f656d707479066c656e6774680a7375625f737472696e67064f7074696f6e087472795f75746638047574663804736f6d65046e6f6e6500000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000126170746f733a3a6d657461646174615f76305c0201000000000000000d45494e56414c49445f5554463819416e20696e76616c6964205554463820656e636f64696e672e02000000000000000e45494e56414c49445f494e44455813496e646578206f7574206f662072616e67652e000201060a020001000001070b000f000e011000143800020101000001050b000b01110d1100020201000001030b001000020301000001060b0010000b01100011060204010000123c0a0010000c0a0a010a0a4110250309050e0b0a0a0111070c0305120b0a01090c030b0303180b00010700270a002e110a0c0d0a000a010c060c040b042e0600000000000000000b06110b0c0c0a000b010b0d0c090c080c070b072e0b080b09110b0c0b0d0c0b0211000d0c0b0b11000b0c0b001502050102000600020007000200080002000901000001040b0010003801020a01000001040b0010004110020b01000014320b0010000c060a0641100c070a020b0725030b05100a010a02250c030512090c030b030315051a0a060a0111070c04051c090c040b04031f05240a060a0211070c050526090c050b05032c0b06010700270b060b010b0211081200020c0100000f0d0e001105030405090b00120038020c01050b38030c010b01020d01000001080e00110503050701270b00120002000000", + "abi": { + "address": "0x1", + "name": "string", + "friends": [], + "exposed_functions": [ + { + "name": "append", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::string::String", + "0x1::string::String" + ], + "return": [] + }, + { + "name": "append_utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::string::String", + "vector" + ], + "return": [] + }, + { + "name": "bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String" + ], + "return": [ + "&vector" + ] + }, + { + "name": "index_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String", + "&0x1::string::String" + ], + "return": [ + "u64" + ] + }, + { + "name": "insert", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::string::String", + "u64", + "0x1::string::String" + ], + "return": [] + }, + { + "name": "internal_check_utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String" + ], + "return": [ + "u64" + ] + }, + { + "name": "sub_string", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::string::String", + "u64", + "u64" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "try_utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::string::String>" + ] + }, + { + "name": "utf8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::string::String" + ] + } + ], + "structs": [ + { + "name": "String", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000901000203026004620405665907bf01930108d2022006f2020a10fc025d0cd9039904000000010001010000020203010000030405010000040607010000050801010000060108010000070609010000080a07010000090a0b0100000a0c0d0100000b0e010100000c040d0100000d0c010100000e0d080100000f0f0101000010040d01000c0d070d02070a09000a09000002060a0900030106090002070a0900030107090002060a09000609000101010a090002010301060a0900010301070a090001090002070a0900090003070a090003030203030303070a0900030303030306766563746f7206617070656e6406626f72726f770a626f72726f775f6d757408636f6e7461696e730d64657374726f795f656d70747905656d70747908696e6465785f6f660869735f656d707479066c656e67746808706f705f6261636b09707573685f6261636b0672656d6f766507726576657273650973696e676c65746f6e04737761700b737761705f72656d6f7665000000000000000000000000000000000000000000000000000000000000000103080000020000000000126170746f733a3a6d657461646174615f7630490100000200000000001445494e4445585f4f55545f4f465f424f554e44532a54686520696e64657820696e746f2074686520766563746f72206973206f7574206f6620626f756e64730001000001110d0138000e013801200307050c0a000d01450d440d05020b00010b01460d00000000000000000201010200020102000301000010220600000000000000000c020a00410d0c030a020a0323030a051c0a000a02420d0a0121031105170b00010b010108020b02060100000000000000160c0205050b00010b0101090204010200050102000601000010240600000000000000000c020a00410d0c030a020a0323030a051d0a000a02420d0a0121031105180b00010b0101080b02020b02060100000000000000160c0205050b00010b010109060000000000000000020701000001050b00410d060000000000000000210208010200090102000a0102000b01000011260a002e410d0c040a010a04260309050d0b00010700270b04060100000000000000170c040a010a0423031605230a000c030a010c020b01060100000000000000160c010b030b020a01470d05110b00450d020c01000012270a002e410d0c030a03060000000000000000210309050c0b0001020600000000000000000c020b03060100000000000000170c010a020a0123031705240a000a020a01470d0b02060100000000000000160c020b01060100000000000000170c0105120b0001020d0100000807400d00000000000000000c010d010b00440d0b01020e0102000f0100000b160a002e38012003090b00010700270a002e410d060100000000000000170c020a000b010b02470d0b00450d0200", + "abi": { + "address": "0x1", + "name": "vector", + "friends": [], + "exposed_functions": [ + { + "name": "append", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "vector" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector", + "u64" + ], + "return": [ + "&T0" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64" + ], + "return": [ + "&mut T0" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector", + "&T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "vector" + ], + "return": [] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "vector" + ] + }, + { + "name": "index_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector", + "&T0" + ], + "return": [ + "bool", + "u64" + ] + }, + { + "name": "is_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&vector" + ], + "return": [ + "u64" + ] + }, + { + "name": "pop_back", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector" + ], + "return": [ + "T0" + ] + }, + { + "name": "push_back", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "T0" + ], + "return": [] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64" + ], + "return": [ + "T0" + ] + }, + { + "name": "reverse", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector" + ], + "return": [] + }, + { + "name": "singleton", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "T0" + ], + "return": [ + "vector" + ] + }, + { + "name": "swap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "swap_remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&mut vector", + "u64" + ], + "return": [ + "T0" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e010018021844035c960104f20128059a02a80207c204920708d40b2006f40b3210a60cce030af40f89010bfd10040c811198060d9917200eb917180000000100020003000400050006000700080009000a000b000c0600000d04010400000e0600000f060000100600001104000012080104000414070100000615070200000000071607000b2e07000332040106010837040203010001001300010104001702030104001804050104001904030104001a04030104001b04010104001c04010104001d06070104001e04080104001f09070104043a0c010100043b0c0d0100023c030300093d070300043e08100100083f120702030003401407010608411617020300083b191a0203000842071d0203040143061e010605440622000b45072301000a460705000447250801000a0b0b0b0e080f111013111106081211000813111413141f142014211608101f040810201808102101060b01010900010108050509000a0204030b0701040b080208090a020103020503010a0201060c000109000506090005030301020104010401060b0701090001060900100504010303070b0c02030b01010900030b070109000a020b080208090a0204030b0701040403070b060109000102010b0701090002030b0101090003070b0c02090009010900090101080002070b0b010900090002070b01010900070b0601090002070b0c02090009010900010709010701030304060b01010900060b060109000402060b0c02090009010900010609010301070b01010900070b0601090004030b0c02030b0101090008050b06010900010b0c0209000901010b0b010900010802010803010804010501080a04070b010109000301070b0601090001070b0701090006766f74696e67076163636f756e74056572726f72056576656e74066f7074696f6e067369676e65720a73696d706c655f6d617006737472696e67057461626c650974696d657374616d70137472616e73616374696f6e5f636f6e7465787409747970655f696e666f1343726561746550726f706f73616c4576656e740850726f706f73616c125265676973746572466f72756d4576656e740f5265736f6c766550726f706f73616c09566f74654576656e740c566f74696e674576656e74730b566f74696e67466f72756d1563616e5f62655f7265736f6c7665645f6561726c79064f7074696f6e0953696d706c654d617006537472696e670f6372656174655f70726f706f73616c126765745f657865637574696f6e5f686173681c6765745f70726f706f73616c5f65787069726174696f6e5f73656373126765745f70726f706f73616c5f73746174650b69735f7265736f6c7665641069735f766f74696e675f636c6f736564087265676973746572077265736f6c766504766f74650b70726f706f73616c5f69641f6561726c795f7265736f6c7574696f6e5f766f74655f7468726573686f6c640e657865637574696f6e5f686173680f65787069726174696f6e5f73656373086d65746164617461126d696e5f766f74655f7468726573686f6c640870726f706f73657211657865637574696f6e5f636f6e74656e74126372656174696f6e5f74696d655f73656373097965735f766f746573086e6f5f766f746573147265736f6c7574696f6e5f74696d655f736563730f686f7374696e675f6163636f756e741270726f706f73616c5f747970655f696e666f0854797065496e666f0e7265736f6c7665645f6561726c79096e756d5f766f746573166372656174655f70726f706f73616c5f6576656e74730b4576656e7448616e646c651572656769737465725f666f72756d5f6576656e7473177265736f6c76655f70726f706f73616c5f6576656e74730b766f74655f6576656e74730970726f706f73616c73055461626c65066576656e7473106e6578745f70726f706f73616c5f69640769735f736f6d6506626f72726f7710696e76616c69645f617267756d656e740b6e6f775f7365636f6e647304736f6d65036164640a656d69745f6576656e740a626f72726f775f6d7574036e6577106e65775f6576656e745f68616e646c650a616464726573735f6f6607747970655f6f660f6765745f7363726970745f68617368076578747261637400000000000000000000000000000000000000000000000000000000000000010308030000000000000003080200000000000000030804000000000000000308010000000000000003080000000000000000126170746f733a3a6d657461646174615f7630b903040100000000000000254550524f504f53414c5f455845435554494f4e5f484153485f4e4f545f4d41544348494e474743757272656e7420736372697074277320657865637574696f6e206861736820646f6573206e6f74206d6174636820746865207370656369666965642070726f706f73616c277302000000000000001c4550524f504f53414c5f43414e4e4f545f42455f5245534f4c5645447050726f706f73616c2063616e6e6f74206265207265736f6c7665642e2045697468657220766f74696e67206475726174696f6e20686173206e6f74207061737365642c206e6f7420656e6f75676820766f7465732c206f7220666577657220796573207468616e206e6f20766f74657303000000000000001a4550524f504f53414c5f414c52454144595f5245534f4c5645442a50726f706f73616c2063616e6e6f74206265207265736f6c766564206d6f7265207468616e206f6e636504000000000000001e4550524f504f53414c5f454d5054595f455845435554494f4e5f484153483650726f706f73616c2063616e6e6f7420636f6e7461696e20616e20656d70747920657865637574696f6e2073637269707420686173680002062003210b070104220a022303240b080208090a02250401020c2605270b07010900240b080208090a022803220a0225042303210b07010429042a041b012b030202022c052d080a030204200329042a042f0104020220033003050204310b0b010800330b0b010802340b0b010803350b0b010804060203360b0c02030b01010900380805390306080108000100000a260a0037003800030505220a0037003801140c020a003701140a0226031105160b0001080c01051c0b003702140b02260c010b01031f0521080205240b0001090201010001060e4a0e03410f0600000000000000002403080702110c270b013c000c170a173703140c160a17370314060100000000000000160a173603150a1736040c0d0a160c0c0b000c08110d0c0e0b0238020c0f0a030c100a070c110a040c120a050c130a060c140b0d0b0c0b080b0f0b110b0e0b100b120b130b143200000000000000000000000000000000320000000000000000000000000000000009060000000000000000390138030b1736050f060a160b060b030b050b070b04120038040b16020201000106150c0b003c000c030b0336040b0138050c020b02370614020301000106150c0b003c000c030b0336040b0138050c020b0237071402040100010618360a000a013806030505320b003d000c070b0737040b0138070c060a063701140c080a063702140c050a080a0524031a05230b080b05160b06370814260c0205270b0601090c020b02032a052d07030c03052f07000c030b030c04053407040c040b04020501000106150c0b003c000c030b0336040b0138050c020b023709140206010001061b1a0b003c000c040b0436040b0138050c030a032e3808030d05120b0301080c020518110d0b03370714260c020b0202070100001c1d38090c020a00380a0a00380b0a00380c0a00380d12050c030b020b0306000000000000000039000c040d0436050f0b0a001115380e1202380f0b000b043f0002080100010624490a000a0138100c030b03070321030b0701110c270b003c000c050a0536040a0138050c020a0237091420031f0b05010b02010700110c270a022e38080c04080a02360915110d0a02360a1511170a023706142103380b05010b02010703110c270b0536050f0d0b010a023701140a023702140b04120338110b02360b381202090100010615260b013c000c060a0636040a0238050c050b04030b05150a053701140a0335160b05360115051e0a053702140a0335160b053602150b0636050f0f0b020b0312043813020107010801090602060006010500010401060105010a0501010b0502010105030008010802080308040805080708080809080a080c080e0800", + "abi": { + "address": "0x1", + "name": "voting", + "friends": [], + "exposed_functions": [ + { + "name": "can_be_resolved_early", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::voting::Proposal" + ], + "return": [ + "bool" + ] + }, + { + "name": "create_proposal", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "address", + "T0", + "vector", + "u128", + "u64", + "0x1::option::Option", + "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_execution_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "vector" + ] + }, + { + "name": "get_proposal_expiration_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_proposal_state", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "is_resolved", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_voting_closed", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "bool" + ] + }, + { + "name": "register", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "resolve", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "address", + "u64" + ], + "return": [ + "T0" + ] + }, + { + "name": "vote", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&T0", + "address", + "u64", + "u64", + "bool" + ], + "return": [] + } + ], + "structs": [ + { + "name": "CreateProposalEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "early_resolution_vote_threshold", + "type": "0x1::option::Option" + }, + { + "name": "execution_hash", + "type": "vector" + }, + { + "name": "expiration_secs", + "type": "u64" + }, + { + "name": "metadata", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + }, + { + "name": "min_vote_threshold", + "type": "u128" + } + ] + }, + { + "name": "Proposal", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "fields": [ + { + "name": "proposer", + "type": "address" + }, + { + "name": "execution_content", + "type": "0x1::option::Option" + }, + { + "name": "metadata", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + }, + { + "name": "creation_time_secs", + "type": "u64" + }, + { + "name": "execution_hash", + "type": "vector" + }, + { + "name": "min_vote_threshold", + "type": "u128" + }, + { + "name": "expiration_secs", + "type": "u64" + }, + { + "name": "early_resolution_vote_threshold", + "type": "0x1::option::Option" + }, + { + "name": "yes_votes", + "type": "u128" + }, + { + "name": "no_votes", + "type": "u128" + }, + { + "name": "is_resolved", + "type": "bool" + }, + { + "name": "resolution_time_secs", + "type": "u64" + } + ] + }, + { + "name": "RegisterForumEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "hosting_account", + "type": "address" + }, + { + "name": "proposal_type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + }, + { + "name": "ResolveProposal", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "yes_votes", + "type": "u128" + }, + { + "name": "no_votes", + "type": "u128" + }, + { + "name": "resolved_early", + "type": "bool" + } + ] + }, + { + "name": "VoteEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "num_votes", + "type": "u64" + } + ] + }, + { + "name": "VotingEvents", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "create_proposal_events", + "type": "0x1::event::EventHandle<0x1::voting::CreateProposalEvent>" + }, + { + "name": "register_forum_events", + "type": "0x1::event::EventHandle<0x1::voting::RegisterForumEvent>" + }, + { + "name": "resolve_proposal_events", + "type": "0x1::event::EventHandle<0x1::voting::ResolveProposal>" + }, + { + "name": "vote_events", + "type": "0x1::event::EventHandle<0x1::voting::VoteEvent>" + } + ] + }, + { + "name": "VotingForum", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [ + "store" + ] + } + ], + "fields": [ + { + "name": "proposals", + "type": "0x1::table::Table>" + }, + { + "name": "events", + "type": "0x1::voting::VotingEvents" + }, + { + "name": "next_proposal_id", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000f01001e021e560374a902049d032a05c703f50207bc06cd0c0889132006a913a40410cd17c8080a9520660bfb20040cff20d90a0dd82b120eea2b020fec2b0a00050006000700080009000a000b000c000d000e000f001000110012001300140c0000150401000100160600001706000018080000190600001a0200001b0300001c0600001d020006220600042f04010601093e070100000d3f07000c4304020301000102570700085707000258070008580700001e000100001f000100002002010000210003000023040500002406030000250700000026000100002708010000280009000029000a00002a000b00002b000b00002c080000002d000c00002e040c000030040d010600310e0c000032000c010000330f0c000034060c000035100a0003480b0b0003490b0b00014a120a0100064b1405000430050d0106094c0c170100034d0b0b000a4e040000094f1b09010003500b0b000e511e0c010007520a0a0005530a000003540b0b000b55040c000c560c2202030402590a2500025a260a00025b0a2700025c2909010208590a2a00085a2b0a00085b0a2c00085c2d090102095d2e090100095e2f230100095f2f0c01000d600c3101000461320c010603620b0b000c4f34090203000c6335360203000c64370c02030018001a151a161b001e00201325211a2329282d282e002f00300031233215342135213621321629392d390105010c02060c05020c080801060c01080a02060c0a020206050a02010608080101010a02010300010b0b01090005060c0a02020a020507060c020a02020a020a020a0204020a020a02060807070a020b0b01080203080a080a0b0b0108030c01060900010202050703010802010803010b0c010900010805010808020708000502060b0c0109000609000b0101010101010101010c08080405050c080802070a09000a09000106050207080003020505010b0e02090009010109000a01070800050a020a020809080f08100811081201080f0106080f0108110108090306081106080f09000108100106081001081203060812060810090001060b0c01090002070b0c01090009000107080001080d02070b0b010900090010070b0e0205050507080007080005070b0e020505080705050a020a020a02080f0810050a0202060b0e0209000901090002070b0e0209000901090001090103070b0e020900090109000901060a020a02080f0810081108120108070d6170746f735f6163636f756e7404636f696e0767656e65736973107265736f757263655f6163636f756e74167472616e73616374696f6e5f76616c69646174696f6e076163636f756e74036263730765643235353139056572726f72056576656e740866726f6d5f626373046775696404686173680d6d756c74695f65643235353139066f7074696f6e067369676e65721073797374656d5f616464726573736573057461626c6509747970655f696e666f06766563746f72074163636f756e740f4361706162696c6974794f6666657211436f696e52656769737465724576656e74104b6579526f746174696f6e4576656e74124f726967696e6174696e674164647265737312526f746174696f6e4361706162696c69747925526f746174696f6e4361706162696c6974794f6666657250726f6f664368616c6c656e676516526f746174696f6e50726f6f664368616c6c656e6765105369676e65724361706162696c697479235369676e65724361706162696c6974794f6666657250726f6f664368616c6c656e67650e6372656174655f6163636f756e74186372656174655f6163636f756e745f756e636865636b6564186372656174655f617574686f72697a65645f7369676e6572216372656174655f6672616d65776f726b5f72657365727665645f6163636f756e7404475549440b6372656174655f67756964176372656174655f7265736f757263655f6163636f756e74176372656174655f7265736f757263655f616464726573730d6372656174655f7369676e65721d6372656174655f7369676e65725f776974685f6361706162696c697479096578697374735f6174166765745f61757468656e7469636174696f6e5f6b65791a6765745f677569645f6e6578745f6372656174696f6e5f6e756d136765745f73657175656e63655f6e756d6265721d6765745f7369676e65725f6361706162696c6974795f6164647265737319696e6372656d656e745f73657175656e63655f6e756d6265720a696e697469616c697a650b4576656e7448616e646c65106e65775f6576656e745f68616e646c65176f666665725f7369676e65725f6361706162696c6974790d72656769737465725f636f696e19726f746174655f61757468656e7469636174696f6e5f6b657922726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c2e7665726966795f6b65795f726f746174696f6e5f7369676e61747572655f616e645f6765745f617574685f6b65791261757468656e7469636174696f6e5f6b65790f73657175656e63655f6e756d62657211677569645f6372656174696f6e5f6e756d14636f696e5f72656769737465725f6576656e7473136b65795f726f746174696f6e5f6576656e747319726f746174696f6e5f6361706162696c6974795f6f66666572177369676e65725f6361706162696c6974795f6f6666657203666f72064f7074696f6e0854797065496e666f166f6c645f61757468656e7469636174696f6e5f6b6579166e65775f61757468656e7469636174696f6e5f6b65790b616464726573735f6d6170055461626c6511726563697069656e745f616464726573730a6f726967696e61746f721063757272656e745f617574685f6b65790e6e65775f7075626c69635f6b65790e616c72656164795f65786973747310696e76616c69645f617267756d656e7408746f5f627974657306637265617465046e6f6e65096e6f745f666f756e640a616464726573735f6f6608636f6e7461696e73117065726d697373696f6e5f64656e69656406617070656e6408736861335f3235360a746f5f616464726573730c6f75745f6f665f72616e6765166173736572745f6170746f735f6672616d65776f726b036e657714556e76616c6964617465645075626c69634b6579095369676e6174757265256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f62797465732c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b6579186e65775f7369676e61747572655f66726f6d5f6279746573197369676e61747572655f7665726966795f7374726963745f740769735f736f6d6504737761700466696c6c07747970655f6f660a656d69745f6576656e740f756e61757468656e746963617465640672656d6f766503616464000000000000000000000000000000000000000000000000000000000000000103080100000000000000030802000000000000000308050000000000000002010003080a0000000000000003080f0000000000000003080e0000000000000003080d000000000000000308080000000000000003080c00000000000000030804000000000000000308090000000000000003080b000000000000000308060000000000000003080300000000000000030807000000000000000410ffffffffffffffff0000000000000000020101052000000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000005052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000008052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000a126170746f733a3a6d657461646174615f7630b3081000000000000000000e454432353531395f534348454d4500010000000000000017454143434f554e545f414c52454144595f455849535453164163636f756e7420616c726561647920657869737473020000000000000017454143434f554e545f444f45535f4e4f545f4558495354164163636f756e7420646f6573206e6f742065786973740300000000000000184553455155454e43455f4e554d4245525f544f4f5f4249473353657175656e6365206e756d626572206578636565647320746865206d6178696d756d2076616c756520666f7220612075363404000000000000001d454d414c464f524d45445f41555448454e5449434154494f4e5f4b4559355468652070726f76696465642061757468656e7469636174696f6e206b65792068617320616e20696e76616c6964206c656e6774680500000000000000184543414e4e4f545f52455345525645445f414444524553533143616e6e6f7420637265617465206163636f756e742062656361757365206164647265737320697320726573657276656406000000000000000b454f55545f4f465f4741532a5472616e73616374696f6e2065786365656465642069747320616c6c6f6361746564206d6178206761730700000000000000194557524f4e475f43555252454e545f5055424c49435f4b45592b5370656369666965642063757272656e74207075626c6963206b6579206973206e6f7420636f727265637408000000000000001b45494e56414c49445f50524f4f465f4f465f4b4e4f574c45444745535370656369666965642070726f6f66206f66206b6e6f776c6564676520726571756972656420746f2070726f7665206f776e657273686970206f662061207075626c6963206b657920697320696e76616c696409000000000000000e454e4f5f4341504142494c495459535468652063616c6c657220646f6573206e6f7420686176652061206469676974616c2d7369676e61747572652d6261736564206361706162696c69747920746f2063616c6c20746869732066756e6374696f6e0a000000000000002345494e56414c49445f4143434550545f524f544154494f4e5f4341504142494c495459515468652063616c6c657220646f6573206e6f74206861766520612076616c696420726f746174696f6e206361706162696c697479206f666665722066726f6d20746865206f74686572206163636f756e740b0000000000000024454e4f5f56414c49445f4652414d45574f524b5f52455345525645445f41444452455353000c000000000000000f45494e56414c49445f534348454d45000d000000000000001c45494e56414c49445f4f524947494e4154494e475f41444452455353000e000000000000001845494e56414c49445f4341504142494c4954595f54595045000f000000000000002145494e56414c49445f4143434550545f5349474e45525f4341504142494c49545900000207360a0237033803390b0b0108023a0b0b0108033b0b010108053c0b010108080102013d0b0c010502020112080d030202400a02410a02040201420b0e020505050201050506020237034405070204370345054605470a020802010505090202370344050118011900030000091b0a00290020030707001116270a00071222030c05110a000713220c010513090c010b01031807021117270b0011010201000000112c0a0011070c070e0038000c010e01411306200000000000000021030e070a1117270600000000000000000c030a000d0311190c040b0438010c020b000d0311190c050b0538020c060e070b010600000000000000000b030b020b06380339003803390112002d000b070202010001001a1a0a01110903080b00010701111c270a012a000c020b00111d0c030b02100037000e03380403170705111c270b01110702030300001c6a0a0007132103050508080c01050c0a000714210c010b01030f0512080c0205160a000715210c020b020319051c080c0305200a000716210c030b0303230526080c04052a0a000717210c040b04032d0530080c0505340a000718210c050b050337053a080c06053e0a000719210c060b0603410544080c0705480a00071a210c070b07034b054e080c0805520a00071b210c080b0803550558080c09055c0a00071c210c090b090361070c111f270a0011010c0a0b0012080c0b0b0a0b0b0204010001001a0b0b00111d0c020a022a000c010b020b010f02111902050100001d100b00111d0c020e020b0111060c030a0311010c040b0312080c050b040b0502060100000a0a0b0038000c020d020b0138050b02112111220207000200080100001f070b0010030c010b0114110702090100000c030b002900020a010001000c050b002b00100414020b010001000c050b002b00100214020c010001000c050b002b00100514020d0100000c040b00100314020e0300010020180b002a000c010a011005140c020a023507102303110b0101070e1123270b02060100000000000000160b010f0515020f0300000c070a0011240b00380612042d040210010001000c040b0011043807021101040100247a0b00111d0c070a0711090307050b0a0411090c05050d090c050b0503120701111c270b072a000c060a061005140a0412090c0a0a020703210320053f0b0311260c0b0e0b11270c080a061004140b082103310b0601070f1117270b0111280c0d0e0d0e0b0b0a3808033e0b0601070811172705670b02071121034405620b03112a0c0c0e0c112b0c090a061004140b092103550b0601070f1117270b01112c0c0e0e0e0e0c0b0a380903670b060107081117270b060107091117270a0610003700380a036d05740b060f0036000b04380b0105790b060f0036000b04380c02120300010030090b002a000c010b010f06380d1202380e02130104020004338a010b00111d0c0b0a0b110903090701111c270a0b2a000c090a01070321031105230a0211260c130e1311270c110a091004140b112103220b0901070f113327053e0a01071121032805390a02112a0c140e14112b0c120a091004140b1221033e0b0901070f1133270b090107091117270a0910041411220c0f0b091005140a0b0b0f0a0412070c0d0b010b020b050e0d11150c100b030b040b060e0d11150c1607132a040f070c0c0b1011220c0e0a1611220c150a0c0a0e0c080c070b072e0b08380f036b05760a0b0a0c0b0e38102103760b0c010707111c270b0c0b150a0b38110b0b2a000c0a0a0a0f080a0a1004140a16120338120b160b0a0f04150214030001001a190b00111d0c030a03110903090700111c270e014113062000000000000000210311070a1117270b032a000c020b010b020f0415021500000038380a00070321030505180b0111260c060b0211280c080e080e060b03143813031407081117270e0611270c0505360b00071121031d052c0b01112a0c070b02112c0c090e090e070b03143814033107081117270b030107091117270e07112b0c040b040c050b050200060100000208000000000100030400000401190000000100020003000400", + "abi": { + "address": "0x1", + "name": "account", + "friends": [ + "0x1::aptos_account", + "0x1::coin", + "0x1::genesis", + "0x1::resource_account", + "0x1::transaction_validation" + ], + "exposed_functions": [ + { + "name": "create_account", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "signer" + ] + }, + { + "name": "create_authorized_signer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [ + "signer" + ] + }, + { + "name": "create_framework_reserved_account", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "signer", + "0x1::account::SignerCapability" + ] + }, + { + "name": "create_guid", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "0x1::guid::GUID" + ] + }, + { + "name": "create_resource_account", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [ + "signer", + "0x1::account::SignerCapability" + ] + }, + { + "name": "create_resource_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&address", + "vector" + ], + "return": [ + "address" + ] + }, + { + "name": "create_signer_with_capability", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::account::SignerCapability" + ], + "return": [ + "signer" + ] + }, + { + "name": "exists_at", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "get_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "vector" + ] + }, + { + "name": "get_guid_next_creation_num", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_sequence_number", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_signer_capability_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::account::SignerCapability" + ], + "return": [ + "address" + ] + }, + { + "name": "increment_sequence_number", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "new_event_handle", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop", + "store" + ] + } + ], + "params": [ + "&signer" + ], + "return": [ + "0x1::event::EventHandle" + ] + }, + { + "name": "offer_signer_capability", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "u8", + "vector", + "address" + ], + "return": [] + }, + { + "name": "register_coin", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "rotate_authentication_key", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u8", + "vector", + "u8", + "vector", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "rotate_authentication_key_internal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Account", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "authentication_key", + "type": "vector" + }, + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "guid_creation_num", + "type": "u64" + }, + { + "name": "coin_register_events", + "type": "0x1::event::EventHandle<0x1::account::CoinRegisterEvent>" + }, + { + "name": "key_rotation_events", + "type": "0x1::event::EventHandle<0x1::account::KeyRotationEvent>" + }, + { + "name": "rotation_capability_offer", + "type": "0x1::account::CapabilityOffer<0x1::account::RotationCapability>" + }, + { + "name": "signer_capability_offer", + "type": "0x1::account::CapabilityOffer<0x1::account::SignerCapability>" + } + ] + }, + { + "name": "CapabilityOffer", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "for", + "type": "0x1::option::Option
" + } + ] + }, + { + "name": "CoinRegisterEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + }, + { + "name": "KeyRotationEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "old_authentication_key", + "type": "vector" + }, + { + "name": "new_authentication_key", + "type": "vector" + } + ] + }, + { + "name": "OriginatingAddress", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "address_map", + "type": "0x1::table::Table" + } + ] + }, + { + "name": "RotationCapability", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account", + "type": "address" + } + ] + }, + { + "name": "RotationCapabilityOfferProofChallenge", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "recipient_address", + "type": "address" + } + ] + }, + { + "name": "RotationProofChallenge", + "is_native": false, + "abilities": [ + "copy", + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "originator", + "type": "address" + }, + { + "name": "current_auth_key", + "type": "address" + }, + { + "name": "new_public_key", + "type": "vector" + } + ] + }, + { + "name": "SignerCapability", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account", + "type": "address" + } + ] + }, + { + "name": "SignerCapabilityOfferProofChallenge", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "sequence_number", + "type": "u64" + }, + { + "name": "recipient_address", + "type": "address" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000c020c1c03287904a1010805a9015407fd01b90508b6072006d6072b108108f8010af9091b0b940a020c960a95020dab0c06000000010002000300040005000607000007020100000008070000090700040d07010000051d0700000a000100000b02030102000c000400000e000500000f000000001006040000110704000012080500001300090000140a000000150b090000160c090000170d09010200180800000019080000001a070000001b070000021f10100005200e11010004210212010004220e12010003230000000124130001001202130614061603010a02010800010900010b01010900010802010b040108030108030106080301060802010101060800030608000608020a02030a020a020a020306080006080209000001020103010805010b0401090001060900076564323535313903626373056572726f720468617368066f7074696f6e09747970655f696e666f095369676e61747572650d5369676e65644d65737361676514556e76616c6964617465645075626c69634b65791256616c6964617465645075626c69634b6579186e65775f7369676e61747572655f66726f6d5f6279746573126e65775f7369676e65645f6d657373616765256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573064f7074696f6e236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573267075626c69635f6b65795f62797465735f746f5f61757468656e7469636174696f6e5f6b65791b7075626c69635f6b65795f696e746f5f756e76616c696461746564197075626c69635f6b65795f746f5f756e76616c696461746564137075626c69635f6b65795f76616c69646174651c7075626c69635f6b65795f76616c69646174655f696e7465726e616c127369676e61747572655f746f5f6279746573177369676e61747572655f7665726966795f737472696374207369676e61747572655f7665726966795f7374726963745f696e7465726e616c197369676e61747572655f7665726966795f7374726963745f742c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791f756e76616c6964617465645f7075626c69635f6b65795f746f5f62797465732a76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791d76616c6964617465645f7075626c69635f6b65795f746f5f62797465730562797465730854797065496e666f05696e6e657210696e76616c69645f617267756d656e7407747970655f6f6604736f6d65046e6f6e6508736861335f32353608746f5f6279746573000000000000000000000000000000000000000000000000000000000000000103080100000000000000030802000000000000000308200000000000000003084000000000000000020100126170746f733a3a6d657461646174615f7630e30102010000000000000013455f57524f4e475f5055424b45595f53495a455357726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207075626c6963206b65792e020000000000000016455f57524f4e475f5349474e41545552455f53495a455257726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207369676e61747572652e0002011c0a020102020508051e09000202011c0a020302011c0a020102000100000e0b0e00410f070321030807011111270b00120002010100000e0438000b00390002020100000e0b0e00410f070221030807001111270b0012020203010000050d0a001108030405090b00120338010c01050b38020c010b0102040000000e060d000704440f0b00111502050100000e050e00100014120202060100000e050b00100014120202070100000e050b0010011411030208000200090100000e040b00100214020a0100000e090b001002140b011001140b02110b020b0002000c010000030e38000b0239000c030b001002140b011001140e033803110b020d0100000e050b001001141104020e0100000e040b00100114020f0100000e050b00100014110402100100000e040b001000140203000200000000", + "abi": { + "address": "0x1", + "name": "ed25519", + "friends": [], + "exposed_functions": [ + { + "name": "new_signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ed25519::Signature" + ] + }, + { + "name": "new_signed_message", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::ed25519::SignedMessage" + ] + }, + { + "name": "new_unvalidated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "new_validated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "public_key_into_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_to_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_validate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::UnvalidatedPublicKey" + ], + "return": [ + "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::Signature" + ], + "return": [ + "vector" + ] + }, + { + "name": "signature_verify_strict", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::Signature", + "&0x1::ed25519::UnvalidatedPublicKey", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "signature_verify_strict_t", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&0x1::ed25519::Signature", + "&0x1::ed25519::UnvalidatedPublicKey", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "unvalidated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "unvalidated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "Signature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "SignedMessage", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "type_info", + "type": "0x1::type_info::TypeInfo" + }, + { + "name": "inner", + "type": "T0" + } + ] + }, + { + "name": "UnvalidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ValidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b0100280228180340bb0104fb010405ff01b70107b603e907089f0b2006bf0bba030af90e170c900fe8030df812100000000100020003000400050006000700080009000a000b000c000d000e000f00100011001200130014030008170501000103180800012d0600083405010001001500010000160201000019030400001a050100001b030100012408090008250301010003260b01000c270c01000c280d01000c290d01000c2a0e0100032b0301000c2c010100012e08100001160301001116110100042f120100123013140100091605010013161501000c160301000d161601000a160501000231030100083203010006161701000b1603010005161501000e160301000f3303010003160318000c3519010010361a0100013705010003381c0100071b030100060a120802060c0a0800000c0a0202030a02030303030103030301060c010b0101080202060c0a02080c0c010303060c060c0608000108000105010c01080203060c050304060c03050504060c050a020a0202060c0507050c0c08030a05080303020c080305060c0a020a020a020a0203060c05080301060a0900010102060c0308060c0303030103030302060c02020b040108020b0101080202060c0b0101080202060c0b04010802020c0b0101080203060c060c0b010108020767656e65736973076163636f756e741261676772656761746f725f666163746f72790a6170746f735f636f696e106170746f735f676f7665726e616e636505626c6f636b08636861696e5f69640c636861696e5f73746174757304636f696e10636f6e73656e7375735f636f6e6669670c6761735f7363686564756c650f7265636f6e66696775726174696f6e057374616b650e7374616b696e675f636f6e6669670d73746174655f73746f726167650974696d657374616d700f7472616e73616374696f6e5f666565167472616e73616374696f6e5f76616c69646174696f6e06766563746f720776657273696f6e1656616c696461746f72436f6e66696775726174696f6e1c6372656174655f696e697469616c697a655f76616c696461746f72730a696e697469616c697a650e4d696e744361706162696c697479094170746f73436f696e15696e697469616c697a655f6170746f735f636f696e28696e697469616c697a655f636f72655f7265736f75726365735f616e645f6170746f735f636f696e0f7365745f67656e657369735f656e640d6f776e65725f61646472657373106f70657261746f725f616464726573730d766f7465725f616464726573730c7374616b655f616d6f756e7410636f6e73656e7375735f7075626b65791370726f6f665f6f665f706f7373657373696f6e116e6574776f726b5f6164647265737365731b66756c6c5f6e6f64655f6e6574776f726b5f6164647265737365730e6372656174655f6163636f756e74087265676973746572046d696e7416696e697469616c697a655f7374616b655f6f776e657214726f746174655f636f6e73656e7375735f6b6579257570646174655f6e6574776f726b5f616e645f66756c6c6e6f64655f6164647265737365731b6a6f696e5f76616c696461746f725f7365745f696e7465726e616c1064657374726f795f6d696e745f6361700c6f6e5f6e65775f65706f6368105369676e65724361706162696c697479216372656174655f6672616d65776f726b5f72657365727665645f6163636f756e741073746f72655f7369676e65725f6361700869735f656d7074791d696e697469616c697a655f61676772656761746f725f666163746f727918696e697469616c697a655f737570706c795f636f6e666967147365745f74696d655f6861735f737461727465640e4275726e4361706162696c6974791973746f72655f6170746f735f636f696e5f6d696e745f6361701973746f72655f6170746f735f636f696e5f6275726e5f63617022726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c1b636f6e6669677572655f6163636f756e74735f666f725f746573740000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010a02100f7363726970745f70726f6c6f6775650a02100f6d6f64756c655f70726f6c6f6775650a021c1b6d756c74695f6167656e745f7363726970745f70726f6c6f6775650a0209086570696c6f6775650a05a1020900000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000009000000000000000000000000000000000000000000000000000000000000000a0520000000000000000000000000000000000000000000000000000000000a550c180002081c051d051e051f03200a02210a02220a02230a0200000000067e0600000000000000000c050e0141070c060a050a0623030a057a0e010a0542070c090a0910001411050c020e020c080a080c070a091001140a0910001422032005290b07010a0910011411050c030e030c070a091002140a09100014220332053b0a091002140a09100114220c04053d090c040b04034005450a091002141105010a0838000a000a091000140a0910031411070b080a091003140a091001140a0910021411080a070a091000140a091004140a0910051411090a070a091000140a091006140a09100714110a0b070b09100014110b0b05060100000000000000160c0505050b00110c110d02010000000f4e0700110e0c0f0c0e0e0e110f0e0e070107020703070411100e0e07000b0f111107050c100600000000000000000c120e10380120031905290d1045080c0c0a0c110e0c110c0d0e0d0b0c0b1111110b12060100000000000000160c1205140e0e0b0311130e0e0b0211140e0e11150e0e0b050b060b070b080b090b0a0b0b11160e0e0b0011170e0e11180e0e11190e0e0b01111a0e0e111b0e0e0b04111c0e0e111d0e0e111e0202000000180c0a00111f0c020c010a000a0211200b000b0111210b0202030000001b0e070611050c020e020b0111220a0011020c030b000e020b031123020400000001030b001124020000000100020003000400050006000700", + "abi": { + "address": "0x1", + "name": "genesis", + "friends": [], + "exposed_functions": [], + "structs": [ + { + "name": "ValidatorConfiguration", + "is_native": false, + "abilities": [ + "copy", + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "owner_address", + "type": "address" + }, + { + "name": "operator_address", + "type": "address" + }, + { + "name": "voter_address", + "type": "address" + }, + { + "name": "stake_amount", + "type": "u64" + }, + { + "name": "consensus_pubkey", + "type": "vector" + }, + { + "name": "proof_of_possession", + "type": "vector" + }, + { + "name": "network_addresses", + "type": "vector" + }, + { + "name": "full_node_network_addresses", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000a020a0803122d053f110750fe0108ce022006ee023610a403cf010af3040a0cfd04650de205020fe4050200010002000300040005000608000007080000080001000009020100000a000100040d020100040e020100030f02040001100505000111050500021201010002060c030001060c0207080103010501030767656e657369730776657273696f6e056572726f720f7265636f6e66696775726174696f6e067369676e65721073797374656d5f6164647265737365731453657456657273696f6e4361706162696c6974790756657273696f6e0a696e697469616c697a6513696e697469616c697a655f666f725f746573740b7365745f76657273696f6e0b64756d6d795f6669656c64056d616a6f72166173736572745f6170746f735f6672616d65776f726b146173736572745f636f72655f7265736f757263650a616464726573735f6f66117065726d697373696f6e5f64656e69656410696e76616c69645f617267756d656e740b7265636f6e6669677572650000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630ba010201000000000000001d45494e56414c49445f4d414a4f525f56455253494f4e5f4e554d4245524b537065636966696564206d616a6f722076657273696f6e206e756d626572206d7573742062652067726561746572207468616e2063757272656e742076657273696f6e206e756d6265722e02000000000000000f454e4f545f415554484f52495a45442e4163636f756e74206973206e6f7420617574686f72697a656420746f206d616b652074686973206368616e67652e0002010b010102010c0300030000010b0a0011030a000b0112012d010b000912002d00020100000001070a0011040b000912002d00020201040101031c0b00110529000307070111062707022b011000140c030b030a01230313070011072707022a010c020b010b020f00151108020100000000", + "abi": { + "address": "0x1", + "name": "version", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "set_version", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "SetVersionCapability", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "Version", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "major", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602061e0324980104bc010c05c801a20107ea02880708f2092006920ab60110c80b650aad0c240cd10cf3020dc40f0c000000010002000307000004070000050700000607000007070000080700020e070100000009000100000a000200000b030200000c040500000d040600000f0708000010070600001102090000120a02000013020b0000140c0d0000150e020000160f0200001702100000181101000019020100001a110200001b020100001c120100001d130100001e140100001f1501000020160100002115010000221701000023180100002415010001261a1a0002271d1e01000228191e01001c1c1d1c1c1f1d1f1c201d20010608000101010a0201060801010a0804010801020a0201010a0805010b0601080001080201060802010b06010803020a02060802010b06010804010608030106080401080501060805030608000a08040a0a02030a020a08040a0a02030608000608010a02030a020a020a02030608050608030a02020a020a02030608050608040a02000103030b060108000a0201010800010900010b0601090001080301080408626c733132333831056572726f72066f7074696f6e14416767724f724d756c74695369676e617475726515416767725075626c69634b65797357697468506f501150726f6f664f66506f7373657373696f6e095075626c69634b6579105075626c69634b657957697468506f50095369676e617475726526616767725f6f725f6d756c74695f7369676e61747572655f73756267726f75705f636865636b20616767725f6f725f6d756c74695f7369676e61747572655f746f5f6279746573196167677265676174655f7075626b65795f746f5f6279746573116167677265676174655f7075626b6579731a6167677265676174655f7075626b6579735f696e7465726e616c064f7074696f6e146167677265676174655f7369676e6174757265731d6167677265676174655f7369676e6174757265735f696e7465726e616c1e70726f6f665f6f665f706f7373657373696f6e5f66726f6d5f62797465731c70726f6f665f6f665f706f7373657373696f6e5f746f5f6279746573157075626c69635f6b65795f66726f6d5f62797465731e7075626c69635f6b65795f66726f6d5f62797465735f776974685f706f70137075626c69635f6b65795f746f5f62797465731c7075626c69635f6b65795f776974685f706f705f746f5f6279746573147369676e61747572655f66726f6d5f6279746573187369676e61747572655f73756267726f75705f636865636b217369676e61747572655f73756267726f75705f636865636b5f696e7465726e616c127369676e61747572655f746f5f62797465731876616c69646174655f7075626b65795f696e7465726e616c1a7665726966795f6167677265676174655f7369676e6174757265237665726966795f6167677265676174655f7369676e61747572655f696e7465726e616c157665726966795f6d756c74697369676e61747572651e7665726966795f6d756c74697369676e61747572655f696e7465726e616c177665726966795f6e6f726d616c5f7369676e6174757265207665726966795f6e6f726d616c5f7369676e61747572655f696e7465726e616c237665726966795f70726f6f665f6f665f706f7373657373696f6e5f696e7465726e616c167665726966795f7369676e61747572655f73686172651f7665726966795f7369676e61747572655f73686172655f696e7465726e616c05627974657310696e76616c69645f617267756d656e7404736f6d65046e6f6e65000000000000000000000000000000000000000000000000000000000000000103080100000000000000030830000000000000000a0231308a53e7ae5270e3e765cd8a4032c2e77c6f7e87a44ebb85bf28a4d7865565698f975346714262f9e47c6f3e0d5d9516600a026160a01a65854f987d3434149b7f08f70730e30b241984e8712bc2aca885d632aafced4c3f661209debb6b1c8601326623cc16ca2f6c9edc53b7b88b7435fb6b05ddece418d2c34dc6aca2f5a11a79e67774582c14084a01dcb7820e4cb4bad0ea8d03086000000000000000126170746f733a3a6d657461646174615f7630510101000000000000000d455a45524f5f5055424b455953395468652063616c6c65722077617320737570706f73656420746f20696e707574206f6e65206f72206d6f7265207075626c6963206b6579732e000201250a02010201250a02020201250a02030201250a02040201250a02050201250a020001000019050b00100014110f020101000019040b00100014020201000019040b001001140203010000060c0b0011040c020c010b0203090700111b270b0112010204000200050100001b100b0011060c030c020b030307050c0b02120038000c01050e38010c010b0102060002000701000019030b001202020801000019040b0010021402090100000b0d0a001111030405090b00120338020c01050b38030c010b01020a0100000d100a000b0110021411180307050c0b00120438040c02050e38050c020b02020b01000019040b00100314020c01000019040b00100414020d01000019030b001205020e01000019050b00100514110f020f0002001001000019040b0010051402110002001201000019070b001000140b010b02111302130002001401000019090b001000140b011001140b02111502150002001601000019090b001005140b011003140b0211170217000200180002001901000019090b001005140b011004140b02111a021a00020000000100020003000400050000", + "abi": { + "address": "0x1", + "name": "bls12381", + "friends": [], + "exposed_functions": [ + { + "name": "aggr_or_multi_signature_subgroup_check", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature" + ], + "return": [ + "bool" + ] + }, + { + "name": "aggr_or_multi_signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature" + ], + "return": [ + "vector" + ] + }, + { + "name": "aggregate_pubkey_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrPublicKeysWithPoP" + ], + "return": [ + "vector" + ] + }, + { + "name": "aggregate_pubkeys", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector<0x1::bls12381::PublicKeyWithPoP>" + ], + "return": [ + "0x1::bls12381::AggrPublicKeysWithPoP" + ] + }, + { + "name": "aggregate_signatures", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector<0x1::bls12381::Signature>" + ], + "return": [ + "0x1::option::Option<0x1::bls12381::AggrOrMultiSignature>" + ] + }, + { + "name": "proof_of_possession_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::bls12381::ProofOfPossession" + ] + }, + { + "name": "proof_of_possession_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::ProofOfPossession" + ], + "return": [ + "vector" + ] + }, + { + "name": "public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::bls12381::PublicKey>" + ] + }, + { + "name": "public_key_from_bytes_with_pop", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector", + "&0x1::bls12381::ProofOfPossession" + ], + "return": [ + "0x1::option::Option<0x1::bls12381::PublicKeyWithPoP>" + ] + }, + { + "name": "public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::PublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "public_key_with_pop_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::PublicKeyWithPoP" + ], + "return": [ + "vector" + ] + }, + { + "name": "signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::bls12381::Signature" + ] + }, + { + "name": "signature_subgroup_check", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature" + ], + "return": [ + "bool" + ] + }, + { + "name": "signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature" + ], + "return": [ + "vector" + ] + }, + { + "name": "verify_aggregate_signature", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature", + "vector<0x1::bls12381::PublicKeyWithPoP>", + "vector>" + ], + "return": [ + "bool" + ] + }, + { + "name": "verify_multisignature", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::AggrOrMultiSignature", + "&0x1::bls12381::AggrPublicKeysWithPoP", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "verify_normal_signature", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature", + "&0x1::bls12381::PublicKey", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "verify_signature_share", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bls12381::Signature", + "&0x1::bls12381::PublicKeyWithPoP", + "vector" + ], + "return": [ + "bool" + ] + } + ], + "structs": [ + { + "name": "AggrOrMultiSignature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "AggrPublicKeysWithPoP", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ProofOfPossession", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "PublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "PublicKeyWithPoP", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "Signature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000402040403080f05170a072153087420069401220ab601050cbb01220ddd01020fdf0102000100020003080000040001000005020000010703000000010202060c0201060c0767656e6573697308636861696e5f69641073797374656d5f61646472657373657307436861696e4964036765740a696e697469616c697a65026964166173736572745f6170746f735f6672616d65776f726b00000000000000000000000000000000000000000000000000000000000000010520000000000000000000000000000000000000000000000000000000000000000100020106020001000100000507002b00100014020103000000070a0011020b000b0112002d00020000000000", + "abi": { + "address": "0x1", + "name": "chain_id", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "get", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u8" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u8" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ChainId", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "u8" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000402040403082e04360c05421c075e7f08dd012006fd010a108702600ce702550fbc030400020003010707000004000101000005000200000600030000080004000009000500000a000600000b000700010c090a00010d0a0300000200030004000500060007010a0201090001050101010800010401030102000106080001060a0203616e790c636f707961626c655f616e790866726f6d5f62637306737472696e670a66726f6d5f62797465730a746f5f6164647265737307746f5f626f6f6c06537472696e6709746f5f737472696e6707746f5f7531323806746f5f75363405746f5f753805627974657313696e7465726e616c5f636865636b5f75746638000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f76304c0101000000000000000d45494e56414c49445f55544638345554463820636865636b206661696c656420696e20636f6e76657273696f6e2066726f6d20627974657320746f20737472696e67000302000101000008030b003800020201000008030b0038010203010000040b0b0038020c010e011107110803090700270b01020401000008030b003803020501000008030b003804020601000008030b003805020000000100", + "abi": { + "address": "0x1", + "name": "from_bcs", + "friends": [ + "0x1::any", + "0x1::copyable_any" + ], + "exposed_functions": [ + { + "name": "from_bytes", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "vector" + ], + "return": [ + "T0" + ] + }, + { + "name": "to_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "address" + ] + }, + { + "name": "to_bool", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "to_string", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "to_u128", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u128" + ] + }, + { + "name": "to_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u64" + ] + }, + { + "name": "to_u8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u8" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000802080c0314a90104bd011005cd01b701078403e90308ed0620068d075010dd07ac040a890c140c9d0ca6080dc3140c000000010002000300040400021b07020000000000050001000006020100000703010000080401000009000100000a040500000b010600000c070600000d000100000e060800000f090100001000010000110a0b0000120a01000013040100001402010000150301000016010c0000170a010000180a010000190d0800021d1011020404011e010100011f0101000220130802040402211605020404020b081702040403221914010003231a1b01000223101c0204040224161f020404150f180f190f1a0f1b121c121d0f1e0f0307080005030103020608000303060800030302060800050101010800020303000406080003030301060800010a05010402070800030607080005030303070302050302070b01020900090106090001070901010503070b0102090009010900090102010303070800030302060b010209000901060900010b0102090009010707080005070800050703030302060a090006090002070a090003010900020900090102040407070800050708000507080003030106090108706f6f6c5f753634056572726f720a73696d706c655f6d617006766563746f7204506f6f6c0a6164645f73686172657310616d6f756e745f746f5f73686172657321616d6f756e745f746f5f7368617265735f776974685f746f74616c5f636f696e730762616c616e6365066275795f696e08636f6e7461696e73066372656174651a6372656174655f776974685f7363616c696e675f666163746f720d6465647563745f7368617265730d64657374726f795f656d707479146d756c7469706c795f7468656e5f6469766964650d72656465656d5f7368617265730c7368617265686f6c64657273127368617265686f6c646572735f636f756e7406736861726573107368617265735f746f5f616d6f756e74217368617265735f746f5f616d6f756e745f776974685f746f74616c5f636f696e7307746f5f753132380b746f74616c5f636f696e730c746f74616c5f736861726573127570646174655f746f74616c5f636f696e73127368617265686f6c646572735f6c696d69740953696d706c654d61700e7363616c696e675f666163746f720a626f72726f775f6d757410696e76616c69645f617267756d656e740d696e76616c69645f7374617465036164640c636f6e7461696e735f6b657908696e6465785f6f660672656d6f766506626f72726f770000000000000000000000000000000000000000000000000000000000000001030804000000000000000308030000000000000003080600000000000000030807000000000000000308010000000000000003080500000000000000030802000000000000000308ffffffffffffffff126170746f733a3a6d657461646174615f7630970407010000000000000016455348415245484f4c4445525f4e4f545f464f554e44205368617265686f6c646572206e6f742070726573656e7420696e20706f6f6c2e02000000000000001645544f4f5f4d414e595f5348415245484f4c444552532c54686572652061726520746f6f206d616e79207368617265686f6c6465727320696e2074686520706f6f6c2e03000000000000001245504f4f4c5f49535f4e4f545f454d5054591e43616e6e6f742064657374726f79206e6f6e2d656d70747920706f6f6c2e04000000000000001445494e53554646494349454e545f5348415245533f43616e6e6f742072656465656d206d6f726520736861726573207468616e20746865207368617265686f6c6465722068617320696e2074686520706f6f6c2e05000000000000001c455348415245484f4c4445525f5348415245535f4f564552464c4f57315368617265686f6c6465722063616e6e6f742068617665206d6f7265207468616e207536342e6d6178207368617265732e06000000000000001a45504f4f4c5f544f54414c5f434f494e535f4f564552464c4f5729506f6f6c277320746f74616c20636f696e732063616e6e6f7420657863656564207536342e6d61782e07000000000000001b45504f4f4c5f544f54414c5f5348415245535f4f564552464c4f572a506f6f6c277320746f74616c207368617265732063616e6e6f7420657863656564207536342e6d61782e0002061a0317031803130b01020503110a051c03000000000e4c0a000a010c040c030b032e0b041105030a05260b000f000e0138000c080a08140c0707070a07170a0226031d0b080107051116270b070b02160a08150b08140c06054a0a0206000000000000000024032b05440a00100141120a001002142303380b000107061117270a000f010a0144120b000f000b010a0238010b020c0505480b00010b020c050b050c060b06020101000008070a000b010b001003141102020201000014220a00100314060000000000000000210307050a080c0305100a00100414060000000000000000210c030b03031305180b00010b010c0405200a000b010b001004140b02110a0c040b04020301000001080a000b01110e0c020b000b02110f020401000015430a0206000000000000000021030505090b0001060000000000000000020a000a020c040c030b032e0b0411010c0507070a00100314170a0226031f0b0001070211162707070a00100414170a0526032c0b000107021116270a001003140b02160a000f03150a001004140a05160a000f04150b000b010a051100010b05020501000008050b0010000e013802020601000008040b000601000000000000001107020701000008080b000600000000000000000600000000000000003803401200000000000000000b011200020800000018470a000a010c040c030b032e0b041105030e0b000107041116270a000a010c060c050b052e0b06110e0a0226031e0b000107001116270a000f000e0138000c070a07140b02170a07150b07140c080a0806000000000000000021033105430a0010010e0138040c09010a000f010b093805010b000f000e013806010105450b00010b08020901000008120e0010031406000000000000000021030907011117270b001300010101010101020a0100001d150b0010051411110c050b0111110b021111180a05180b0311110b05181a0c040b0434020b0100001e470a000a010c040c030b032e0b041105030e0b000107041116270a000a010c060c050b052e0b06110e0a0226031e0b000107001116270a0206000000000000000021032305270b0001060000000000000000020a000a020c080c070b072e0b08110f0c090a001003140a09170a000f03150a001004140a02170a000f04150b000b010b021108010b09020c01000008040b00100114020d01000008040b0010014112020e01000001120a000a0111050305050c0b0010000e013807140c0205100b00010600000000000000000c020b02020f01000008070a000b010b001003141110021001000014220a00100314060000000000000000210307050a080c0305100a00100414060000000000000000210c030b03031305180b00010600000000000000000c0405200a000b010b020b00100414110a0c040b04021100000008030b0035021201000008040b00100314021301000008040b00100414021401000008050b010b000f03150200030004000000010002000500", + "abi": { + "address": "0x1", + "name": "pool_u64", + "friends": [], + "exposed_functions": [ + { + "name": "amount_to_shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "amount_to_shares_with_total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "balance", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "buy_in", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::pool_u64::Pool", + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "create", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::pool_u64::Pool" + ] + }, + { + "name": "create_with_scaling_factor", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "u64" + ], + "return": [ + "0x1::pool_u64::Pool" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::pool_u64::Pool" + ], + "return": [] + }, + { + "name": "multiply_then_divide", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64", + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "redeem_shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::pool_u64::Pool", + "address", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "shareholders", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "vector
" + ] + }, + { + "name": "shareholders_count", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "u64" + ] + }, + { + "name": "shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "address" + ], + "return": [ + "u64" + ] + }, + { + "name": "shares_to_amount", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "shares_to_amount_with_total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool", + "u64", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "u64" + ] + }, + { + "name": "total_shares", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::pool_u64::Pool" + ], + "return": [ + "u64" + ] + }, + { + "name": "update_total_coins", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::pool_u64::Pool", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Pool", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "shareholders_limit", + "type": "u64" + }, + { + "name": "total_coins", + "type": "u64" + }, + { + "name": "total_shares", + "type": "u64" + }, + { + "name": "shares", + "type": "0x1::simple_map::SimpleMap" + }, + { + "name": "shareholders", + "type": "vector
" + }, + { + "name": "scaling_factor", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602060e03142f04430405473f078601fa010880032006a0031410b403770aab040c0cb7047a0db1050400000001000200030700000407000207070100000005000100000602000000080304000009050600000a000700000b080000010d0b0b00020e0d0e0100020f090e010007010801010a0201080001060800030a0202060801010b02010800030a02020a02020a0201010801010608010001020103030b020108000a0201010900010b0201090009736563703235366b31056572726f72066f7074696f6e1145434453415261775075626c69634b65790e45434453415369676e61747572652265636473615f7261775f7075626c69635f6b65795f66726f6d5f36345f62797465731d65636473615f7261775f7075626c69635f6b65795f746f5f6279746573064f7074696f6e0d65636473615f7265636f7665721665636473615f7265636f7665725f696e7465726e616c1a65636473615f7369676e61747572655f66726f6d5f62797465731865636473615f7369676e61747572655f746f5f627974657305627974657310696e76616c69645f617267756d656e7404736f6d65046e6f6e6500000000000000000000000000000000000000000000000000000000000000010308010000000000000003084000000000000000126170746f733a3a6d657461646174615f7630630101000000000000000d455f444553455249414c495a454b416e206572726f72206f63637572726564207768696c6520646573657269616c697a696e672c20666f72206578616d706c652064756520746f2077726f6e6720696e7075742073697a652e0002010c0a020102010c0a0200010000090b0e00410a070121030807001106270b001200020101000009040b0010001402020100000c140b000b010b0210011411030c050c040b05030b05100b04110038000c03051238010c030b03020300020004010000090b0e00410a070121030807001106270b001201020501000009040b00100114020000010000", + "abi": { + "address": "0x1", + "name": "secp256k1", + "friends": [], + "exposed_functions": [ + { + "name": "ecdsa_raw_public_key_from_64_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::secp256k1::ECDSARawPublicKey" + ] + }, + { + "name": "ecdsa_raw_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::secp256k1::ECDSARawPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "ecdsa_recover", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector", + "u8", + "&0x1::secp256k1::ECDSASignature" + ], + "return": [ + "0x1::option::Option<0x1::secp256k1::ECDSARawPublicKey>" + ] + }, + { + "name": "ecdsa_signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::secp256k1::ECDSASignature" + ] + }, + { + "name": "ecdsa_signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::secp256k1::ECDSASignature" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "ECDSARawPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ECDSASignature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010006020604030a23052d130740c5010885022006a502621087039a010aa104050ca6047f0da505020fa70502000100020003000408000005000100000600010000070200000008030000020a020000020b020000010c01010000010301060c03060c050301080002070800030767656e657369730974696d657374616d70056572726f721073797374656d5f6164647265737365731743757272656e7454696d654d6963726f7365636f6e6473106e6f775f6d6963726f7365636f6e64730b6e6f775f7365636f6e6473147365745f74696d655f6861735f73746172746564127570646174655f676c6f62616c5f74696d650c6d6963726f7365636f6e6473166173736572745f6170746f735f6672616d65776f726b096173736572745f766d10696e76616c69645f617267756d656e7400000000000000000000000000000000000000000000000000000000000000010308020000000000000003080100000000000000030840420f00000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000000126170746f733a3a6d657461646174615f763085010201000000000000000e454e4f545f4f5045524154494e472f54686520626c6f636b636861696e206973206e6f7420696e20616e206f7065726174696e672073746174652079657402000000000000001245494e56414c49445f54494d455354414d5021416e20696e76616c69642074696d657374616d70207761732070726f766964656400020109030001000100000507032b001000140201010001000004110007021a020203000004070a0011040b0006000000000000000012002d0002030100010005260b00110507032a000c030a031000140c040b01070421030e05180b040a022103170b0301070011062705210b040a022303210b030107001106270b020b030f0015020000000000", + "abi": { + "address": "0x1", + "name": "timestamp", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "now_microseconds", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "now_seconds", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "set_time_has_started", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "update_global_time", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "CurrentTimeMicroseconds", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "microseconds", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000009010004020408030c1b05271007375b089201200ab2010b0cbd012c0de90106000000010002070001060700000300010000040002000005000200000703040100000803050100010608000105010a020001080101080009747970655f696e666f06737472696e670854797065496e666f0f6163636f756e745f616464726573730b6d6f64756c655f6e616d650b7374727563745f6e616d6506537472696e6709747970655f6e616d6507747970655f6f6600000000000000000000000000000000000000000000000000000000000000010002030305040a02050a020001000003040b00100014020101000003040b00100114020201000003040b0010021402030102000401020000000001000200", + "abi": { + "address": "0x1", + "name": "type_info", + "friends": [], + "exposed_functions": [ + { + "name": "account_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::type_info::TypeInfo" + ], + "return": [ + "address" + ] + }, + { + "name": "module_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::type_info::TypeInfo" + ], + "return": [ + "vector" + ] + }, + { + "name": "struct_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::type_info::TypeInfo" + ], + "return": [ + "vector" + ] + }, + { + "name": "type_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "type_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [], + "return": [ + "0x1::type_info::TypeInfo" + ] + } + ], + "structs": [ + { + "name": "TypeInfo", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "account_address", + "type": "address" + }, + { + "name": "module_name", + "type": "vector" + }, + { + "name": "struct_name", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b010002020204030619051f0f072e3c086a20068a011e10a801f0020a9804090ca1041c0dbd0402000000010400000200010000030201000004030400000503040000060001000207080004000108000106080001040a61676772656761746f720a41676772656761746f72036164640764657374726f79056c696d69740472656164037375620668616e646c65036b65790000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000126170746f733a3a6d657461646174615f7630db02030100000000000000144541474752454741544f525f4f564552464c4f57575768656e207468652076616c7565206f662061676772656761746f72202861637475616c206f7220616363756d756c6174656429206f766572666c6f77732028726169736564206279206e617469766520636f6465292e0200000000000000154541474752454741544f525f554e444552464c4f576d5768656e207468652076616c7565206f662061676772656761746f72202861637475616c206f7220616363756d756c617465642920756e646572666c6f77732c20692e6520676f65732062656c6f77207a65726f2028726169736564206279206e617469766520636f6465292e03000000000000000e454e4f545f535550504f52544544415768656e2061676772656761746f722066656174757265206973206e6f7420737570706f727465642028726169736564206279206e617469766520636f6465292e00020307050805040400010200010102000201000001040b00100014020301020004010200000200", + "abi": { + "address": "0x1", + "name": "aggregator", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::aggregator::Aggregator", + "u128" + ], + "return": [] + }, + { + "name": "destroy", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::aggregator::Aggregator" + ], + "return": [] + }, + { + "name": "limit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::aggregator::Aggregator" + ], + "return": [ + "u128" + ] + }, + { + "name": "read", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::aggregator::Aggregator" + ], + "return": [ + "u128" + ] + }, + { + "name": "sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::aggregator::Aggregator", + "u128" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Aggregator", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "handle", + "type": "address" + }, + { + "name": "key", + "type": "address" + }, + { + "name": "limit", + "type": "u128" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d0100100210320342830104c5011605db01e00107bb03a80408e307200683087710fa088d020a870b1a0ca10bc0030de10e060fe70e020001000200030004000500060007000800090800000a0400000b0800000c0800010e05010001031207010000011405010001011f0401000101270501000105280700000d000100000f02010000100301000011000100001304050000150006000016070100041b000400031c0a0b0100031d0a0c0100071e0e0f010006200001000121000101000116121301000122140101000623000100022409090001111701010003250119010003260f19010005291b1c00012a1d1e0100012b1f010100022c090900080909090a0d0c110d110e111111120913091511161101060c0003060c060c0b04010800020c050105010b050103020b060108000b0401080003060c050304070a0801030b0501030b04010800010301060b0501090001010106090001080102070a090003010900010b070108000108000203060b04010900010b0701090002050b0701090005070a080103070a080106080103010b04010800010b0401090005060a0801060801030b05010303010b05010900030b060108000b080108000b04010800010a0201080905060c080908090201030b060109000b080109000b04010900010b0801090003050b07010800060b040108000767656e657369730a6170746f735f636f696e04636f696e056572726f72066f7074696f6e067369676e657206737472696e671073797374656d5f61646472657373657306766563746f72094170746f73436f696e1744656c6567617465644d696e744361706162696c6974790b44656c65676174696f6e730c4d696e7443617053746f726515636c61696d5f6d696e745f6361706162696c6974790e4d696e744361706162696c6974791b636f6e6669677572655f6163636f756e74735f666f725f746573741864656c65676174655f6d696e745f6361706162696c6974791064657374726f795f6d696e745f636170064f7074696f6e0f66696e645f64656c65676174696f6e0e4275726e4361706162696c6974790a696e697469616c697a65046d696e740b64756d6d795f6669656c6402746f05696e6e6572086d696e745f6361700a616464726573735f6f660769735f736f6d6506626f72726f770b737761705f72656d6f766504436f696e166173736572745f6170746f735f6672616d65776f726b087265676973746572076465706f736974146173736572745f636f72655f7265736f7572636510696e76616c69645f617267756d656e74046e6f6e6504736f6d6510467265657a654361706162696c69747906537472696e67047574663825696e697469616c697a655f776974685f706172616c6c656c697a61626c655f737570706c791264657374726f795f667265657a655f636170096e6f745f666f756e6400000000000000000000000000000000000000000000000000000000000000010308020000000000000003080300000000000000030801000000000000000520000000000000000000000000000000000000000000000000000000000a550c18052000000000000000000000000000000000000000000000000000000000000000010a020b0a4170746f7320436f696e0a020403415054126170746f733a3a6d657461646174615f7630f80103010000000000000010454e4f5f4341504142494c4954494553254163636f756e7420646f6573206e6f742068617665206d696e74206361706162696c69747902000000000000001245414c52454144595f44454c454741544544444d696e74206361706162696c6974792068617320616c7265616479206265656e2064656c65676174656420746f20746869732073706563696669656420616464726573730300000000000000154544454c45474154494f4e5f4e4f545f464f554e443943616e6e6f742066696e642064656c65676174696f6e206f66206d696e74206361706162696c69747920746f2074686973206163636f756e7400020117010102011805020201190a08010302011a0b0401080000010402020308220a00110711040c030e033800030b0b00010701270e033801140c0207032a020f000c010b010b02380213010107032b031001140c040b000b0412032d03020103000010150b00110b0a01380306ffffffffffffffff0e0238040c030a0111070b0338050a010b0212032d030b01400d000000000000000012022d02020201040102152d0e00110f07032a020f000c040600000000000000000c060a060a042e410d23030f05280a040a060c030c020b022e0b03420d0c050b051002140a012203230b040107001110270b06060100000000000000160c0605080b040b011201440d02030300010316090b00110b07042c0313030c010b013806020400000102182807032b0210000c010600000000000000000c030a01410d0c0538070c040a030a0523031005260a010a03420d0c020b021002140a0021031b05210b01010b0338080c0405260b03060100000000000000160c03050b0b0402050300001a160a00110b0a00070511140706111431080838090c030c020c010b000a0312032d030b02380a0b010b0302060104010320150b0011070c030a032903030907021117270b032b0310010c050b020b0538040c040b010b04380502020003000100000000", + "abi": { + "address": "0x1", + "name": "aptos_coin", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "claim_mint_capability", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "configure_accounts_for_test", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "&signer", + "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + }, + { + "name": "delegate_mint_capability", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address" + ], + "return": [] + }, + { + "name": "destroy_mint_cap", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [ + "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>", + "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + ] + }, + { + "name": "mint", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "AptosCoin", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "DelegatedMintCapability", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to", + "type": "address" + } + ] + }, + { + "name": "Delegations", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "inner", + "type": "vector<0x1::aptos_coin::DelegatedMintCapability>" + } + ] + }, + { + "name": "MintCapStore", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "mint_cap", + "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000007010004030416041a02051c0d07293f0868200c88011900000001000200000000030001000004020101000105020001000303010a02010301060900010900000a6170746f735f6861736803626373096b656363616b323536087369705f68617368137369705f686173685f66726f6d5f76616c756508746f5f6279746573000000000000000000000000000000000000000000000000000000000000000100010200010102000201000000060b0038000c010b0111010200", + "abi": { + "address": "0x1", + "name": "aptos_hash", + "friends": [], + "exposed_functions": [ + { + "name": "keccak256", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "vector" + ] + }, + { + "name": "sip_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "u64" + ] + }, + { + "name": "sip_hash_from_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0" + ], + "return": [ + "u64" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000202020403062305292707506d08bd012006dd012810850281010a8603080c8e03ed030dfb0604000000010700000200010000030203000004000300000503040000060506000007050600000805060002060800030101010608000103010800020708000300020a0103010701060708000307010303030a6269745f766563746f7209426974566563746f720c69735f696e6465785f736574066c656e677468206c6f6e676573745f7365745f73657175656e63655f7374617274696e675f6174036e6577037365740a73686966745f6c65667405756e736574096269745f6669656c64000000000000000000000000000000000000000000000000000000000000000103080000020000000000030801000200000000000308000400000000000003080100000000000000126170746f733a3a6d657461646174615f76306d0200000200000000000645494e444558235468652070726f766964656420696e646578206973206f7574206f6620626f756e6473010002000000000007454c454e47544828416e20696e76616c6964206c656e677468206f6620626974766563746f722077617320676976656e0002020303090a010001000006100a010a001000410123030a0b00010700270b0010000b01420114020101000006040b0010004101020201000003250a010a0010011423030a0b00010700270a010c020a020a0010011423031305210a000a021100200319051c0b000105210b02060100000000000000160c02050c0b020b0117020301000007230a000600000000000000002403060701270a00070223030c0701270600000000000000000c02400100000000000000000c01280a020a00230316051e0d010944010b02060100000000000000160c020510280b000b011200020401000008130a010a001000410123030a0b00010700270b000f000b0143010c02080b02150205010000095d0a010a0010011426030705220a00100041010c070600000000000000000c050a050a07230312051f0a000f000a0543010c04090b04150b05060100000000000000160c05050d0b0001055c0a010c060a060a0010011423032b05450a000a060c030c020b022e0b0311000335053b0a000a060a0117110405400a000a060a011711060b06060100000000000000160c0605240a001001140b01170c060a060a00100114230352055a0a000a0611060b06060100000000000000160c06054b0b0001020601000008130a010a001000410123030a0b00010700270b000f000b0143010c02090b0215020001000000", + "abi": { + "address": "0x1", + "name": "bit_vector", + "friends": [], + "exposed_functions": [ + { + "name": "is_index_set", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bit_vector::BitVector", + "u64" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bit_vector::BitVector" + ], + "return": [ + "u64" + ] + }, + { + "name": "longest_set_sequence_starting_at", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::bit_vector::BitVector", + "u64" + ], + "return": [ + "u64" + ] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::bit_vector::BitVector" + ] + }, + { + "name": "set", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::bit_vector::BitVector", + "u64" + ], + "return": [] + }, + { + "name": "shift_left", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::bit_vector::BitVector", + "u64" + ], + "return": [] + }, + { + "name": "unset", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::bit_vector::BitVector", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "BitVector", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "length", + "type": "u64" + }, + { + "name": "bit_field", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e0100080208180320620482010e059001740784029602089a042006ba041e10d804ef010ac706150bdc06080ce406e0020dc409080ecc09080000000100020003000403010001000508010001000608010001000702010001000800010100000900020100000a03040102000b00040100000c05040100000d06070100000e08040102000f0904010000100a07010000110b07010003140d0e010002150b070001160f0f0003170d1101000318120c010001190f0f00011a0f0f00090c0a0c02070d0c0e0c06070a0702060c060900010b00010900010b0301090002070a0900090000030b00010900060900060c020b03010900060900010502070a0900060900030b0001090006090005020b0001090006090001060c01090002060a09000609000101010304070a0900060900010302010302070a090003030505050a6361706162696c697479056572726f72067369676e657206766563746f72034361701043617044656c65676174655374617465084361705374617465094c696e65617243617007616371756972650e616371756972655f6c696e6561720b6164645f656c656d656e74066372656174650864656c6567617465106c696e6561725f726f6f745f616464720e72656d6f76655f656c656d656e74067265766f6b6509726f6f745f616464721076616c69646174655f6163717569726504726f6f740964656c65676174657308636f6e7461696e730a616464726573735f6f660e616c72656164795f65786973747308696e6465785f6f660672656d6f76650d696e76616c69645f7374617465096e6f745f666f756e640000000000000000000000000000000000000000000000000000000000000001030801000000000000000308020000000000000003080300000000000000126170746f733a3a6d657461646174615f7630da010301000000000000001a454341504142494c4954595f414c52454144595f4558495354533b4361706162696c697479207265736f7572636520616c726561647920657869737473206f6e2074686520737065636966696564206163636f756e74020000000000000015454341504142494c4954595f4e4f545f464f554e441d4361706162696c697479207265736f75726365206e6f7420666f756e640300000000000000094544454c45474154452b4163636f756e7420646f6573206e6f7420686176652064656c656761746564207065726d697373696f6e7300020112050102011205020201130a050302011205000c030c020c010c00010002010204040b00380039000201010002010204040b0038003901020200000008120a000e010c030c020b022e0b03380120030b050f0b000b01440c05110b0001020301000007110a00110b0c020b023b0220030c0b00010700110c270b004007000000000000000039023f0202040100010207180a02110b0c030a033b030307050a0b0201020b020e0037001439033f030e003700143c0236010b033802020501000004040e00370214020600000010150a000b010c030c020b022e0b0338030c050c040b04030d05120b000b0538040105140b00010207010002010207120a023b032003050506020a023e033a03010e003700143c0236010e023805020801000004040e003700140209000002010213280b00110b0c020a023b030307051e0a023d033703140c030a033b0203120702110f270a033d0237010e023806031b0702110f270b030c0105260a023b02032407011110270b020c010b01020000020003000100000c010c020c030c00", + "abi": { + "address": "0x1", + "name": "capability", + "friends": [], + "exposed_functions": [ + { + "name": "acquire", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "&T0" + ], + "return": [ + "0x1::capability::Cap" + ] + }, + { + "name": "acquire_linear", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "&T0" + ], + "return": [ + "0x1::capability::LinearCap" + ] + }, + { + "name": "create", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "&T0" + ], + "return": [] + }, + { + "name": "delegate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::Cap", + "&T0", + "&signer" + ], + "return": [] + }, + { + "name": "linear_root_addr", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::LinearCap", + "&T0" + ], + "return": [ + "address" + ] + }, + { + "name": "revoke", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::Cap", + "&T0", + "address" + ], + "return": [] + }, + { + "name": "root_addr", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::capability::Cap", + "&T0" + ], + "return": [ + "address" + ] + } + ], + "structs": [ + { + "name": "Cap", + "is_native": false, + "abilities": [ + "copy", + "drop" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "root", + "type": "address" + } + ] + }, + { + "name": "CapDelegateState", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "root", + "type": "address" + } + ] + }, + { + "name": "CapState", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "delegates", + "type": "vector
" + } + ] + }, + { + "name": "LinearCap", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "root", + "type": "address" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010004020404030820042802052a2d07576808bf012006df010910e801240a8c02050c9102eb010dfc030200000001000202000003000101000004020100000503040000060304000007030400010906070100050502060900060900010800020a020a0201060800010101090001060900010a0200080108000800030203020301020a636f6d70617261746f720362637306526573756c7407636f6d7061726511636f6d706172655f75385f766563746f720869735f657175616c0f69735f677265617465725f7468616e0f69735f736d616c6c65725f7468616e05696e6e657208746f5f62797465730000000000000000000000000000000000000000000000000000000000000001020100020102020101126170746f733a3a6d657461646174615f76301001000000000000000005455155414c00000201080200010000020a0b0038000c020b0138000c030b020b0311010201010000094f0e00410a0c070e01410a0c090600000000000000000c050a050a0723030d05120a050a09230c020514090c020b02031705360e000a05420a140c060e010a05420a140c080a060a08230326052907021200020b060b0824032e053107011200020b05060100000000000000160c0505080a070a0923033b053f070212000c04054d0b070b092403440548070112000c03054b070012000c030b030c040b04020201000008060b00100014070021020301000008060b00100014070121020401000008060b0010001407022102000000", + "abi": { + "address": "0x1", + "name": "comparator", + "friends": [], + "exposed_functions": [ + { + "name": "compare", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&T0", + "&T0" + ], + "return": [ + "0x1::comparator::Result" + ] + }, + { + "name": "compare_u8_vector", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector", + "vector" + ], + "return": [ + "0x1::comparator::Result" + ] + }, + { + "name": "is_equal", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::comparator::Result" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_greater_than", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::comparator::Result" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_smaller_than", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::comparator::Result" + ], + "return": [ + "bool" + ] + } + ], + "structs": [ + { + "name": "Result", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "inner", + "type": "u8" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e01000802081a03226d048f010e059d01e20107ff02e80108e7042006870514109b05740a8f06150ba406040ca806f4040d9c0b060ea20b06000000010002000300040702000000000005070200000000030c070100000117020000060001020404000702030204040008040502040400090206020404000a0107020404000b0701020404000d0208020404000e090a020404000f040b02040403130d06010002140a0a0003150f10010003160d060100031801160100031910160100011a17180100011b190600060b090a0b0a0c0a0d0a0e0a0f1003070b010209000901090009010002060b0102090009010609000106090102070b010209000901060900010709010101010b010209000901020b0201030b02010301060b0102090009010103020900090106070b010209000901060900030b0201030b0201030301060b02010900010b00020900090101070b0201090001090002030b02010304070b010209000901060900030b020103010b020103010a0b000209000901090803010b0201030b02010303030306090003010b02010900020609000609000108030106080307070b0102090009010609000309000b0201030309010a73696d706c655f6d61700a636f6d70617261746f72056572726f72066f7074696f6e07456c656d656e740953696d706c654d61700361646406626f72726f770a626f72726f775f6d75740c636f6e7461696e735f6b6579066372656174650d64657374726f795f656d707479064f7074696f6e0466696e64066c656e6774680672656d6f7665036b65790576616c756504646174610769735f6e6f6e6510696e76616c69645f617267756d656e7407657874726163740769735f736f6d6506526573756c74046e6f6e6504736f6d6507636f6d706172650f69735f736d616c6c65725f7468616e00000000000000000000000000000000000000000000000000000000000000010308010000000000000003080200000000000000126170746f733a3a6d657461646174615f76306002010000000000000013454b45595f414c52454144595f455849535453164d6170206b657920616c72656164792065786973747302000000000000000e454b45595f4e4f545f464f554e44144d6170206b6579206973206e6f7420666f756e64000202100900110901010201120a0b000209000901000b010b000100000c330a000e010c040c030b032e0b0438000c070c060e06380103120b00010700110a270a0036000b010b023900440e0d0738020c080a003700410e060100000000000000170c050a080a0523032605300a0036000a080a05470e0b08060100000000000000160c0805210b0001020101000011160a000b013800010c030e033803030d0b00010701110a270d0338020c020b0037000b02420e37010202010000121b0a000b010c030c020b022e0b033800010c050e05380303120b00010701110a270d0538020c040b0036000b04430e3601020301000013080b000b013800010c020e02380302040100000103400e00000000000000003901020501000014060b003a010c010b01460e00000000000000000206000000155d0a003700410e0c070a0706000000000000000021030905110b00010b010138040600000000000000003805020600000000000000000c060a070c0a0a060a0a22031a05380a060a0a0a06170602000000000000001a160c080a0037000a08420e37020c090b090a0138060c020e021110033005350b08060100000000000000160c0605370b080c0a05150a060b0722033d05460b010b0037000a06420e3702210c03054c0b00010b0101090c030b03034f05550b06380538040c050c04055a38040b0638050c050c040b040b05020701000001040b003700410e02080100001a350a000b010c030c020b022e0b033800010c060e06380303120b00010701110a270d0638020c070a003700410e060100000000000000170c040a070a04230320052c0a0036000a070a0706010000000000000016470e0b07060100000000000000160c07051b0b003600450e3a000c080c050b050b0802010000010000000b010b020b00", + "abi": { + "address": "0x1", + "name": "simple_map", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&mut 0x1::simple_map::SimpleMap", + "T0", + "T1" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "&T1" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&mut 0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "contains_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "create", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [], + "return": [ + "0x1::simple_map::SimpleMap" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "0x1::simple_map::SimpleMap" + ], + "return": [] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&0x1::simple_map::SimpleMap" + ], + "return": [ + "u64" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "store" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [ + "&mut 0x1::simple_map::SimpleMap", + "&T0" + ], + "return": [ + "T0", + "T1" + ] + } + ], + "structs": [ + { + "name": "Element", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "key", + "type": "T0" + }, + { + "name": "value", + "type": "T1" + } + ] + }, + { + "name": "SimpleMap", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "data", + "type": "vector<0x1::simple_map::Element>" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b010006020604030a23052d080735b60108eb0120068b023610c1029e010adf03050ce403490fad04020001000200030004080000050000000006000000000700010000080001000009020000010b030300020c02000000010101060c01030767656e657369730c636861696e5f737461747573056572726f721073797374656d5f6164647265737365731047656e65736973456e644d61726b65720e6173736572745f67656e65736973106173736572745f6f7065726174696e670a69735f67656e657369730c69735f6f7065726174696e670f7365745f67656e657369735f656e640b64756d6d795f6669656c640d696e76616c69645f7374617465166173736572745f6170746f735f6672616d65776f726b0000000000000000000000000000000000000000000000000000000000000001030802000000000000000308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f763089010201000000000000000e454e4f545f4f5045524154494e472e54686520626c6f636b636861696e206973206e6f7420696e20746865206f7065726174696e67207374617475732e02000000000000000c454e4f545f47454e455349532c54686520626c6f636b636861696e206973206e6f7420696e207468652067656e65736973207374617475732e0002010a01000100000006110203050701110527020101000000061103030507011105270202010000000407022900200203010000000307022900020403000000070a0011060b000912002d0002000000", + "abi": { + "address": "0x1", + "name": "chain_status", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "assert_genesis", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + }, + { + "name": "assert_operating", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + }, + { + "name": "is_genesis", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "bool" + ] + }, + { + "name": "is_operating", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "bool" + ] + }, + { + "name": "set_genesis_end", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + } + ], + "structs": [ + { + "name": "GenesisEndMarker", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000c020c08031428043c0605421b075d7c08d9012006f9010a108302740af702090c8003370db7030400000001000200030004000500060700040807000007000101070009020300000a01000100050904050100010c06070100020d080800030e0700010003000400060001090001080001060800010608010001080101060900010a0201030c636f707961626c655f616e7903626373056572726f720866726f6d5f62637306737472696e6709747970655f696e666f03416e79047061636b06537472696e6709747970655f6e616d6506756e7061636b046461746108746f5f627974657310696e76616c69645f617267756d656e740a66726f6d5f6279746573000000000000000000000000000000000000000000000000000000000000000103080000000000000000126170746f733a3a6d657461646174615f7630600100000000000000000e45545950455f4d49534d415443484754686520747970652070726f766964656420666f722060756e7061636b60206973206e6f74207468652073616d652061732077617320676976656e20666f7220607061636b602e0002020908010b0a0200010000040538000e0038011200020101000004030b0010000202010000040e38000e0010001421030907001105270e001001143802020000000100", + "abi": { + "address": "0x1", + "name": "copyable_any", + "friends": [], + "exposed_functions": [ + { + "name": "pack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop", + "store" + ] + } + ], + "params": [ + "T0" + ], + "return": [ + "0x1::copyable_any::Any" + ] + }, + { + "name": "type_name", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::copyable_any::Any" + ], + "return": [ + "&0x1::string::String" + ] + }, + { + "name": "unpack", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "0x1::copyable_any::Any" + ], + "return": [ + "T0" + ] + } + ], + "structs": [ + { + "name": "Any", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "type_name", + "type": "0x1::string::String" + }, + { + "name": "data", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000c020c0c03181f04370205391a0753cf0108a2022006c2022c10ee02680ad6030f0ce5035b0fc004020001000200030004000500060007070000080b00030c07000009000100000a000100040f02010001100404000511060701000212010100040502060c0a020001060c01020103010801010a02010900010708010767656e657369730c6761735f7363686564756c65056572726f720f7265636f6e66696775726174696f6e06737472696e671073797374656d5f616464726573736573047574696c08476173456e7472790b4761735363686564756c650a696e697469616c697a65107365745f6761735f7363686564756c65036b657906537472696e670376616c07656e7472696573166173736572745f6170746f735f6672616d65776f726b10696e76616c69645f617267756d656e740a66726f6d5f62797465730b7265636f6e66696775726500000000000000000000000000000000000000000000000000000000000000010308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630540101000000000000001545494e56414c49445f4741535f5343484544554c45345468652070726f766964656420676173207363686564756c652062797465732061726520656d707479206f7220696e76616c69640002020b08020d030102010e0a08000003000001110a0011020e01410306000000000000000024030c0b000107001103270b000b0138002d0102010100010108130b0011020e01410306000000000000000024030a070011032707012a010c020b0138000b0215110502000000", + "abi": { + "address": "0x1", + "name": "gas_schedule", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + }, + { + "name": "set_gas_schedule", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "GasEntry", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "key", + "type": "0x1::string::String" + }, + { + "name": "val", + "type": "u64" + } + ] + }, + { + "name": "GasSchedule", + "is_native": false, + "abilities": [ + "copy", + "drop", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "entries", + "type": "vector<0x1::gas_schedule::GasEntry>" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e01000a020a22032c4b04770c0583016a07ed01d40108c1032006e1030a10eb03570ac204150bd704020cd90495010dee05040ef2050400000001000200030004000508010001010b05010001010d05010001010f05010001011004010001041407000006000101000007020101000008030101000009040101000311040600021208080001130009010001060a01010004150c0d0001070e0b010001080f0901000116100101000109040101000607070709070a070b070c0702060c030005060c0a020a02020103060c050301060c0305060b000109000b0401090001050109000103010b04010900020b04010900060b01010900030b010109000b020109000b03010900010a0201080505060c0805080502010203060b0301090002050b040109000c6d616e616765645f636f696e04636f696e056572726f72067369676e657206737472696e670c4361706162696c6974696573046275726e0a696e697469616c697a65046d696e74087265676973746572086275726e5f6361700e4275726e4361706162696c6974790a667265657a655f63617010467265657a654361706162696c697479086d696e745f6361700e4d696e744361706162696c69747904436f696e0a616464726573735f6f66096e6f745f666f756e6408776974686472617706537472696e670475746638076465706f736974000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f76304301010000000000000010454e4f5f4341504142494c4954494553284163636f756e7420686173206e6f206361706162696c697469657320286275726e2f6d696e74292e0002030a0b010109000c0b020109000e0b030109000007000104010005170a0011040c020a023b00030b0b000107001105270b023d000c030b000b0138000c040b040b033700380102010104000b120a000b0111080b0211080b030b0438020c070c060c050b000b050b060b0739003f0002020104010005150b0011040c030a033b00030907001105270b033d000c040b020b04370138030c050b010b053804020301040001030b00380502000000020007010700", + "abi": { + "address": "0x1", + "name": "managed_coin", + "friends": [], + "exposed_functions": [ + { + "name": "burn", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "initialize", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "vector", + "vector", + "u8", + "bool" + ], + "return": [] + }, + { + "name": "mint", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + }, + { + "name": "register", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Capabilities", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "burn_cap", + "type": "0x1::coin::BurnCapability" + }, + { + "name": "freeze_cap", + "type": "0x1::coin::FreezeCapability" + }, + { + "name": "mint_cap", + "type": "0x1::coin::MintCapability" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010008020812031af202048c0312059e03e201078005f80b08f81020069811ee06108618fc010a821a110c931ae4080df722040000000100020003000407000005020000060700020f07010000000700010000080002000009030100000a040500000b060100000c070500000d080100000e09050200000010070a000011070b0000120705000013070b00001407010000150705000016070c000017070d0000180e0d000019050d00001a0f0d00001b070c00001c070c00001d100100001e111200001f1305000020140200002114070000221501000023071600002410170000250001000026000200002700050000280717000029180100002a191200002b1a0500002c140100002d121200002e1b0500002f10010000301112000031130500003215070000331c0d0000341d1e0000351f070000361c1700003707070000380e07000039050700003a060c00003b070700003c071700003d061700003e061700003f1c0d0000401d1e0000411f07000042060d0000431e1e0000440707000045000d00004607070000471c0d0000481d1e0000491f0700004a060700004b070700004c000d00034f2017010001500505000251222301000252002301004501450d07214702480247014801470d480d0001080101080003060802060801060802030a020608010a02010301060802010a0202060a0801060a080202060a0900060a0901010b03010800010b03010801010b03010802010802010401020206080106080102070801060801010708010306080106080101010608010106080002030101010206080106080202070801060802030608010a02010206080101020608020608020207080206080201070802020a020a0201060a09000208010802010900010b03010900030b03010801030102070208020307080106080101030708010a020102070801010307080206080208020c72697374726574746f323535056572726f72066f7074696f6e06766563746f7213436f6d7072657373656452697374726574746f0e52697374726574746f506f696e74065363616c61720962617365706f696e741462617365706f696e745f636f6d707265737365641462617365706f696e745f646f75626c655f6d756c1d62617365706f696e745f646f75626c655f6d756c5f696e7465726e616c0d62617365706f696e745f6d756c1662617365706f696e745f6d756c5f696e7465726e616c106d756c74695f7363616c61725f6d756c196d756c74695f7363616c61725f6d756c5f696e7465726e616c064f7074696f6e1f6e65775f636f6d707265737365645f706f696e745f66726f6d5f62797465731f6e65775f706f696e745f66726f6d5f36345f756e69666f726d5f6279746573286e65775f706f696e745f66726f6d5f36345f756e69666f726d5f62797465735f696e7465726e616c146e65775f706f696e745f66726f6d5f6279746573156e65775f706f696e745f66726f6d5f7368613531321e6e65775f706f696e745f66726f6d5f7368613531325f696e7465726e616c156e65775f7363616c61725f66726f6d5f6279746573166e65775f7363616c61725f66726f6d5f736861353132146e65775f7363616c61725f66726f6d5f75313238136e65775f7363616c61725f66726f6d5f753634126e65775f7363616c61725f66726f6d5f7538206e65775f7363616c61725f726564756365645f66726f6d5f33325f6279746573206e65775f7363616c61725f756e69666f726d5f66726f6d5f36345f627974657309706f696e745f61646410706f696e745f6164645f61737369676e12706f696e745f6164645f696e7465726e616c0e706f696e745f636f6d707265737317706f696e745f636f6d70726573735f696e7465726e616c10706f696e745f6465636f6d707265737319706f696e745f6465636f6d70726573735f696e7465726e616c0c706f696e745f657175616c730e706f696e745f6964656e7469747919706f696e745f6964656e746974795f636f6d7072657373656417706f696e745f6964656e746974795f696e7465726e616c1b706f696e745f69735f63616e6f6e6963616c5f696e7465726e616c09706f696e745f6d756c10706f696e745f6d756c5f61737369676e12706f696e745f6d756c5f696e7465726e616c09706f696e745f6e656710706f696e745f6e65675f61737369676e12706f696e745f6e65675f696e7465726e616c09706f696e745f73756210706f696e745f7375625f61737369676e12706f696e745f7375625f696e7465726e616c0e706f696e745f746f5f62797465730a7363616c61725f616464117363616c61725f6164645f61737369676e137363616c61725f6164645f696e7465726e616c0d7363616c61725f657175616c731b7363616c61725f66726f6d5f7368613531325f696e7465726e616c197363616c61725f66726f6d5f753132385f696e7465726e616c187363616c61725f66726f6d5f7536345f696e7465726e616c0d7363616c61725f696e76657274167363616c61725f696e766572745f696e7465726e616c1c7363616c61725f69735f63616e6f6e6963616c5f696e7465726e616c0d7363616c61725f69735f6f6e650e7363616c61725f69735f7a65726f0a7363616c61725f6d756c117363616c61725f6d756c5f61737369676e137363616c61725f6d756c5f696e7465726e616c0a7363616c61725f6e6567117363616c61725f6e65675f61737369676e137363616c61725f6e65675f696e7465726e616c0a7363616c61725f6f6e65257363616c61725f726564756365645f66726f6d5f33325f62797465735f696e7465726e616c0a7363616c61725f737562117363616c61725f7375625f61737369676e137363616c61725f7375625f696e7465726e616c0f7363616c61725f746f5f6279746573257363616c61725f756e69666f726d5f66726f6d5f36345f62797465735f696e7465726e616c0b7363616c61725f7a65726f04646174610668616e646c650869735f656d70747910696e76616c69645f617267756d656e7404736f6d65046e6f6e6500000000000000000000000000000000000000000000000000000000000000010a02212070cf3753475b9ff33e2f84413ed6b5052073bccc0a0a81789d3e5675dc2580560a022120083839dd491e57c5743710c39a91d6e502cab3cf0e279ae417d91ff2cb633e070a022120e87feda199d72b83de4f5b2d45d34805c57019c6c59c42cb70ee3d19aa996f750a0221201a0e978a90f6622d3747023f8ad8264da758aa1b88e040d1589e7b7f2376ef090a02212096d52d9262ee1e1aae79fbaee8c1d9068b0d01bf9a4579e618090c3d1088ae100a0221202ab50e383d7c210f74d5387330735f18315112d10dfb98fcce1e2620c0c014020a022120e2f2ae0a6abc4e71a884a961c500515f58e30b6aa582dd8db6a65945e08d2d760a022120fa0b3624b081c62f364d0b2839dcc76d7c3ab0e27e31beb2b9ed766575f28e760a022120dbfd97afd38a06f0138d0527efb28ead5b7109b486465913bf3aa472a8ed4e0d0308010000000000000003080200000000000000030803000000000000000a022120ecd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100a022120eed3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100a022120efd3f55c1a631258d69cf7a2def9de140000000000000000000000000000001003082000000000000000030800010000000000000a022120ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0a022120edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100a0221201c95988d7431ecd670cf7d73f45befc6feffffffffffffffffffffffffffff0f0a022120d89ab38bd279024745639ed817ad3f64cc005b32db9939f91c521fc564a5c0080a02212002000000000000000000000000000000000000000000000000000000000000000a0221201cdc17fce0e9a5bbd9247e56bb016347bbba31edd5a9bb96d50bcd7a3f962a0f0a0221204e5ab4345d4708845913b4641bc27d5252a585101bcc4244d449f4a879d9f2040a0221206c3374a1894f62210aaa2fe186a6f92ce0aa75c2779581c295fc08179a73940c0a022120907633fe1c4b66a4a28d2dd7678386c353d0de5455d4fc9de8ef7ac31f35bb050a02212000000000000000000000000000000000000000000000000000000000000000000a0221200100000000000000000000000000000000000000000000000000000000000000126170746f733a3a6d657461646174615f7630e70103010000000000000022455f444946464552454e545f4e554d5f504f494e54535f414e445f5343414c4152533a546865206e756d626572206f66207363616c61727320646f6573206e6f74206d6174636820746865206e756d626572206f6620706f696e74732e02000000000000000d455f5a45524f5f504f494e5453284578706563746564206d6f7265207468616e207a65726f20706f696e747320617320696e7075742e03000000000000000e455f5a45524f5f5343414c415253294578706563746564206d6f7265207468616e207a65726f207363616c61727320617320696e7075742e0002014d0a020102014e030202014d0a020001000005070706111b010c000b00120102010100000003070612000202010000000a0b001000140b010b021000141103120102030002000401000000060b001000141105120102050002000601000000280a00380020030b0b01010b0001070a1146270a0138012003160b01010b0001070b1146270a0041010a01410d2103230b01010b000107091146270b000b01380212010207000200080100000a0d0a001120030405090b00120038030c01050b38040c010b0102090100000b100e00410f064000000000000000210306050c0b00110a120138050c01050e38060c010b01020a0002000b01000024100b00111b0c030c020b030307050c0b02120138050c01050e38060c010b01020c01000000040b00110d1201020d0002000e0100000c0d0a001134030405090b00120238070c01050b38080c010b01020f01000000040b00112f1202021001000000040b0011301202021101000000040b00113112020212010000250c11440c020d020f00060000000000000000430f0c010b000b01150b0202130100000c100e00410f062000000000000000210306050c0b00113e120238070c01050e38080c010b0102140100000c100e00410f064000000000000000210306050c0b001143120238070c01050e38080c010b01021501000000060b000b0109111712010216010000260c0a000b010c030c020b022e0b03081117010b0002170002001801000000040b001119120002190002001a01000005090b00100114111b010c010b011201021b0002001c0102001d0100000003111f1201021e0100000003071a1200021f000200200002002101000000080b000b0110001409112312010222010000270e0a000b011000140c030c020b022e0b03081123010b0002230002002401000000050b000911261201022501000028090a000c010b012e081126010b0002260002002701000000060b000b0109112912010228010000260c0a000b010c030c020b022e0b03081129010b0002290002002a01000000040b00100114022b01000000090b001000140b01100014112d1202022c01000029110a000b010c030c020b022e0b03112b0c040e041000140a000f00150b00022d0002002e01000000080b001000140b0110001421022f0002003000020031000200320100000c120a001136030405090b000138080c0105100b001000141133120238070c010b010233000200340002003501000000060b00100014071b21023601000000060b00100014071a21023701000000090b001000140b0110001411391202023801000029110a000b010c030c020b022e0b0311370c040e041000140a000f00150b0002390002003a01000000060b00100014113c1202023b0100000d0c0a002e113a0c010e011000140a000f00150b00023c0002003d0100000003071b1202023e0002003f01000000090b001000140b0110001411411202024001000029110a000b010c030c020b022e0b03113f0c040e041000140a000f00150b0002410002004201000000040b001000140243000200440100000003071a1202020200000000", + "abi": { + "address": "0x1", + "name": "ristretto255", + "friends": [], + "exposed_functions": [ + { + "name": "basepoint", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "basepoint_compressed", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::CompressedRistretto" + ] + }, + { + "name": "basepoint_double_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "basepoint_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "multi_scalar_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector<0x1::ristretto255::RistrettoPoint>", + "&vector<0x1::ristretto255::Scalar>" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "new_compressed_point_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::CompressedRistretto>" + ] + }, + { + "name": "new_point_from_64_uniform_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::RistrettoPoint>" + ] + }, + { + "name": "new_point_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::RistrettoPoint>" + ] + }, + { + "name": "new_point_from_sha512", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "new_scalar_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "new_scalar_from_sha512", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_from_u128", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u128" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_from_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_from_u8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u8" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "new_scalar_reduced_from_32_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "new_scalar_uniform_from_64_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "point_add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_add_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_compress", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::CompressedRistretto" + ] + }, + { + "name": "point_decompress", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::CompressedRistretto" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_equals", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "bool" + ] + }, + { + "name": "point_identity", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_identity_compressed", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::CompressedRistretto" + ] + }, + { + "name": "point_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_mul_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_neg", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_neg_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_sub_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::RistrettoPoint", + "&0x1::ristretto255::RistrettoPoint" + ], + "return": [ + "&mut 0x1::ristretto255::RistrettoPoint" + ] + }, + { + "name": "point_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::CompressedRistretto" + ], + "return": [ + "vector" + ] + }, + { + "name": "scalar_add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_add_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_equals", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "bool" + ] + }, + { + "name": "scalar_invert", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::option::Option<0x1::ristretto255::Scalar>" + ] + }, + { + "name": "scalar_is_one", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "bool" + ] + }, + { + "name": "scalar_is_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "bool" + ] + }, + { + "name": "scalar_mul", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_mul_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_neg", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_neg_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_one", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_sub_assign", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::ristretto255::Scalar", + "&0x1::ristretto255::Scalar" + ], + "return": [ + "&mut 0x1::ristretto255::Scalar" + ] + }, + { + "name": "scalar_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::ristretto255::Scalar" + ], + "return": [ + "vector" + ] + }, + { + "name": "scalar_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::ristretto255::Scalar" + ] + } + ], + "structs": [ + { + "name": "CompressedRistretto", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "data", + "type": "vector" + } + ] + }, + { + "name": "RistrettoPoint", + "is_native": false, + "abilities": [ + "drop" + ], + "generic_type_params": [], + "fields": [ + { + "name": "handle", + "type": "u64" + } + ] + }, + { + "name": "Scalar", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "data", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000009010008020804030c20042c0405301207427408b601200cd6012d0f830204000200030004000502080800000600010000070201000106000300030905010100010a0006000307020101000304050401050003060c0503010c01080001060c01010767656e65736973107265736f757263655f6163636f756e740d6170746f735f6163636f756e74076163636f756e740a6170746f735f636f696e04636f696e0e6372656174655f6163636f756e74087472616e73666572094170746f73436f696e087265676973746572096578697374735f617400000000000000000000000000000000000000000000000000000000000000010001040003060b0011020c010e0138000201010400010c0a01110420030505070a0111000b000b010b023801020000000100", + "abi": { + "address": "0x1", + "name": "aptos_account", + "friends": [ + "0x1::genesis", + "0x1::resource_account" + ], + "exposed_functions": [ + { + "name": "create_account", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "transfer", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64" + ], + "return": [] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000b01000202020403061e052417073b7a08b5012006d501441099029a030ab305050cb80587020dbf070200000001070000020001000003020100000403020000050102000006010400000703020002030301080001030203080001010401040404000204040d66697865645f706f696e7433320c4669786564506f696e743332146372656174655f66726f6d5f726174696f6e616c156372656174655f66726f6d5f7261775f76616c75650a6469766964655f7536340d6765745f7261775f76616c75650769735f7a65726f0c6d756c7469706c795f7536340576616c7565000000000000000000000000000000000000000000000000000000000000000103080100010000000000030802000200000000000308040001000000000003080300020000000000030805000200000000000410ffffffffffffffff0000000000000000126170746f733a3a6d657461646174615f763085030501000100000000000c4544454e4f4d494e41544f52215468652064656e6f6d696e61746f722070726f766964656420776173207a65726f020002000000000009454449564953494f4e3b5468652071756f7469656e742076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e206120607536346003000200000000000f454d554c5449504c49434154494f4e3d546865206d756c7469706c6965642076616c756520776f756c6420626520746f6f206c6172676520746f2062652068656c6420696e2061206075363460040001000000000011454449564953494f4e5f42595f5a45524f2241206469766973696f6e206279207a65726f2077617320656e636f756e746572656405000200000000001345524154494f5f4f55545f4f465f52414e47454f54686520636f6d707574656420726174696f207768656e20636f6e76657274696e6720746f206120604669786564506f696e7433326020776f756c6420626520756e726570726573656e7461626c65000201080300010000052e0a003531402f0c050b013531202f0c040a0432000000000000000000000000000000002203100700270b050b041a0c030a033200000000000000000000000000000000220319051c080c0205200b00060000000000000000210c020b0203240704270a03070525032a0704270b03341200020101000006030b0012000202010000071d0e011000140600000000000000002203080702270b003531202f0c030b030e01100014351a0c020a02070525031a0701270b0234020301000006040e00100014020401000006060e0010001406000000000000000021020501000007150b00350e0110001435180c030b033120300c020a0207052503120703270b023402000000", + "abi": { + "address": "0x1", + "name": "fixed_point32", + "friends": [], + "exposed_functions": [ + { + "name": "create_from_rational", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "u64" + ], + "return": [ + "0x1::fixed_point32::FixedPoint32" + ] + }, + { + "name": "create_from_raw_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [ + "0x1::fixed_point32::FixedPoint32" + ] + }, + { + "name": "divide_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_raw_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "u64" + ] + }, + { + "name": "is_zero", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "bool" + ] + }, + { + "name": "multiply_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "0x1::fixed_point32::FixedPoint32" + ], + "return": [ + "u64" + ] + } + ], + "structs": [ + { + "name": "FixedPoint32", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "value", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000c020c1803247304970108059f015807f701a605089d072006bd073510f207f8010aea09120cfc09b4020db00c06000000010002000300040005000607000007070000080700050b07010000021f020100000009000100000a000200000c000300000d000000000e040200000f050200001006030000110007000012080000001309070000140a070000150b0701020016060000001706000000180500000019050000031b0e0e00051c10110100051d0c110100041e0000000220101201020121130001001104120414101512010a02010800010801010b030108020108020106080201060801010101060800030608000608010a02030a020a020a02030608000608010900000102010302010b03010802010900010b03010900010b04010900010609000d6d756c74695f65643235353139036263730765643235353139056572726f720468617368066f7074696f6e095369676e617475726514556e76616c6964617465645075626c69634b65791256616c6964617465645075626c69634b6579186e65775f7369676e61747572655f66726f6d5f6279746573256e65775f756e76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573064f7074696f6e236e65775f76616c6964617465645f7075626c69635f6b65795f66726f6d5f6279746573267075626c69635f6b65795f62797465735f746f5f61757468656e7469636174696f6e5f6b65791b7075626c69635f6b65795f696e746f5f756e76616c696461746564197075626c69635f6b65795f746f5f756e76616c696461746564137075626c69635f6b65795f76616c69646174651c7075626c69635f6b65795f76616c69646174655f696e7465726e616c127369676e61747572655f746f5f6279746573177369676e61747572655f7665726966795f737472696374207369676e61747572655f7665726966795f7374726963745f696e7465726e616c197369676e61747572655f7665726966795f7374726963745f742c756e76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791f756e76616c6964617465645f7075626c69635f6b65795f746f5f62797465732a76616c6964617465645f7075626c69635f6b65795f746f5f61757468656e7469636174696f6e5f6b65791d76616c6964617465645f7075626c69635f6b65795f746f5f627974657305627974657310696e76616c69645f617267756d656e7404736f6d65046e6f6e6508736861335f3235360d5369676e65644d657373616765126e65775f7369676e65645f6d65737361676508746f5f627974657300000000000000000000000000000000000000000000000000000000000000010308040000000000000003080100000000000000030802000000000000000308200000000000000003084000000000000000020101126170746f733a3a6d657461646174615f7630e30102010000000000000013455f57524f4e475f5055424b45595f53495a455357726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207075626c6963206b65792e020000000000000016455f57524f4e475f5349474e41545552455f53495a455257726f6e67206e756d626572206f66206279746573207765726520676976656e20617320696e707574207768656e20646573657269616c697a696e6720616e2045643235353139207369676e61747572652e0002011a0a020102011a0a020202011a0a02000100000c0d0e00410d070419070021030a07021110270b00120002010100000c170e00410d07031a070325030a07011110270e00410d070319070121031407011110270b00120102020100000f1a0e00410d0703190701210308050c0a0011070c01050e090c010b01031105160b00120238000c02051838010c020b0202030000000c060d000705440d0b00111302040100000c050e00100014120102050100000c050b00100014120102060100000c050b0010011411020207000200080100000c040b0010021402090100000c090b001002140b011001140b02110a020a0002000b010000120d0b0238020c030b001002140b011001140e033803110a020c0100000c050b001001141103020d0100000c040b00100114020e0100000c050b001000141103020f0100000c040b001000140202000100000000", + "abi": { + "address": "0x1", + "name": "multi_ed25519", + "friends": [], + "exposed_functions": [ + { + "name": "new_signature_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::multi_ed25519::Signature" + ] + }, + { + "name": "new_unvalidated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::multi_ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "new_validated_public_key_from_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector" + ], + "return": [ + "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "public_key_into_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::multi_ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_to_unvalidated", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "0x1::multi_ed25519::UnvalidatedPublicKey" + ] + }, + { + "name": "public_key_validate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::UnvalidatedPublicKey" + ], + "return": [ + "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>" + ] + }, + { + "name": "signature_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::Signature" + ], + "return": [ + "vector" + ] + }, + { + "name": "signature_verify_strict", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::Signature", + "&0x1::multi_ed25519::UnvalidatedPublicKey", + "vector" + ], + "return": [ + "bool" + ] + }, + { + "name": "signature_verify_strict_t", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&0x1::multi_ed25519::Signature", + "&0x1::multi_ed25519::UnvalidatedPublicKey", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "unvalidated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "unvalidated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::UnvalidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_authentication_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + }, + { + "name": "validated_public_key_to_bytes", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::multi_ed25519::ValidatedPublicKey" + ], + "return": [ + "vector" + ] + } + ], + "structs": [ + { + "name": "Signature", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "UnvalidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + }, + { + "name": "ValidatedPublicKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "bytes", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000602060c03121e0530140744fa0108be022006de0240109e03600afe03150c9304b6010dc905060fcf050600030004000500060c0000070c00000807000009000100000a020000000b030000000c000000021102000001120303000001080201060c0103010708010207080006080105626c6f636b0767656e657369730f7265636f6e66696775726174696f6e0d73746174655f73746f72616765056572726f721073797374656d5f6164647265737365730c476173506172616d6574657211537461746553746f7261676555736167650555736167652f6765745f73746174655f73746f726167655f75736167655f6f6e6c795f61745f65706f63685f626567696e6e696e670a696e697469616c697a650c6f6e5f6e65775f626c6f636b0b6f6e5f7265636f6e6669670575736167650565706f6368056974656d73056279746573166173736572745f6170746f735f6672616d65776f726b0e616c72656164795f657869737473000000000000000000000000000000000000000000000000000000000000000103080200000000000000030801000000000000000308000000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f76304c030000000000000000144553544154455f53544f524147455f55534147450001000000000000000e454741535f504152414d455445520002000000000000000b4545504f43485f5a45524f000002010d08020102020e030d08020202020f031003000002000103000000220a0011040703290120030b0b00010702110527070329002003140b000107011105270a00060000000000000000060000000000000000060000000000000000120212012d010b00060000000000000000060000000000000000120212002d00020203000101041607032a010c010a000a0110001422030a05130b000a010f001511000b010f011505150b010102030300020001050d07032a000c0007032b010c010b011001140b000f02150201000101000000000001000200", + "abi": { + "address": "0x1", + "name": "state_storage", + "friends": [ + "0x1::block", + "0x1::genesis", + "0x1::reconfiguration" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "on_new_block", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "on_reconfig", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + } + ], + "structs": [ + { + "name": "GasParameter", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "usage", + "type": "0x1::state_storage::Usage" + } + ] + }, + { + "name": "StateStorageUsage", + "is_native": false, + "abilities": [ + "store", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "epoch", + "type": "u64" + }, + { + "name": "usage", + "type": "0x1::state_storage::Usage" + } + ] + }, + { + "name": "Usage", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "items", + "type": "u64" + }, + { + "name": "bytes", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010006020604030a4605502e077e96040894052006b4054a10fe05f2020af008110c8109b6030db70c0e0fc50c0200010002000300040b0000050001000006020300000702040000080205000009020500000a020400000b060000000c070000000d080000000e080000000f07000000100500000218090000011904040000010800010608000101010302030308060c0303030103030302060c0303060c030301060c0107080002010708000767656e657369730e7374616b696e675f636f6e666967056572726f721073797374656d5f6164647265737365730d5374616b696e67436f6e666967036765741e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e67651d6765745f726563757272696e675f6c6f636b75705f6475726174696f6e126765745f72657175697265645f7374616b650f6765745f7265776172645f726174651f6765745f766f74696e675f706f7765725f696e6372656173655f6c696d69740a696e697469616c697a65257570646174655f726563757272696e675f6c6f636b75705f6475726174696f6e5f73656373157570646174655f72657175697265645f7374616b65137570646174655f726577617264735f72617465227570646174655f766f74696e675f706f7765725f696e6372656173655f6c696d69741776616c69646174655f72657175697265645f7374616b650d6d696e696d756d5f7374616b650d6d6178696d756d5f7374616b651e726563757272696e675f6c6f636b75705f6475726174696f6e5f736563731a616c6c6f775f76616c696461746f725f7365745f6368616e67650c726577617264735f7261746518726577617264735f726174655f64656e6f6d696e61746f721b766f74696e675f706f7765725f696e6372656173655f6c696d6974166173736572745f6170746f735f6672616d65776f726b10696e76616c69645f617267756d656e7400000000000000000000000000000000000000000000000000000000000000010308030000000000000003080400000000000000030801000000000000000308020000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630dd0204010000000000000015455a45524f5f4c4f434b55505f4455524154494f4e245374616b65206c6f636b7570206475726174696f6e2063616e6e6f74206265207a65726f02000000000000001e455a45524f5f524557415244535f524154455f44454e4f4d494e41544f522652657761726420726174652064656e6f6d696e61746f722063616e6e6f74206265207a65726f03000000000000001445494e56414c49445f5354414b455f52414e47453e537065636966696564207374616b652072616e676520697320696e76616c69642e204d6178206d7573742062652067726561746572207468616e206d696e04000000000000002445494e56414c49445f564f54494e475f504f5745525f494e4352454153455f4c494d49544154686520766f74696e6720706f77657220696e637265617365206c696d69742070657263656e74616765206d7573742062652077697468696e2028302c2035305d00020711031203130314011503160317030001000100000407042b0014020101000000040b00100014020201000000040b00100114020301000000070a001002140b00100314020401000000070a001004140b00100514020501000000040b001006140206030000032c0a00110c0a010a02110b0a0606000000000000000024030e0b00010703110d270a0706000000000000000024031305180a07063200000000000000250c08051a090c080b0803210b00010701110d270b000b010b020b030b040b050b060b0712002d000207010001000a130a010600000000000000002403090b00010702110d270b00110c07042a000c020b010b020f01150208010001000a110b00110c0a010a02110b07042a000c030b010a030f02150b020b030f03150209010001000a150b00110c0a020600000000000000002403090703110d2707042a000c030b010a030f04150b020b030f0515020a010001000b1b0b00110c0a01060000000000000000240307050c0a01063200000000000000250c02050e090c020b0203130701110d2707042a000c030b010b030f0615020b00000003120b000a01250305050a0b01060000000000000000240c02050c090c020b0203110700110d27020003000200000001000400050006000000", + "abi": { + "address": "0x1", + "name": "staking_config", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "get", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::staking_config::StakingConfig" + ] + }, + { + "name": "get_allow_validator_set_change", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "bool" + ] + }, + { + "name": "get_recurring_lockup_duration", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_required_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64", + "u64" + ] + }, + { + "name": "get_reward_rate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64", + "u64" + ] + }, + { + "name": "get_voting_power_increase_limit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::staking_config::StakingConfig" + ], + "return": [ + "u64" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "u64", + "u64", + "bool", + "u64", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "update_recurring_lockup_duration_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + }, + { + "name": "update_required_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "update_rewards_rate", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "update_voting_power_increase_limit", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "StakingConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "minimum_stake", + "type": "u64" + }, + { + "name": "maximum_stake", + "type": "u64" + }, + { + "name": "recurring_lockup_duration_secs", + "type": "u64" + }, + { + "name": "allow_validator_set_change", + "type": "bool" + }, + { + "name": "rewards_rate", + "type": "u64" + }, + { + "name": "rewards_rate_denominator", + "type": "u64" + }, + { + "name": "voting_power_increase_limit", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01001402141203265c048201040586012807ae01c90408f705200697065410eb068f030afa09170c910a99030daa0d060fb00d0c0006000700080009000a000b000c000d000e000f001008000011080000120600041d040106010013000100001402000000150000000016020000001702000000180001000019000300001a000000081f02000003200101000421060001060522020700012307010001240208010602250003000926000100062700000007280000000a050d0500010301060c0101020107080001080202070b0301090009000105010b0301090004010107080003106170746f735f676f7665726e616e636505626c6f636b10636f6e73656e7375735f636f6e6669670c6761735f7363686564756c650767656e657369730776657273696f6e0f7265636f6e66696775726174696f6e076163636f756e740c636861696e5f737461747573056572726f72056576656e74067369676e6572057374616b650d73746174655f73746f726167651073797374656d5f6164647265737365730974696d657374616d700d436f6e66696775726174696f6e1644697361626c655265636f6e66696775726174696f6e0d4e657745706f63684576656e740d63757272656e745f65706f63681764697361626c655f7265636f6e66696775726174696f6e22656d69745f67656e657369735f7265636f6e66696775726174696f6e5f6576656e7416656e61626c655f7265636f6e66696775726174696f6e0a696e697469616c697a65196c6173745f7265636f6e66696775726174696f6e5f74696d65177265636f6e66696775726174696f6e5f656e61626c65640b7265636f6e6669677572650565706f6368066576656e74730b4576656e7448616e646c650b64756d6d795f6669656c64166173736572745f6170746f735f6672616d65776f726b0d696e76616c69645f73746174650a656d69745f6576656e740a616464726573735f6f661a6765745f677569645f6e6578745f6372656174696f6e5f6e756d106e65775f6576656e745f68616e646c650a69735f67656e65736973106e6f775f6d6963726f7365636f6e64730c6f6e5f6e65775f65706f63680b6f6e5f7265636f6e6669670000000000000000000000000000000000000000000000000000000000000001030802000000000000000308010000000000000003080400000000000000030805000000000000000308030000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630fa020501000000000000000e45434f4e46494755524154494f4e335468652060436f6e66696775726174696f6e60207265736f7572636520697320696e20616e20696e76616c696420737461746502000000000000000745434f4e464947334120605265636f6e66696775726174696f6e60207265736f7572636520697320696e20616e20696e76616c6964207374617465030000000000000012454d4f444946595f4341504142494c495459444120604d6f64696679436f6e6669674361706162696c6974796020697320696e206120646966666572656e74207374617465207468616e2077617320657870656374656404000000000000001345494e56414c49445f424c4f434b5f54494d4526416e20696e76616c696420626c6f636b2074696d652077617320656e636f756e74657265642e05000000000000001745494e56414c49445f475549445f464f525f4556454e5426416e20696e76616c696420626c6f636b2074696d652077617320656e636f756e74657265642e0002031b0318031c0b030108020102011e010202011b030001000100000507052b001000140201000000000e0a001108110603090b000107011109270b000912012d01020200000100042607052a000c010a0110001406000000000000000021030a05110a01100114060000000000000000210c000513090c000b00031a0b010107011109270601000000000000000a010f00150a010f020b011000141202380002030000010100100a001108110620030a0b000107011109270b00110b2c01130101020403000000150a0011080a00110b110c06020000000000000021030d0b000107031109270a000600000000000000000600000000000000000b00380112002d00020501000100000507052b001001140206000000000407052901200207030001000947110e03030506080c00050a110f060000000000000000210c000b00030d0510080c0105131106200c010b01031605170207052a000c02110f0c030a030a0210011421032305260b020102111011110a030a021001142403330b020107021109270b030a020f01150a02100014060100000000000000160a020f00150a020f020b02100014120238000200000001000200000001000200030004000500", + "abi": { + "address": "0x1", + "name": "reconfiguration", + "friends": [ + "0x1::aptos_governance", + "0x1::block", + "0x1::consensus_config", + "0x1::gas_schedule", + "0x1::genesis", + "0x1::version" + ], + "exposed_functions": [ + { + "name": "current_epoch", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "last_reconfiguration_time", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "reconfigure", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [] + } + ], + "structs": [ + { + "name": "Configuration", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "epoch", + "type": "u64" + }, + { + "name": "last_reconfiguration_time", + "type": "u64" + }, + { + "name": "events", + "type": "0x1::event::EventHandle<0x1::reconfiguration::NewEpochEvent>" + } + ] + }, + { + "name": "DisableReconfiguration", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + }, + { + "name": "NewEpochEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "epoch", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000802080e031615042b02052d1b0748cc010894022006b402220ad602090cdf02270d8603020f880304000200030004000500060800020805010001010908000007000100000a020100020c04010100030d05010002030205030002060c0b01010802010802030503060b0101090001060c0767656e65736973167472616e73616374696f6e5f76616c69646174696f6e0f7472616e73616374696f6e5f6665650a6170746f735f636f696e04636f696e1073797374656d5f616464726573736573154170746f73436f696e4361706162696c6974696573086275726e5f6665650e4275726e4361706162696c697479094170746f73436f696e1973746f72655f6170746f735f636f696e5f6275726e5f636170086275726e5f636170096275726e5f66726f6d166173736572745f6170746f735f6672616d65776f726b0000000000000000000000000000000000000000000000000000000000000001052000000000000000000000000000000000000000000000000000000000000000010002010b0b01010802000300010001070b000b0107002b0010003800020103000001070a0011030b000b0112002d000200000000000100", + "abi": { + "address": "0x1", + "name": "transaction_fee", + "friends": [ + "0x1::genesis", + "0x1::transaction_validation" + ], + "exposed_functions": [ + { + "name": "burn_fee", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "u64" + ], + "return": [] + }, + { + "name": "store_aptos_coin_burn_cap", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>" + ], + "return": [] + } + ], + "structs": [ + { + "name": "AptosCoinCapabilities", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "burn_cap", + "type": "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c0100240224540378b70204af033e05ed039a03078707a60b08ad122006cd12a20110ef13f7060ae61a6d0cd31be7070dba23120000000100020003000400050006000700080009000a000b000c000d000e000f001000110012080000130600001408000015080000160800001707000018060000190600001a08000a1e0702000000000d1f070006230600012b06000539040106010f41040203010001074707010000024c08000c570b00001b000100001c000100001d020100002003040000210105000022010000002406070000250100000026080000002709010000280a01000029000100002a0b0700002c0c0100002d090100002e0d01000a42101102040411431300010404440000001145131401040a46150102040409480a08000b49080800104a0100000b4b080000034d01180100074e01190100074f1a11010007501a1b010007511c190100061d011200111d1d00010405521f0101060d531421000d542200000a5501240204040a50102702040401562807000c58012a000c592b11000b5a082c000b5b0800000e5c0a0100115d0a010104015e0a2e01060f5f013202030408280101001160131101040a613435020404112a131c01040e620a01000f6339110203000f463a010203001164130001040665011200112e3b010104100f11121312140f19171a051b051c051d051f12201e2323142324262b122c1e2c2f2c302d31230f2f12300f311223261426202f3331343135123712203001030005060c050a020a020a02020a020a02010b0902080a0a02010402080b05010c010504060c04030301060c02030503060c05080c04060c050301030708000a020302030a0202060b090209000901060900010101080b020503010a0203070b09020900090109000901110305050a020b0902080a0a02070b0d010801030b0f010407080306080203030b0902080a0a020503040b0f0104010810010b0f0104010b0f01090001060b0f0109000106090001090008050509000a0204030b0f01040b0902080a0a0201080102070b0d010900090003080a080a0b0902080a0a0201080a0106080a02080a0a02010b0902090009010206080406080c0205080c010609010106080c060811030301030301081101060811040303030304030403060c010b0d01090001080601080702080501010b0e020900090103070b0902030a020603070b0902030a0202070b090209000901060900020900090101070b090205080c0207080307080208080b07080303030805050307080802060b0e0209000901090003070b0e0209000901090009010506090005030301106170746f735f676f7665726e616e6365076163636f756e740a6170746f735f636f696e04636f696e056572726f72056576656e7413676f7665726e616e63655f70726f706f73616c066f7074696f6e0f7265636f6e66696775726174696f6e067369676e65720a73696d706c655f6d6170057374616b650e7374616b696e675f636f6e66696706737472696e671073797374656d5f616464726573736573057461626c650974696d657374616d7006766f74696e6717417070726f766564457865637574696f6e4861736865731343726561746550726f706f73616c4576656e7410476f7665726e616e6365436f6e66696710476f7665726e616e63654576656e747317476f7665726e616e6365526573706f6e7362696c697479095265636f72644b657911557064617465436f6e6669674576656e7409566f74654576656e740d566f74696e675265636f726473186164645f617070726f7665645f7363726970745f686173681f6164645f617070726f7665645f7363726970745f686173685f7363726970740f6372656174655f70726f706f73616c0953696d706c654d617006537472696e67186372656174655f70726f706f73616c5f6d65746164617461186765745f6d696e5f766f74696e675f7468726573686f6c641b6765745f72657175697265645f70726f706f7365725f7374616b6512476f7665726e616e636550726f706f73616c0a6765745f7369676e6572186765745f766f74696e675f6475726174696f6e5f73656373106765745f766f74696e675f706f7765720a696e697469616c697a650b7265636f6e6669677572651472656d6f76655f617070726f7665645f68617368077265736f6c7665105369676e65724361706162696c6974791073746f72655f7369676e65725f636170187570646174655f676f7665726e616e63655f636f6e66696704766f7465066861736865730870726f706f7365720a7374616b655f706f6f6c0b70726f706f73616c5f69640e657865637574696f6e5f686173681170726f706f73616c5f6d65746164617461146d696e5f766f74696e675f7468726573686f6c641772657175697265645f70726f706f7365725f7374616b6514766f74696e675f6475726174696f6e5f73656373166372656174655f70726f706f73616c5f6576656e74730b4576656e7448616e646c65147570646174655f636f6e6669675f6576656e74730b766f74655f6576656e74730b7369676e65725f6361707305766f746572096e756d5f766f7465730b73686f756c645f7061737305766f746573055461626c650c636f6e7461696e735f6b6579126765745f70726f706f73616c5f737461746510696e76616c69645f617267756d656e74126765745f657865637574696f6e5f6861736803616464064f7074696f6e0a616464726573735f6f66136765745f64656c6567617465645f766f7465720b6e6f775f7365636f6e64730f6765745f6c6f636b75705f73656373094170746f73436f696e06737570706c79046e6f6e650769735f736f6d6506626f72726f7704736f6d650a656d69745f6576656e740475746638066c656e677468066372656174651d6372656174655f7369676e65725f776974685f6361706162696c6974790d5374616b696e67436f6e666967036765741e6765745f616c6c6f775f76616c696461746f725f7365745f6368616e6765096765745f7374616b651e6765745f63757272656e745f65706f63685f766f74696e675f706f776572166173736572745f6170746f735f6672616d65776f726b087265676973746572106e65775f6576656e745f68616e646c65036e65770b69735f7265736f6c7665640672656d6f7665216173736572745f6672616d65776f726b5f72657365727665645f6164647265737308636f6e7461696e731c6765745f70726f706f73616c5f65787069726174696f6e5f73656373156372656174655f656d7074795f70726f706f73616c000000000000000000000000000000000000000000000000000000000000000103080400000000000000030801000000000000000308030000000000000003080a0000000000000003080900000000000000030802000000000000000308050000000000000003080600000000000000030808000000000000000a020e0d6d657461646174615f686173680a0212116d657461646174615f6c6f636174696f6e05200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630e2060901000000000000001c45494e53554646494349454e545f50524f504f5345525f5354414b454c54686520737065636966696564207374616b6520706f6f6c20646f6573206e6f7420686176652073756666696369656e74207374616b6520746f2063726561746520612070726f706f73616c020000000000000014454e4f545f44454c4547415445445f564f5445524454686973206163636f756e74206973206e6f74207468652064657369676e6174656420766f746572206f662074686520737065636966696564207374616b6520706f6f6c03000000000000001a45494e53554646494349454e545f5354414b455f4c4f434b55506054686520737065636966696564207374616b6520706f6f6c20646f6573206e6f742068617665206c6f6e6720656e6f7567682072656d61696e696e67206c6f636b757020746f2063726561746520612070726f706f73616c206f7220766f746504000000000000000e45414c52454144595f564f5445444b54686520737065636966696564207374616b6520706f6f6c2068617320616c7265616479206265656e207573656420746f20766f7465206f6e207468652073616d652070726f706f73616c050000000000000010454e4f5f564f54494e475f504f5745523a54686520737065636966696564207374616b6520706f6f6c206d7573742062652070617274206f66207468652076616c696461746f722073657406000000000000001c4550524f504f53414c5f4e4f545f5245534f4c5641424c455f5945543e50726f706f73616c206973206e6f7420726561647920746f206265207265736f6c7665642e2057616974696e67206f6e2074696d65206f7220766f74657308000000000000001a4550524f504f53414c5f4e4f545f5245534f4c5645445f594554265468652070726f706f73616c20686173206e6f74206265656e207265736f6c7665642079657409000000000000001b454d455441444154415f4c4f434154494f4e5f544f4f5f4c4f4e47314d65746164617461206c6f636174696f6e2063616e6e6f74206265206c6f6e676572207468616e203235362063686172730a0000000000000017454d455441444154415f484153485f544f4f5f4c4f4e472d4d6574616461746120686173682063616e6e6f74206265206c6f6e676572207468616e203235362063686172730002012f0b0902030a02010205300531053203330a02340b0902080a0a02020203350436033703030203380b0d0108013a0b0d0108063b0b0d0108070402013c0b090205080c0502023105320306020335043603370307020532033d0531053e033f01080201400b0e0208050100010001000e23070b2a000c010a0110000e0038000309050c0b010102070b0a0038010c030b0307012103190b01010707111227070b0a0038020c020b010f000b000b02380302010104010001030b00110002020104020203166a0b0011150c120a0111160a1221030b0705111227070b2b020c0e0a0111080c130b130a0e10011426031c0b0e01070111122711170c0b0b0b0a0e100214160c0f0a0111180a0f26032e0b0e0107021112270b030b0411030c1138040c1538050c0c0e153806033a05450e153807140c140b1432020000000000000000000000000000001a32010000000000000000000000000000001638080c0c0a12070b111e0a020b0e1003140b0f0b0c0a1138090c10070b2a030c0d0b0d0f040c0a0b100c050b120c060b010c070b020c080b110c090b0a0b060b070b050b080b091201380a020300000020240a0011210c020e02112206000100000000000025030b07041112270a0111210c030e0311220600010000000000002503160703111227380b0c040d04070a11210b00380c0d04070911210b01380c0b040204010001020105070b2b021003140205010001020105070b2b02100114020600000104250b070b2b040c020b0210050e01380d0c030b0311250207010001020105070b2b021002140208000000291a11260c010e0111270c040b04030805150b0011280c060c05010c030b030b05160b06160c0205180b0011290c020b0202090000002d240a00112a0a00380e0a000c070b030c040b010c050b020c060b070b050b060b0412022d020a000a00380f0a0038100a00381112032d030a00381212082d080b00381312002d00020a01000001040b00112a112e020b01000100331e070b0a00381403070708111227070b2a000f000c030a030e000c020c010b012e0b0238000315051b0b030e0038150101051d0b0301020c0100020004120a070b0a0038160c020b00110b0b020b011106020d0100010436170a001132070b2904200307050c0b00381712042d04050e0b0001070b2a040f050c030b030b010b023818020e0100020203371c0b00112a070b2a020c050a030a050f02150a010a050f03150a020b050f0115070b2a030c040b040f060b010b020b0312063819020f01040300030838580b0011150c090a0111160a0921030b0705111227070b2a080c0b0a010a0212050c080a0b10070a08381a20031d0b0b0107001112270b0b0f070b0808381b0a0111080c0a0a0a06000000000000000024032c0706111227070b0a02381c0c060a0111180b06260338070211122711360c040e04070b0a020a0a0a03381d070b2a030c050b050f080a020b090b010b0a0b031207381e070b0a0238010c070b07070121035505570b0211000200000201020202000300040003010800030200", + "abi": { + "address": "0x1", + "name": "aptos_governance", + "friends": [], + "exposed_functions": [ + { + "name": "add_approved_script_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "add_approved_script_hash_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "create_proposal", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "vector", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "get_min_voting_threshold", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u128" + ] + }, + { + "name": "get_required_proposer_stake", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "get_voting_duration_secs", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "u64" + ] + }, + { + "name": "reconfigure", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "remove_approved_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64" + ], + "return": [] + }, + { + "name": "resolve", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u64", + "address" + ], + "return": [ + "signer" + ] + }, + { + "name": "store_signer_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::account::SignerCapability" + ], + "return": [] + }, + { + "name": "update_governance_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u128", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "vote", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "u64", + "bool" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ApprovedExecutionHashes", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "hashes", + "type": "0x1::simple_map::SimpleMap>" + } + ] + }, + { + "name": "CreateProposalEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposer", + "type": "address" + }, + { + "name": "stake_pool", + "type": "address" + }, + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "execution_hash", + "type": "vector" + }, + { + "name": "proposal_metadata", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector>" + } + ] + }, + { + "name": "GovernanceConfig", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "min_voting_threshold", + "type": "u128" + }, + { + "name": "required_proposer_stake", + "type": "u64" + }, + { + "name": "voting_duration_secs", + "type": "u64" + } + ] + }, + { + "name": "GovernanceEvents", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "create_proposal_events", + "type": "0x1::event::EventHandle<0x1::aptos_governance::CreateProposalEvent>" + }, + { + "name": "update_config_events", + "type": "0x1::event::EventHandle<0x1::aptos_governance::UpdateConfigEvent>" + }, + { + "name": "vote_events", + "type": "0x1::event::EventHandle<0x1::aptos_governance::VoteEvent>" + } + ] + }, + { + "name": "GovernanceResponsbility", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "signer_caps", + "type": "0x1::simple_map::SimpleMap" + } + ] + }, + { + "name": "RecordKey", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "stake_pool", + "type": "address" + }, + { + "name": "proposal_id", + "type": "u64" + } + ] + }, + { + "name": "UpdateConfigEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "min_voting_threshold", + "type": "u128" + }, + { + "name": "required_proposer_stake", + "type": "u64" + }, + { + "name": "voting_duration_secs", + "type": "u64" + } + ] + }, + { + "name": "VoteEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "proposal_id", + "type": "u64" + }, + { + "name": "voter", + "type": "address" + }, + { + "name": "stake_pool", + "type": "address" + }, + { + "name": "num_votes", + "type": "u64" + }, + { + "name": "should_pass", + "type": "bool" + } + ] + }, + { + "name": "VotingRecords", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "votes", + "type": "0x1::table::Table<0x1::aptos_governance::RecordKey, bool>" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010008020804030c1905251107369a0108d0012006f0012c109c02650a8103060c87035b0de203020fe40302000100020003000400050800000600010000070001000309020100010a040400020b01010002060c0a020001060c0102010301070a020767656e6573697310636f6e73656e7375735f636f6e666967056572726f720f7265636f6e66696775726174696f6e1073797374656d5f6164647265737365730f436f6e73656e737573436f6e6669670a696e697469616c697a650373657406636f6e666967166173736572745f6170746f735f6672616d65776f726b10696e76616c69645f617267756d656e740b7265636f6e66696775726500000000000000000000000000000000000000000000000000000000000000010308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630510101000000000000000f45494e56414c49445f434f4e464947375468652070726f7669646564206f6e20636861696e20636f6e6669672062797465732061726520656d707479206f7220696e76616c6964000201080a020003000001110a0011020e01410306000000000000000024030c0b000107001103270b000b0112002d0002010100010005130b0011020e01410306000000000000000024030a070011032707012a000f000c020b010b02151104020000000000", + "abi": { + "address": "0x1", + "name": "consensus_config", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + }, + { + "name": "set", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "ConsensusConfig", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "config", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c0100120212140326710497011005a701ac0107d302ff0308d2062006f2062e10a0075e0afe070a0c8808a9020db10a0200000001000200030004000500060007000800090800010d0600071107020000000002120800000a000100000b020100000c030100000e040500000f060100010a08070004130a01010006140a0b0004150c01010003160d010005170f0f00071811120204040719130f020404071a1401020404011b151600011c080100071d0114020404071e1801020404081f1a1b010001200b1c00060908090b100c100d1010101110121903060c0a020a020004060c0a020a020304060c0a020a020a0a0202060c0501080104060c0c08010a02020c080102060c0a0201080301060c010503060c050303060c0a020a0a0209050708000800010c05080108010b020205080101030205080102070b020209000901060900020900090101060b020209000901010b02020900090101060801010c050a020a02070800050503070b02020900090109000901010201060a09000101010a02107265736f757263655f6163636f756e74076163636f756e740a6170746f735f636f696e04636f646504636f696e056572726f72067369676e65720a73696d706c655f6d617006766563746f7209436f6e7461696e6572176372656174655f7265736f757263655f6163636f756e74206372656174655f7265736f757263655f6163636f756e745f616e645f66756e642b6372656174655f7265736f757263655f6163636f756e745f616e645f7075626c6973685f7061636b616765105369676e65724361706162696c6974791d72657472696576655f7265736f757263655f6163636f756e745f63617036726f746174655f6163636f756e745f61757468656e7469636174696f6e5f6b65795f616e645f73746f72655f6361706162696c6974790573746f72650953696d706c654d6170094170746f73436f696e0872656769737465720a616464726573735f6f66087472616e73666572137075626c6973685f7061636b6167655f74786e096e6f745f666f756e640672656d6f7665066c656e6774680d64657374726f795f656d7074791d6372656174655f7369676e65725f776974685f6361706162696c69747922726f746174655f61757468656e7469636174696f6e5f6b65795f696e7465726e616c06637265617465036164640869735f656d707479166765745f61757468656e7469636174696f6e5f6b65790000000000000000000000000000000000000000000000000000000000000001030801000000000000000a0221200000000000000000000000000000000000000000000000000000000000000000126170746f733a3a6d657461646174615f76304a0101000000000000001845434f4e5441494e45525f4e4f545f5055424c495348454427436f6e7461696e6572207265736f75726365206e6f7420666f756e6420696e206163636f756e74000201100b02020508010001040100070b0a000b0111050c040c030b000b030b040b02110402010104010007120a000b0111050c050c040e0438000a000e0411070b0338010b000b040b050b021104020201040100070f0a000b0111050c050c040e040b020b0311090b000b040b05070111040203010001000e2f0a01290003080b00010700110a270b0011070c070a012a000c030a030f000e0738020c09010b090b0310003803060000000000000000210c050c080b05031f05270b012c000c040b0413000c0a0b0a38040e08110e0c060e060701110f0b08020400000100172a0a0011070c070a072900200308050d0b00380512002d00050f0b00010a072a000c060e0111070c080b060f000b080b0238060e033807031e05220b0711130c0405240b030c040b040c050e010b05110f02000000", + "abi": { + "address": "0x1", + "name": "resource_account", + "friends": [], + "exposed_functions": [ + { + "name": "create_resource_account", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector" + ], + "return": [] + }, + { + "name": "create_resource_account_and_fund", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "u64" + ], + "return": [] + }, + { + "name": "create_resource_account_and_publish_package", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector>" + ], + "return": [] + }, + { + "name": "retrieve_resource_account_cap", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address" + ], + "return": [ + "0x1::account::SignerCapability" + ] + } + ], + "structs": [ + { + "name": "Container", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "store", + "type": "0x1::simple_map::SimpleMap" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000801000603062d0533150748e40108ac022006cc02c003108c06f7020c83099b020000000100020003000100000400010000050201000006000100000700010000080203000009020300020a000200010b04040001060c000105010101030a010101010101010101051073797374656d5f616464726573736573056572726f72067369676e6572166173736572745f6170746f735f6672616d65776f726b146173736572745f636f72655f7265736f757263651c6173736572745f636f72655f7265736f757263655f61646472657373216173736572745f6672616d65776f726b5f72657365727665645f61646472657373096173736572745f766d1a69735f6170746f735f6672616d65776f726b5f616464726573731869735f636f72655f7265736f757263655f616464726573730a616464726573735f6f66117065726d697373696f6e5f64656e6965640000000000000000000000000000000000000000000000000000000000000001030803000000000000000308010000000000000003080400000000000000030802000000000000000520000000000000000000000000000000000000000000000000000000000000000105200000000000000000000000000000000000000000000000000000000000000002052000000000000000000000000000000000000000000000000000000000000000030520000000000000000000000000000000000000000000000000000000000000000405200000000000000000000000000000000000000000000000000000000000000005052000000000000000000000000000000000000000000000000000000000000000060520000000000000000000000000000000000000000000000000000000000000000705200000000000000000000000000000000000000000000000000000000000000008052000000000000000000000000000000000000000000000000000000000000000090520000000000000000000000000000000000000000000000000000000000000000a052000000000000000000000000000000000000000000000000000000000000000000520000000000000000000000000000000000000000000000000000000000a550c18126170746f733a3a6d657461646174615f7630e2020401000000000000001a454e4f545f434f52455f5245534f555243455f414444524553534354686520616464726573732f6163636f756e7420646964206e6f7420636f72726573706f6e6420746f2074686520636f7265207265736f75726365206164647265737302000000000000000345564d2d546865206f7065726174696f6e2063616e206f6e6c7920626520706572666f726d65642062792074686520564d03000000000000001c454e4f545f4150544f535f4652414d45574f524b5f414444524553534454686520616464726573732f6163636f756e7420646964206e6f7420636f72726573706f6e6420746f2074686520636f7265206672616d65776f726b206164647265737304000000000000001f454e4f545f4652414d45574f524b5f52455345525645445f414444524553532d5468652061646472657373206973206e6f74206672616d65776f726b20726573657276656420616464726573730001000001080b001107110503070700110827020101000001040b0011071102020201000001070b00110603060701110827020301000005650b0011070c0a0a0a0704210308050b080c01050f0a0a0705210c010b0103120515080c0205190a0a0706210c020b02031c051f080c0305230a0a0707210c030b0303260529080c04052d0a0a0708210c040b0403300533080c0505370a0a0709210c050b05033a053d080c0605410a0a070a210c060b0603440547080c07054b0a0a070b210c070b07034e0551080c0805550a0a070c210c080b080358055b080c09055f0b0a070d210c090b0903640702110827020401000001090b001107070e2103080703110827020501000001040b00070421020601000001040b00070f210200", + "abi": { + "address": "0x1", + "name": "system_addresses", + "friends": [], + "exposed_functions": [ + { + "name": "assert_aptos_framework", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "assert_core_resource", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "assert_core_resource_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [] + }, + { + "name": "assert_framework_reserved_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "assert_vm", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "is_aptos_framework_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + }, + { + "name": "is_core_resource_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address" + ], + "return": [ + "bool" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e01000602061003167c0492010e05a00174079402ad0108c1032006e1031e10ff03560ad5040d0be204020ce404a0020d8407040e8807040000000100020003040203010001020f040203010001000400010203000005020302030000060405020300000700050203020008020602030000090701020300000a0806020300000b0809020300000c0107020304000d040a02030002040c0102030002050d0302030002060e0502030002080d06020300011009090002110f01020300020c010f020304020d0e0a0203000a0b0b0b0c0b0d0b0f0b100b110b03070b000209000901090009010002060b00020900090109000106090102070b0002090009010900010709010101010b00020900090101060b0002090009010103010901020900090103070b0102090009010900090102060b010209000901090002070b0102090009010900010b010209000901117461626c655f776974685f6c656e677468056572726f72057461626c650f5461626c65576974684c656e6774680361646406626f72726f770a626f72726f775f6d757417626f72726f775f6d75745f776974685f64656661756c7408636f6e7461696e730d64657374726f795f656d70747905656d707479066c656e677468036e65770672656d6f766505696e6e6572055461626c650d696e76616c69645f73746174650764657374726f790000000000000000000000000000000000000000000000000000000000000001030864000000000000000308660000000000000003086500000000000000126170746f733a3a6d657461646174615f7630420364000000000000000f45414c52454144595f4558495354530065000000000000000a454e4f545f464f554e440066000000000000000a454e4f545f454d505459000002020e0b0102090009010b03000b00010000010e0a0036000b010b0238000a00370114060100000000000000160b00360115020101000001050b0037000b013801020201000001050b0036000b013802020301000005200a0037000a0138030306050c0b0036000b0138020c03051e0a0036000a010b0238000a00370114060100000000000000160a003601150b0036000b0138020c030b03020401000001050b0037000b01380302050100000f100e003701140600000000000000002103090701110e270b003a00010c010b013804020601000001060b0037011406000000000000000021020701000001040b00370114020801000001043805060000000000000000390002090100000a0f0a0036000b0138060c020a00370114060100000000000000170b003601150b020200000001000b010b00", + "abi": { + "address": "0x1", + "name": "table_with_length", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0", + "T1" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "&T1" + ] + }, + { + "name": "borrow_mut", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "borrow_mut_with_default", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "drop" + ] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0", + "T1" + ], + "return": [ + "&mut T1" + ] + }, + { + "name": "contains", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "bool" + ] + }, + { + "name": "destroy_empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "0x1::table_with_length::TableWithLength" + ], + "return": [] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength" + ], + "return": [ + "bool" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&0x1::table_with_length::TableWithLength" + ], + "return": [ + "u64" + ] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [ + "store" + ] + } + ], + "params": [], + "return": [ + "0x1::table_with_length::TableWithLength" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "params": [ + "&mut 0x1::table_with_length::TableWithLength", + "T0" + ], + "return": [ + "T1" + ] + } + ], + "structs": [ + { + "name": "TableWithLength", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [ + { + "constraints": [ + "copy", + "drop" + ] + }, + { + "constraints": [] + } + ], + "fields": [ + { + "name": "inner", + "type": "0x1::table::Table" + }, + { + "name": "length", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000a020a10031a25043f020541260767870208ee0220068e032c10ba03690aa304090cac044a0ff60404000200030004000500060007080001080400040e0402030100010009000100000a020100000b030400000c050100030f03040002100707000411040a020304060902060c04010801010401060c000207080004010708000103010800020504010b0202090009010767656e65736973136f7074696f6e616c5f61676772656761746f721261676772656761746f725f666163746f72790a61676772656761746f72056572726f721073797374656d5f616464726573736573057461626c651141676772656761746f72466163746f72790a41676772656761746f72116372656174655f61676772656761746f721a6372656174655f61676772656761746f725f696e7465726e616c1d696e697469616c697a655f61676772656761746f725f666163746f72790e6e65775f61676772656761746f720d7068616e746f6d5f7461626c65055461626c65166173736572745f6170746f735f6672616d65776f726b096e6f745f666f756e64036e657700000000000000000000000000000000000000000000000000000000000000010308010000000000000005200000000000000000000000000000000000000000000000000000000000000001126170746f733a3a6d657461646174615f7630550101000000000000001d4541474752454741544f525f464143544f52595f4e4f545f464f554e442d5768656e2061676772656761746f7220666163746f7279206973206e6f74207075626c6973686564207965742e0002010d0b02020504000100010004050b0011040b011101020103000100060d070129000306070011052707012a000c010b010b001103020203000008090a001104380012000c010b000b012d0002030002000000000100", + "abi": { + "address": "0x1", + "name": "aggregator_factory", + "friends": [ + "0x1::genesis", + "0x1::optional_aggregator" + ], + "exposed_functions": [ + { + "name": "create_aggregator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "u128" + ], + "return": [ + "0x1::aggregator::Aggregator" + ] + }, + { + "name": "create_aggregator_internal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u128" + ], + "return": [ + "0x1::aggregator::Aggregator" + ] + }, + { + "name": "initialize_aggregator_factory", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + } + ], + "structs": [ + { + "name": "AggregatorFactory", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "phantom_table", + "type": "0x1::table::Table" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000901000202020403060a05100407146a087e200a9e01050ca301130fb601020001000206000003000100000400010000010800106170746f735f676f7665726e616e636513676f7665726e616e63655f70726f706f73616c12476f7665726e616e636550726f706f73616c156372656174655f656d7074795f70726f706f73616c0f6372656174655f70726f706f73616c0b64756d6d795f6669656c640000000000000000000000000000000000000000000000000000000000000001000201050100030000000211010201030000000309120002000000", + "abi": { + "address": "0x1", + "name": "governance_proposal", + "friends": [ + "0x1::aptos_governance" + ], + "exposed_functions": [ + { + "name": "create_empty_proposal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::governance_proposal::GovernanceProposal" + ] + }, + { + "name": "create_proposal", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x1::governance_proposal::GovernanceProposal" + ] + } + ], + "structs": [ + { + "name": "GovernanceProposal", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "dummy_field", + "type": "bool" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000d01000a020a12031cb30104cf012205f1017b07ec02f50308e1062006810714109507520ae707160cfd07bf040dbc0c080fc40c02000100020003000400050006040000070400041b07010000011c040000080001000009020100000a030100000b040100000c030500000d030500000e060700000f08050000100903000011050400001206050000130805000014000100001502010000160a010000170a010000180a050000190a0500041e0d070100041f0e0f01000108100100032011110004210d130100010f140500042215160100010a0c01000423150101000224050c000425161501000426011501000112140500011410010004270e160100042819010100120c130c1304160c180c1a04160418041a0c1c0c1d041d0c1c042004210c200c21040207080104000207080004010801010800010401060801010101060800020401010708010207080307080001080301060b0201090001070b020109000107090002070803040103030b020108030b02010800040106090001060803010b02010900010900030406080306080003080308000402070b02010900090004636f696e136f7074696f6e616c5f61676772656761746f720a61676772656761746f721261676772656761746f725f666163746f7279056572726f72066f7074696f6e07496e7465676572124f7074696f6e616c41676772656761746f72036164640b6164645f696e74656765720764657374726f790f64657374726f795f696e74656765721b64657374726f795f6f7074696f6e616c5f61676772656761746f721864657374726f795f6f7074696f6e616c5f696e74656765721169735f706172616c6c656c697a61626c65056c696d6974036e65770b6e65775f696e746567657204726561640c726561645f696e7465676572037375620b7375625f696e746567657206737769746368137377697463685f616e645f7a65726f5f6f7574217377697463685f746f5f61676772656761746f725f616e645f7a65726f5f6f75741e7377697463685f746f5f696e74656765725f616e645f7a65726f5f6f75740576616c7565064f7074696f6e0a41676772656761746f7207696e74656765720769735f736f6d650a626f72726f775f6d75740c6f75745f6f665f72616e676506626f72726f770c64657374726f795f736f6d650c64657374726f795f6e6f6e651a6372656174655f61676772656761746f725f696e7465726e616c04736f6d65046e6f6e6507657874726163740466696c6c00000000000000000000000000000000000000000000000000000000000000010308010000000000000003080200000000000000126170746f733a3a6d657461646174615f76303e020100000000000000144541474752454741544f525f4f564552464c4f57000200000000000000154541474752454741544f525f554e444552464c4f57000002021a040f04010202020b020108031d0b02010800000100000b150a00100038000305050d0b000f0038010c020b020b01111405140b000f0138020c030b030b011101020100000001180a010a001002140a001003141725030f0b000107001115270a001003140b01160b000f03150202010000010c0e001106030405080b00110401050b0b00110501020300000001050b00130001010204000000120f0b0013010c020c010e01380311170c030b01380411190b0238050b030205000000120f0b0013010c020c010e02380611070c030b02380711030b0138080b03020601000001040b0010003800020700000001040b00100214020803000003120b010303050a0b00111b3809380a12010c020510380b0b001109380c12010c020b020209000000010432000000000000000000000000000000000b001200020a01000017160a00100038000305050d0b00100038030c020b02111e0c0105140b00100138060c030b03110b0c010b01020b00000001040b00100314020c0100000b150a00100038000305050d0b000f0038010c020b020b01111f05140b000f0138020c030b030b01110d020d00000001140a010a0010031425030b0b000107011115270a001003140b01170b000f0315020e010000050a0a002e110a0c010a00110f0b000b011100020f000000010d0a002e1106030505090b00111101050c0b00111001021000000018120a000f01380d0c020e0211070c030b0211030a03111b0c010b000f000b01380e0b03021100000018120a000f00380f0c010e0111170c030b0111190a0311090c020b000f010b0238100b03020100010100010000000000", + "abi": { + "address": "0x1", + "name": "optional_aggregator", + "friends": [ + "0x1::coin" + ], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::optional_aggregator::OptionalAggregator", + "u128" + ], + "return": [] + }, + { + "name": "destroy", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x1::optional_aggregator::OptionalAggregator" + ], + "return": [] + }, + { + "name": "is_parallelizable", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::optional_aggregator::OptionalAggregator" + ], + "return": [ + "bool" + ] + }, + { + "name": "new", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "u128", + "bool" + ], + "return": [ + "0x1::optional_aggregator::OptionalAggregator" + ] + }, + { + "name": "read", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x1::optional_aggregator::OptionalAggregator" + ], + "return": [ + "u128" + ] + }, + { + "name": "sub", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::optional_aggregator::OptionalAggregator", + "u128" + ], + "return": [] + }, + { + "name": "switch", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x1::optional_aggregator::OptionalAggregator" + ], + "return": [] + } + ], + "structs": [ + { + "name": "Integer", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "value", + "type": "u128" + }, + { + "name": "limit", + "type": "u128" + } + ] + }, + { + "name": "OptionalAggregator", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "aggregator", + "type": "0x1::option::Option<0x1::aggregator::Aggregator>" + }, + { + "name": "integer", + "type": "0x1::option::Option<0x1::optional_aggregator::Integer>" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b0500000006010002030205050704070b24082f200c4f040000000100010000010a02137472616e73616374696f6e5f636f6e746578740f6765745f7363726970745f6861736800000000000000000000000000000000000000000000000000000000000000010001020000", + "abi": { + "address": "0x1", + "name": "transaction_context", + "friends": [], + "exposed_functions": [ + { + "name": "get_script_hash", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "vector" + ] + } + ], + "structs": [] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c010014021408031c61047d040581015707d801ad040885062006a506b20110d707540aab08140cbf08a2030fe10b02000100020003000400050006000700080009000a000b0800021b0800000c000100000d020100000e030100000f0401000010030100001105010005180707000519070700061a080900041c09070100091d0b0100011e090100071f0801000120090e000121090d000822010700032301100001240907000425090e0100090a120a050c030303030005060c0a020a020a020a02070c030a0203030302090c030a020a050a0a0203030302080c030a02030303020a0203050303010301060c0105010801020503040303050a02010a020101040303030501020767656e65736973167472616e73616374696f6e5f76616c69646174696f6e076163636f756e740a6170746f735f636f696e08636861696e5f696404636f696e056572726f72067369676e65721073797374656d5f6164647265737365730974696d657374616d700f7472616e73616374696f6e5f666565155472616e73616374696f6e56616c69646174696f6e086570696c6f6775650a696e697469616c697a650f6d6f64756c655f70726f6c6f6775651b6d756c74695f6167656e745f7363726970745f70726f6c6f6775650f70726f6c6f6775655f636f6d6d6f6e0f7363726970745f70726f6c6f6775650b6d6f64756c655f616464720b6d6f64756c655f6e616d65147363726970745f70726f6c6f6775655f6e616d65146d6f64756c655f70726f6c6f6775655f6e616d65196d756c74695f6167656e745f70726f6c6f6775655f6e616d6512757365725f6570696c6f6775655f6e616d6510696e76616c69645f617267756d656e740c6f75745f6f665f72616e67650a616464726573735f6f66094170746f73436f696e0762616c616e6365086275726e5f66656519696e6372656d656e745f73657175656e63655f6e756d626572166173736572745f6170746f735f6672616d65776f726b096578697374735f6174166765745f61757468656e7469636174696f6e5f6b65790b6e6f775f7365636f6e647303676574136765745f73657175656e63655f6e756d6265721569735f6163636f756e745f726567697374657265640000000000000000000000000000000000000000000000000000000000000001030806000000000000000410ffffffffffffffff00000000000000000308ec030000000000000308ef030000000000000308ed030000000000000308e9030000000000000308f1030000000000000308f0030000000000000308eb030000000000000308ea030000000000000308ee03000000000000052000000000000000000000000000000000000000000000000000000000000000010a0217167472616e73616374696f6e5f76616c69646174696f6e126170746f733a3a6d657461646174615f7630400106000000000000000b454f55545f4f465f4741532a5472616e73616374696f6e2065786365656465642069747320616c6c6f6361746564206d6178206761730002061205130a02140a02150a02160a02170a0200000000062b0a030a0426030707001106270b030b04170c060a02350a063518070125031607001107270b020b06180c070e0011080c050a0538000a0726032507041107270a050b07110a0b05110b0201030000010c0a00110c0b00070b070c0b010b020b030b0412002d00020200000001090b000b010b020b030b040b050b06110402030000000c380b000b010b020b050b060b070b0811040e0341090c0a0e04410d0a0a21031307061106270600000000000000000c090a090a0a23031a05370e030a094209140c0b0a0b110d032507021106270e040a09420d140c0c0b0c0b0b110e21033207051106270b09060100000000000000160c09051502040000000f4d110f0b05230307070a11062711100b0621030e07031106270e0011080c0a0a0a110d031707021106270b020a0a110e21031f07051106270a0135070123032707071107270a0a11110c070a010a0726033107091106270b010b0721033807081106270b030b04180c090a0a3801034207041106270b0a38000c080b080b0926034c0704110627020500000001090b000b010b020b030b040b050b06110402000000", + "abi": { + "address": "0x1", + "name": "transaction_validation", + "friends": [ + "0x1::genesis" + ], + "exposed_functions": [ + { + "name": "initialize", + "visibility": "friend", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "vector", + "vector", + "vector", + "vector" + ], + "return": [] + } + ], + "structs": [ + { + "name": "TransactionValidation", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "module_addr", + "type": "address" + }, + { + "name": "module_name", + "type": "vector" + }, + { + "name": "script_prologue_name", + "type": "vector" + }, + { + "name": "module_prologue_name", + "type": "vector" + }, + { + "name": "multi_agent_prologue_name", + "type": "vector" + }, + { + "name": "user_epilogue_name", + "type": "vector" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::code::PackageRegistry", + "data": { + "packages": [ + { + "deps": [], + "extension": { + "vec": [] + }, + "manifest": "0x1f8b08000000000002ff014900b6ff5b7061636b6167655d0a6e616d65203d20224d6f76655374646c6962220a76657273696f6e203d2022312e352e30220a0a5b6164647265737365735d0a737464203d2022307831220ad11938fc49000000", + "modules": [ + { + "extension": { + "vec": [] + }, + "name": "bcs", + "source": "0x1f8b08000000000002ff8d52cd6e9c3010bef31423556a930370ad689a43724e0f5db5d7c698218c041e648f49b7d1be7bc7065651a244f109c69fbf3fbbae6bf82534921ca1670f96dd825ec83d80813b5e1016334604612009d09233fe081e678f019d182176400e6e6e0f7071b3eede1ac78eac198b5ad90fe8c98cf42f432fab8ca40032e0ce86ce7297149381aca9e41cbdc500c675c08af5a09ce5c45d1c374b21b3cfb11d290ca82857dac190ab54116110994353d70f24436c2bcb536d66e150b7367c5a754bbbfb2cc3738fa542b295893d66910ec5d0185422b9af8acd4690ae6912f8a9005d09f913257af73cdc8baab887fbe5fecdc65eb4956c4c4632bdd3915693035be8a3aaf09ff62818ae5267bf5327d7174b039fcfbf970d2c6885fd55fc7afdadd85cc2f777d78eba5b431e66b4d4abb76428ef059dc056c1d32941c323891dd21bd9c61ddb389d33eb9b12fc2bc5ebd379b277f7630da8c96c3ef6389092ea53e9b027a7374c6bb1b3d77cfe4bd00f1c6387d599c59d1960bf51fc6839e9fca93815ff01795d953611030000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "fixed_point32", + "source": "0x1f8b08000000000002ffb5595d73dbb6127df7af405e3a564691255b71523bce8caf63dfd14c63656ce7deb60f952112b4d850044b905654d7ffbd071f240092b2349da9c70f1209ec17f69cdd850e0e0ec82716c52913849228fecec237198fd382a4e592e571408a75c6c82a2e16787f74f8661e1704afd903cb4946f382d034dc3b8094fa6d94d3a088794a13b560b0b7b7e4619930228af0e444a99829154787e4696f8fe0efa0b662ab11d8e428803e31a845dc2d6241f0ff7b296017298fc7b5a9f3126617f2e52aa759c642bcc11251e465509082d73296f49b34a24ce33f4aa6f40e6ab914fa529aaf49ceb29c09961654dad12782939005f19226b59c479a9488e992ae49ca0b3267847d87d989bb799eb07e655996f3c738943b78ce6a29c582a6e4c74a3809e307384c7884e57824a09ccc39a2326711b6c9b320342ae06fb1b042aadd3aa4fba3f7959c821734e90dc815cf49c09738ad584877425ec234aba39614251c1ea70fe6741654908409a1cd1c1dbf64a70c522d07d10868cea2322174ce118052406a537cc16155fac890647047b02aa6ce6919853a05cc615ec9fcf962124c9a18f06c0da7729ec18842c6e9498b3a5129f25ce7e0477237fd343d71cf9b0a641fac10054d55ae13b1e065124a17cc91e1115fb2d58241708063cd698253467ac16899ab78c7f36fda4425897c3eff79f6f5780cf5a3c3f7e48c8cde8fc7c7efc6e3e1bba377c31fdfbe1d1d8fde9eee3969cde068ca97483e986ff5aee0dc9f2ce78ee8cb4f97d7d3cf93ebf3bbe98d76ef8c0cbf8f86c3e1e8d413f847c98b18d6ea489055e554c1394968fe203fc9ef0b9618acdc43dabda76af2bfc9ed647a6df51c42cfa1af675926459c2531ccfde79a3e7ffde96ef2e5a7c9c5f95d4bdf91d5778ec47b34a858abc8a810b134e0257820676197f9b3fffc32fbf5f266ea876becbb21e15116702297902738edb44a4e99b9f00066bb99776f1d2d530ff2ae0d37d2a1d9f4ebdd6c7a35bb39bffeefa5ef9c9b069f7524d74d665bb73973cef23e011ad240e10979bbb618f6e9598254262a922a047a0cd9ade2444113ef63ef7d2d86c375e07565e8370363002951995627be9ec1ca7d9cb9f2a86f13213ff120dad31e3f29315aba8ab851a8ec5b718225b2b8180a90b096d891fcafe83783353c5fd6bc6704554a0345d4ba8228d04962170acfdf18cb34544bf86c847aee1a59f28c1f791c92842bb6a241502296eb41bd286160b25404349125ced87f466410080c968a7be435d9b7a118684c542f4f9b41a8a4d5d1908eb74b20d98f72ae9c77c2dc73852144c840294b161be48c58c491ce8d154a94dc89c374ea69e58f75a3e5d9c78f30c533f962c1826f121c90a76a90c17c2c2cdaad782a04e0f36abf92f7e1ac62c67e13f24e64eae53268c763ede5b32e00190bbcf473b22acbe9c392129e51d4752b2d4e83a40c590dae7399f36212d9152c15254227c38735e4ec4ca99935b3dc4d7063ad639408160cda9b5a1cfb1450005dab781360ec0a0550310342b79b443e56c1d5286804b865b14472a75465e58b70c67bc73195fdaf4933e77b3a7d8c5adb05c6b2b4fd3b145795bc8d1ca7aa07cf6b39b12eaf043537f645bc407fa1f2a0417e46f276e6d3080295b54a591b3746a8e19057a819fd7655f339e52ace5176eaae8ad724aaa8b090554d1103a01fd56db1d94bc3b0413d2a3873dd49d60144a712fa146268439bd9a4c30f1f3c1291ebeb209ff95b0f48c3e54edafc671c54ebf448a80aa6afc1ca94ddbddbc9f4a1370e163ab5025aa267958b032a54b0231a27ae203d55a1e3c9f161c90a6410cb73b867c153dbb581ed6cb6edce751a633b339d9fd0752e6f24395ffc8b14d7098b2e7ef3cf1d960d0d8b35d37d23396ef2a2c58b95c4cd8cd844b8e2c34d08ef204395f23da4b3e75593092f72468be63cacfd57c59eea5654e250d3a1322e8e64a70dca002a6b516a8a56a38344b9334a0cc8058615d5c04a4684870adade8cc322e4a4e99c15b9428c1ed7ee6f59129d9c04cad099346a96d39506ebbd41829ca212213b27e4beec7e1bd37a07093b938e21e00199146665e24c91de36eb2336a53c55dc6448cd34edea45514d66394d1fec8c7cf8db1b70db60800fb8c6180dc8ff1517aa88aea5b3d5685bd11fdacee6145b0bcb316e84729342b3389136ae79a99f4b2208639125e08eeb6a52ae87f6d63d823af7beda1e802a24a5502f46286ea3e16fd7b63dd5d920889e48dd8b00903e1a3f484f48bcb4370826209d771ba815321382858c9627ac72b24fd8e061d027c3c17074f8561f937634e4ab549aa5de408b28180da5bd65563d3e6a954f3f9b7482efd7875b9553ebbf7ad2f361e797d4c9c6bceaebb4b7393870f7ddaa6ed9cf2d98bda08f4c4e23cd16bcca35474f637a503bdbcdbb9a5f708352f81d86b2ca6c710575de7e354aad3518e5d641bf53748fc7a75d3bdd2861affb7553c9ae4a688784aa27b17712bd6da5de5a7bd061d3e9e6c22d7591bffe720eeb4c6b6fcfd87e39bf614599a77ef0a9e8ec38410b605fd543a58c292807ad7643567b57be84ad2883001b76ed3b5e34d9cff4ea26abd52998d2e514b02e68edde35e87a7485cd3766efce1dc4cb98f6e0bcb1abd8acde71c1e709a7cf68f0c5e936d0d8cfbb42c5fdb6534fbb73a2db3ea643afd3095990756db606c82d3ffcd036e39595d5cebf1745365ba84ddbbb9aa96d7caf9b2bf7fcf06433dfbb8f9f2a68344eb3a72689e679f59e5feec03a1bb0957eb0a58a999e68df5e3aefe64085ee6d5036f2b763d99e5d844e8a6d02ae6db3d587d36660ce4166028dabea05752fb552a3ac0e06992a2e54bf0ce0de74892e82674c1faeac7625fa426abb53cc95b257822851ce0b55ddf0d58b83bef5eb2b2a45d71572fc50a47b50a3bdf9b34b18a3bbc18f2dad837960857320488c2d23395674b7e7ba6a087905c1aa1eb46e33edbceea88ec54c3eef543ae73ce9d2aad0eaab26af1b7fe4f6cbe5c5e4ca5ce4dcb6deef397763fa87b8a767752508b0e224421e001eb6ddc39dcb7735ad9ac5097b6449878c66aed5b93583a3f829260e8a2a719ef7fe064e59c818671c0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "hash", + "source": "0x1f8b08000000000002ff8d4ecd6a023110beef537cb7b617039696b22d056f5e3ce95db2c92c09c44432931511dfddaceb410f820333ccdff7a394c22ad9120807e78d83a5de4762ac970b38cdaeb67dcae88e4218c848ca3c6b94526362e3087d89467c8a0c1f21ce3376139fce84a8c50f148e95d684bab0e892b8e993aaf040c8258adfd1954ff3c3699f6bcd6f5c1b0ac5d2acb951b3d8b61ddde1d4a0c624837de98237a323b0d3f3edfcebfbdd6ad1edcdf95ff9f9ffb81f7e9fa33f5f419f9b0b1815d78a40010000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "signer", + "source": "0x1f8b08000000000002ffb552cd4e032110bef729e6645a63dafbf6a66f60bc2fb30bdb4ec481f0d3da347d775916566b343d951330f3cdf7031f4646adc007d9349e76ac1c9c1790d66603cfc63973f410f60a504aa7bc0733e4e3d45a1b5f0cf7ca86885a9f9ee06422f4c8a98ff8bd02c48410801e3a45bc034ca42ef6018e0ead4dbc98d8224b40ae730b693d0a21eab6408be27d1a2a9db170ce9066567bf9032aba6cab2d3d02bad92679201e070ea4b4cc00c640070536769a7a1822c3357ce91b789864acd2aedc6e17dfd15852b722fc31bd34b566b89e5cc1d3e38cebf1b790552e5d2af5065e55882ebd838b0a0ceb13d090de4140b289e916d9631fc87091b286b79cc058f556653d533d83f180a4b14b9f8538d7d799287796944603e4dbf0c9ed3472f4305be88cd1db1beaf05f7535813ba8cc112e710e79d67a597c01a82c145e1f030000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "vector", + "source": "0x1f8b08000000000002ffc5596d6fdb3610fe9e5fc1a24026638e131bc33e384d817669b17e6833aced36a028245aa26db632a988949cacf07fdf1d494994653b72b7ae0692c8e291bc7beeb91732e7e7e7e4192969cee92c65678affcd12124ba129172c277a493589a9204b9926848a7ba2ef333622af44c2eeb85810aec8c5d98c2a960c6138393987f54a166b992b42734616b95ce3ca23f26e09b22b991429234b0a8fb89aa09a978ccc0b116b2e851a9905fe60399ff398e22b22e76e96b2da148ac103ac2505c32f665196366b5831dc9cafb294ad98d0cc2a96f01c544bef0917e4b9940b6ed46244652c6e364ca958147461b59c153cd56720df2c2f339653fba88a78695606c948011e29d352841680c82c0e6aa02a4aae604196c25c6fa984cd01e68418b1b9ccdb9a28d4536a18347b5428c05e6b96a6062a33f0f48dd46c4afe6460604284d4e00100f01e66288df8c11246f0b5f4b1b6bbce584c1152e38e25058154ca4c0d49ce6e0b9ea38ff105a862482234e02b4996c3528dc7610390d7450efa0a14654a23eea890f84113c5d88aac65ae97846b6328cc804d95f190ef7e4710a593e9d4c248be9c9c10f8e03ee82c8ed483dfa0056eeb84900f853176260b91283305780c00bc78f5e6fac55fe1cdfb77e1cdcbf0f9cdfb37d76fa7a4f8f92772452eee2617f0b9b45b3cfe30bbd72c063a851c66e685d1ea63bdfd2f39a31afc29085b65fadeed3d32e38ec959314b798c165999272f2c039f0683a993af5ff5dcf5770b2c1a9b32b1000cad4b1fd8deca36fb975372baa5c0c0c0d0538d6731f2c158cf57ab42635483d3e740221133e2dc11f10814647683b6a2242aa351b3dc0ce8000c9fe3948efbf619059320a11c346a48b8310b8c3b75effa5a9824b5e6118b2a939848f619d255302bd4329cd1f8735b47c08b74f48498755f06c75181929ef873f14df00f61fb1ef6357ec0e1e37cf11ba41c8c3367c83c972bdf190f58541a8b4c00ee7594ccfaf969303d52f56b487eb9bcef83bcd51333f6415d13bb62b89551ca4e46e9cba3b76b9a298ba79d0955457bfc81bc4ea24ff804d996c74cf567128e7eea4f28059af4a6d2907cb294ba3ce98484a874832db18b31ed816b64b08879816d75f195a82a77a389179b1d94a12211f78159a4843a623c13805ed5409d07026b1044bb375a9aa78df98d25bfd1c05b1bebddcdf5cd94ac974c40a78356c88cde16cc54ee21740164c15cb1af9a1706f1993bb4dd22594e172beaa6363a50e3b610dc36a7a9f2069850450e2e879f22d5e4ea0aed0f2af5373ef4b0b5629648324f585ee5c99a551ddae09b2ca531eb3821b7ab3d1c8f5bf0439d0307d86a17941ec860596006a1cc0faaf624a8b8534d87cc2274689b0a10bc6c0da203eb315ceb6cdc08ac971c3270e02ff0c49be1eb69fc0c4c0f80079efcd017bf6c49b7d5f2bffd48c66dd19692de97335f70b3cd3807b7a7a4e3097456d0f529f0ca1581ccc16ab737b919b88d7d689a76fcedbe47a66b8deae6ac6ad6a274a9a256dfe21180661964f7c6ff20bb2f1d98e5a78798e1ccb3d167c4071dcf3de2caa6d4e0d44a0cbcb085dd877591f097f1d669e5e5c0dfc503da9ad51fe77a62a5ddd7b8c865c50847238c84ad28c4a38d905ef6c7846ff24064cd5c73d50dd14aa3879aca9994692b4a5d6c9a50ec6611dbde82a6a68630533cf6d41b4f1997dbd503cd206bdac05d9a418fd40dfbbd29c5118743a0c3e8768463c2b10d12c63937e6b23af3348eaae56113de8ee74df368bcb1cd89cae82338b14d89004751bde810dcd80fd8340245bda9f537153786ce2c38f70646d32124d9ae93cc12a19c1fe5a400bd343485fe3bf9aac6e8188735387422d9a1f0555e5be1a1bdc7d16a48d492cf3576099899553153708247d12aca47de391a7daec84d00c060ec6750ec590ec7765bc74dab31df53c68f3b43b42a3cda72ccc1c1bdea5bf14125ded6e1d2b639ad9e8093a7579612666ce7fd40ab491055f127e3fdf4aaca3b1f922f1e51e0cfc66f0bab82520eba05d978fa788a6033df872064cd61d85c235055b3c2b85f638709baedf4724396f1003a16803791cc9e5a2ada7c4bd620b0e17f411daa4057fdc82bfb25d8b3cbfb83ad140370853cb9f349d72683e7fc4ab89fd33de38ef63ca4ac7ff9a9167a6d2fdddefa978f278d92ee4eeecb8618b6711d2ff1bac1bd4e645c20d2f6fc81058adde9869d8fc9aff6d6f36575c9b763652f82e1966dc9e2cff6783cb6e7f8db82a6d505873b95005f689220e3b082b9c3abbb1c88ca49d49451bc89bb0d77ddcb8ca75dfe9493e9c18b9a4e0be15204ac666a88799c0c30f6c9e9694baa1c7f708267e38fa6deec90b8188dda42e5a47e37197cf4faf97d981d820cbc03de65780c47e4105fd3f9ed006cbb1b2f7781d513c103a835a08d11b40abe6d603c5c2c2a5d742b709da0939b1c46ec018a99c844a8f0f59ce75edadcc7338875735a3b9e6787b98584f2f8d5618ee3cab82f57cc3f498e31bfae175e6368efe51087d1361036a985382ba4eeecda6052dde7fc3fd8207bb8174df0dc95e15b0c9b7c30157c279e0ed5cdc93f7f017c6c3f1b0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "error", + "source": "0x1f8b08000000000002ff8d56db6edb46107df7574c5114b55d479263cb8e65e78191155b802205ba042d82405a914b8908c565b84b5f10e4df3b33cbcbca51d43e1816f772ce5ccecc6cb3d984e93ad2b051411e4b086418255283002d0da8107c91a824f2450c32cb5406be0a70fb711df96b109904959a4825b86d14e45ac2f219449ac67883d6358478c7ace54113891662a932b3009104f85b6b9999df16104a61f24cea069de173dd9d9c848e487006b17a94da2095c165b49156f38b7360783e0d994856120e79274d6506ede238d91c6652b2610af733023e6272181196d2f28421d7d16a5df2402653b4512646f3de7161993072a5b2e763f68936c836f4f851157ccee14c0aad92634b75173dc8046fc136102c5a4fa73642a2b8404b678b13fcae73e1781a2bf515ddd27cb3d56a9d2dea407a655af126c7cfc5e0db8f9159d32aa6ca88c460fefd58649cbb32b2a18ad1a9285951c8369d0a7cb158f07ffa032f8128791071148037e9f6fbe0af11c637188b47b44d26beca13fc92016a071df7d1374398283493e10f1b15b6037afde1276fd0bf9d77efbdb1d79df6c61dceef5b683db5d8c76bd702fecd226697f0ff12130bd69a2861271e551607ba7017834b3f546e5eca5b37a0cf8bb09414b080022b208d05e214b18c151e674e37ad902781cc288801d50071caa748b38ff6dc46a458242ac69513c06f46de4e47c3710793e59b9c36ea23562411ca6a2d1eb0d6244928c0124443c34c6de04ea9552cffd4bbcbf6a4a85b8a499e255c0b68342a316052869825d1d356dd7dd6582d5827f2cbe1da9854779a4d3f5679d0583159c3579ba64823ddc4c3d12a69da40febec64890af73fb7dd4809e406e4ed19a7c4f9813db80f223411edc4fa71f1de6c258371968f8b8379902d135384618d494a549a63b77b11b91b195221265e0b4737aede4cd7a478e7120042c2303195252fda2f5d61e3ed5382872af4dd0e9d8ebdf0f0e006cb78a63bca253e947614492a96b4164ab7c834d0338741d386fb58ef09a9579a9726f7c37fbd01b4e6b91a39d0538d7558a4265a1e93ce6a64c05bbc1555ba7e81e4919d78baeb7836b349bce47efe7636f78d7ab795e573c144bfdac8ddc94d1c258536d6266a86233db7b15b6524b5aa405bfa92ba0d7fb3c9c4cbda9437b56d18ee5b79c5a2c118a1c1912439303e1829c93b889b4e6822922ca95239fd2883a09ddc0435fb10a2af6d39a7d36f466d37b0c6cbf8bf4b735ff79c5efc711652750d23acd65a5f3308c7cde40f7d802e5309cd50c1f7be30ffdc9a43f1ace6f7bc3becbd1ae53e8480353a8f2ccaf241962577442775e430f47d3f9fbd16ce8405e54905d95f8799661577da6e3218e5b738276d34cd6d490825728d8287c7ef5984598c0f24ccd74553379ef46e3adf05c6ea9a232196bc290f26cc8b069a33f9821eee4583e31d13edba6a777130dc63deff69f79efeffe643aa9f9de547c232be3153a514d6792174ff96fb932a2027eed00634f18cdc6dd1e22df7bb3c99633573f690d95eb4b2cd9aa4f171e95c8570e72d71b767b83810be855807d1a6849d5628bfbeded02c0e135f406f5f577d5f5f7f6dd638b6d93c6921a455d486d57caa486fe878f831ef509d79aee7605cbec21b2eab2fa30f1330e26f120a2582cb157a3cd0117982ed39949939188f23800ade2075be7a8f95cd6969c6d15d527af3ff0de0d9c82be759589f33cf7cdd66c731a33376a51bf77dc974e0341d27c894a85304feafb87e569663c294ef3c79135e23bde04a8cec1cd0d9c5e1cc15fc551dcfd817f54878e55f6529a89d546606713280ff406ad97d7bc43411ddd8e3ab0b8b959f0ccc2920a258515365224d89734b549f68bfc607c5a10f8d442c5aa07cc07be9d1a0c17e3835aafe3391614d2d4b61ec345bb7d86d6fe01a76fcecf2f2ecfcf5b976797adab76fbf4e2f4e29aec78e91903ca44d3bb193e6366b00a8dfc528e88b76f2ba63204d6257e37ea7914c267b1c444e113e30b8422d685cb1564bd5b4396365c73384b15e7896f5ffad40bfe2bfbc59372c58fdf12ef45da8b4e3f2f67e761b695697074f17282a2348e38d30e1c8ec6b90ae73c1af740b90372174c69154fc4ff61128fbc5d40588eeea07b095523bd185fbbb0eaf1340f6412ed43fb6954edc2c35634e791f46b9c6a2eedbacff2da6745316b76deb503646e07c81e88ad29b20ba99c5808b516b9de619003f7f3ecd89d7ddbeaf726deb6fa5fc5d569f17b505e34fa5f08a8ece77bc553b6e902e3c7c1bf325586b5ec0f0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "acl", + "source": "0x1f8b08000000000002ff95534d8fd33010bde757ccee6149a4a80509714800a95a7140425d09f5de756ca7312476e48f42b5ea7f676c27dd6cda2ee09b3d336fde3cbf592e97b0a2941b035449ab550bad30165242db0c3ac55ccb17b09280771006480cab1a1fa872d202614c633937f0ab51c912f11ab2e7601bee533c70cf75278c114a82558840b9b6444850d50f4eed22d46c1a048fedc07930028f7b8c2afde88b34efb109c7761ed753c8a17216289150710cd7c4e77286c9010f3110e2d6707b0b421acb09437e5c82b06f107c4f444b2aec85340222913b4776a77bedacd37c9124032563595178099e12c0e3d1c353a458be7ce45afbb7f01867e3b0baff06a4d548e31084c6f94dd428cab708d9184171bfdc3fac37abafeb02dc87f7f009de9667504ca14452d911eb2ad4fa61b39dc1bd1ba819ab1db501ae2106afa85f0e4cab3ec7eafe30ccea8f17bc8038ecc7a1cde7103d3e8ff99da366681409bcebedc103472abdab5a4151d321926645e8fa8c8fb7a7174d50449f79ea9566d869d66fc5d8746c6f131be5396b8b29ded005dc752e4c9c87aa62accd265c087a59db9bf46664327e571a8a116611fd77e78bb31cc2771785907bd20ab6257ae73a746a3a7e63969527f011b377a6d95684fe9c8306ccf25cda4e8d3b354c5b6bd55d9d5787fc7f1eb9e5b8f0356e33cb710118ff9da14d46aae161abeacbe39767ba0d3857559938f2923203f559b3c8aabc623934326e6e5d8f7abcb26113914eff1a65ba2051019552ed44a8734bccf598331c544122c49ee8f9757b8d592cdafe9de005db4e8b063bfddf671c9363f2070cea11ba16060000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "bit_vector", + "source": "0x1f8b08000000000002ffdd586d6fdb3610fe9e5f71ed804eeadcd4298a7db09300199a6d06b60c68baad585148b244db4465ca13c93869e1ffbee38b288a92bd645bb161029238e2f1def8dc7367aeab429604b82826933915c90dc94555c3a723c04772bb62de4e8ff4dbe7cf9fc39b15814d5dddd082144059416e8172a8a4806a01f34ab2826bd9bc625cc0e5ecead5e5db09c8af5fc2198c6f5f8cf1993a65170c55dc64252da0246c29565a0915d6976dc661496f08f335fe7079f5dd9befbb2a4fac8346e4d79f5ebf4aae67bf5d364227d38efbebec96aee51ab2b2acb618456b90d38fc453f4e3c5dbae9ef18b97d61217b5cc057c43c52f66eb0a7dcdabcddd088abada8c50a0aa89cda67a4c7c5ad3c8bd54795f50521613301e9cceabaa3c37023b636923e725cd61211930b28d3c3df1c4b3df5aca3827b5786425e11cc6a3266bf1749fd4a90b7648b8240283934c905ae5bcbbe082c02513c56442d61b7117791ab62b8a608b3ef10dc93d5fd5a31050d38cb5264ecf6cbaa67b047135726663383b6bb6b61b76ddbd91d36d55c7bb38f0a3f17d23f92a9967f987e8c95a7ae18d6091959cc45dc56d5a9a4f5f35780bdc1808dd1c42ab63386e2bd50f3a14de5970aa6708192d0e479d776d88adaaa3f6b7761cb1e769a22c2f6541e08a6c2fe6552df86cd1ba41189735e1803fb214c7166103fe36822a322bbc3f40cf179eafc83af38d0f179a87762d97d045c33308b1316c297eb2683f207b7ee68a6360cbaee5c66bac068104834140262055c1688a4c31617a25755c93627a96595d948473c57a5470e45572432bc9913c32418ec3f2e744446eff04343add318fc05933e430c0084e02aba041bb89317ae2147b4730b2fc1d30c1ad57e898abbada26e88aab96508de799a7e8a9d282244afaa78b26fa48c3dcee47da80d577cee8fb7df8f1547a06bd0cbbe44e3b8cdd267908346d92cf1b00b7a7165b00e9b4f6f0f333e39f174192fdff30a449f99e20d209fea761d451fadf00d2f58a2e440f2e25c197f33b48b3b56a38e931a0bfcd3f6a8a5bd624537d48ac320d36a7cf29f99237a46851da4c6ab42c614ee023a92b9ca8701cecb397f229513e1c02a0f1a6873e4c4764965432da73b2bdbcdbe314be70c143d821804ec3adb43be2b4c30b35c3433837d86da424eb87829a06c384c2b4d5e3c1da1f81708576278cee90b1433f38e9f57c1395c9a0372404c1fd495edd49506e809974d844851343f80a9e59b3714f95f634a0a4ce8e69dffa60fc9dc1a7110b83716aff5efc7d7f1fe466385fb9127b4d84ac0dc5e317224914a3dfbb131c43aa5a69eab4d5043b01270c5bc2e393c790b102528da8d45fca601c56e9f0d1629dee6f1213505f5a3e4fab78da2da7c17d7e6f0829da0f67a01fccf84cad1e9c2dcc60aaa6d1bfd61efa36fed51ee1dcd39c8c1f927d47fe801357a470d895b09434180fb3d6e174dfab926ce5474caee7d8d7b0a424cfe6a5ae2a1e9b12a35edf0fab210cc3af83d8dc0ab43edf07e2c3be72df595bf765c59604ef2038f95d12966b3ee0e6dbb69eee6a41d952314384c5edf41960e34a0ca9163ac419336d096f293005ac022ef39553d4981d291106e9580f08b5769714bde66ebd55104a9aad49e36592eda512cfc7065adda4365ce2090e10f59e21d3889ff9563cf2c728bfc5773a2f66f2e1cd169bade6560813a36622a16e8c9404cdf59756cecda4a4181ab388b11f87f71dfb1c0ecb4115d0a3bd6d55535b0c7374f24378256222347fc39b87a3aed8333f113e12bf78a7624f2a56debd0f4f765bd545a2eec5a2ded9b87b36ab6b77f4074381bffe54140000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "option", + "source": "0x1f8b08000000000002ffcd595b6fdb36147ecfafe03a20b337c34980620f7653a0580b2c0f4b86267b9668e93826268baa48d9758bfcf79d435212ad8b2f89dbce0f892d91e7f69d1b0f2f2e2ed8c34228b6947191008b612e52504c2f80dd655ac894e94d068ca731131a97815ec818df4b9643968382549b970bfc93d03a26cd369eb0154f0a189f39ca4ac793897dc7be9e31fc14ca3d5d41a4653e3d334f2f50a27733a5731e99b572ceb825854271cd967cc3646efea552b3193027c698dd2cb30496f81562b6167a411b0d6922a2c417a8187c815c1215990252883889f2975ce18f8d8648c66808895620060b8e8fdfbd7f5063b31b052b22ed6cf3e683e5f716572916c96c3362712eb3112e9339383de983724c9c30d526f3f2c952cd202aed5d6fba30e080119d5470ca205a3c59f38d620928820a8d0e9f0ab438a272b5b5bbd44de85f14bb6473dcfd2a45a55f91f257f6b7924b7835aeb68974c573c111d604d201b21cb237d7ec6aeaa43df3050badc821892452029f76272246fdb906439f3c49669073a31cd71a96190234ee2514dea340215b2f44428233b590451213d0e12d8a1eda9d914c95661feefe7eb8b9bb0d6eee83fb0f0f1356fcfe9a5db3cbcfaf2ff133fd0eb21a893a65355a74c97a7bf7d016f6caf3fe8fa08bdc4848ec371543b3202b668988d8bc4819015939d36038693965ed49a56bf97e389918f283a1f341cf1389b2b73bcbf9e392a365f8a702a6d5633e93b9568198b3394f94f7025255604c62865045a2d9f5b5a11a34e49d36b9924e5d0bf72b56ebe569d361cf0a3a444473918af49185d0322c4544cd1f26cc7d7f868915b24840cb74001d762646a7b733514576fdf67d817e9ea5a1dfd49823311ce62cd4a197482546864be54d8b0bd5005d4fd8794316946e2665b29d548d9171b775e5733da684d554dc513fa9a51dcd811e4e0f3002e9ae7628bf8dc841caff7484f627f73347f300ed29a5daea8d49974c8159b32a56210439ccc3baeedbb2961b12985d8d1ce1519ee4225bedb4e68819c6f8a2f6fc1edf2ae939ebba9d2d2397cb4e1fcd9500bae4dd1fd89dcab775f703bea1760d2c3b3fc797792ed7f403a581febc2a96cb42f319d640940f72482320787dec95c0a60a51f47a3cb2c351d85a71f6c54989a9a715570a72fdd3a0d66ed42cc7c3690b7aa77d09fc650b74bb603fe4228d9202d5b72adfcc6ffd54b7cb012afbf74519df6f70b2b0d02e0321e32689105b7e8efc4c243e038e803aedc011d913751eabadd8eb800c8b2601414bb149b21878169db3412bffb9e5c3a1cfa7b62e065b135ab7a31fdb2de54e1adb0352a1f6c7a1176b46524f85fe1cfb02b88f83fa117427ce1373e861bf9953cfdb41a56f17fad54b47a3ca42f6cdb0fa7d622fd8f6805f0f7781a6d23f02ff36f67fc87485c9cc806fba1a77a6262c310570db54ba87b30de371ecdadc714feee5490e3cdeec6e52e62249b6a31b53fecedad20f23ed3c0ecaf25556a84530e3d1bf356e30dc06d860d03818b60a262a730c9a5e553473856dea6d989bed91ff6ebba6f6c2cb59a8cc39d82169a00d5373dc44547358ca15e14ab317db2fd1af3a239801447ca2c20b9fcd38662ffe9d31fcbce29bc9cc025d7b4b2b409d58dfbe00a36928463b81de730ae0ec3bb64601f23a0424f3f8b46d12b1f6b0da515269cd8f6899eed73cb3131e3463ab6c9ab8c624e905d4f6e297a0a390f571c9f3e581b43fe7d20a143ab0b6b86e875e997f3ba2b32b0fd7cb2aaaad810761f043c3f5b979f985de53cf2269806b8ec5381f16e43af5a2912d4cd8be95f4ea92fd5ecc4dfad06c9ecba531e400f1a7ff81cc03da88b32f9e2472adcc2c93c42afdd2148a721edfe19b2585637db47f5a74bcf7ede9004c9aad4b7d55ee0d9ebd9e7b62d72dedb4df85dbbe699df268bf7b0f78e320712812ea71c86e3ac649a3d2e1045e817c2c4727559b2fc9d5d642b592526c29f7f4f5b6a1ef1a1f34dbf7dec6dd9f88b2278458efe9f78c9b50a1efe9ddbb7b83aecea04bb7ff47fbfe4f9aa1e4b6efae73055dadd1f0068da85e52684abd5bf3c4e7346ae7fb0bcc2e88e93d2093aeca5201d78ecf52852a01f83183e4faa03e6cc6f90dfa8a1ad11ee4769eab4af15be3ef2662dd4099b4b805943d931c8153bfe1fb4c7dec30fd90e353c711c84c335273f0a9af71f152f211495cb93947755f38aab65358557767e5c6be24a865804bf6844ae3def68834878f9a46b41c4f9a8cbccaeacc6838b98bf7af4f68162c5f42470bcc2251414ad81b4e93723ee3253a39301adaed4860054907a1a6c895880121ac7311e916983fb33f21c12b55761f2d60c93daaca3ce88e448f571b911e177307b16d177369ab14ebe9ec3f31ef599ff1200000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "string", + "source": "0x1f8b08000000000002ff8d56db6ee336107dcf574c5f0cbb5093b6288a404e163076b78081222dba69d1379b96285bae4caabc64d708fcef3b43523275b1377e486c712e67ce1ccee8eeee0e9e771cd6daa8526cd77090b9ad38e4bc2805d760e8ec533833c79ac3e75d99ed40f15a71cd85d1f0f7f36ff7c04526739e830fa36f6f421c6df234f50fe1f506f0637578fac23323d5bcfb50d6a694224d5f3ff1aa48e00ff7f334bf715677087621a0142fac2af3283146bf75169914dac0c7e5d33f8bdf971f56649182fdf51778849fa2204b91f32f20ad0159806262cb47dd974f1f3efedbf8ff1c833873b29355ae8181e6ff5bc4c229e2e668903a4f54a9616b19e6301ce93112361c0b006b8a7b28a43a30e35323473633e0c3c28e6904531f13c895ac133c958a0702e9e332a4e0297cb0f7ef1277743a437caf3823140c04ff1cda0285928731acb7b0d84885bd2c0bd7715f402e4148736e3578da09bac75cdb4d556650585fcf74806a9636059da133adb932df4d4b64440956adb21dcffe5bb90013176196743b389bb7ce3edaab333bf54b7e5625295642e66a7f63e9fd4a8c3aae2e56e3f5f8e061bc8baa42e2ae55348b4ce9d3c85ccb039f768a9ab57627e095e6171c85147c1ad9f6b9f88b1bab04b55ff1822b57323243cdb5287e551d89144a190a1cf0e0e04c918089c787d54fce5c44b026fad6d90e14482cd035e09855616abc0aa119f88d1f6a731c242df5ca1d74f36ea4aca2841e459ab6c60d82d92516a8ec8a8badd951df232409ddc5711d78fb2e109a04431cc1f2228a455d73e187840b3448c59c814b75b0cd0c484035b767369234f8388790183dbe81201e4c078ba3ce0fa3f3bdee8ca401422fe93ecce13d896f7b282d8926c46c806f296826b836492796a01366da718438696623da6df9c24543a55b5efea829089d585c52b663aacdb491287fa64694e7200c8a63c6753d0139d68c8a9bc0e9637b0de6834987801e1efb6af14cc06402edd8403d13d65583711abaca4c3c11dd528a462261a8307fa3d7de11ce3d9cdc8fa0ed66e539a366fce8a2762db14f033b6612a822bb58752e321273fd187f4706df1353ee647e796221841f8200aca6bfa401dff546096546c4e068c1adb82ed73450c8a82895f61d815aea924625302c6bbd6f4db461cab44965d1f7a38d578aacb2f43633956a303b7890deacd51e8189d5d7d35ea3395c4e499bb87d27f0f505a1e39eb59521a857566ddca17638e1200b42ddbbff639bf7ba5a1b1d8dea7428eace56da93c02b2766fab67f93accbb7a97f3f4b3ab9ba17a13dbaf092909e1344bc350828fa6075be9787da9af0eeeb474b472632cbac52cd4b443bd45b01afdb9bb8a6d70221638f82aa1b193e9865258b4e43d5e5cd7326ad719cb43b60d25f02a130786206ef102cfe5cc6e9857fea510cdf5f5e3a5b3fec624ff598e7a0895dff46a5df8c13f56a3c42a4f3f3e1155c0d4ffd68aa5f1fc69cdf9c6ebe021741ac35180d0000", + "source_map": "0x" + } + ], + "name": "MoveStdlib", + "source_digest": "4366EEC0734CB6E2282E32C92D9D8154DDAAF4D90930ADEA103DD6572F7DE195", + "upgrade_number": "0", + "upgrade_policy": { + "policy": 1 + } + }, + { + "deps": [ + { + "account": "0x1", + "package_name": "MoveStdlib" + } + ], + "extension": { + "vec": [] + }, + "manifest": "0x1f8b08000000000002ff658f410ac2301045f739c510d7c67a00172e7427082e4bb1b11925344d42266aa1f4ee4e28ba71fb3effcd9f3aeaaed70f6c84d703c20ee43ee640976c9cbd49f1c24436f8c2b7aa529514a2d6c62424426a046553a26adc4aa14beffa4fee89c5ef90fa1f3f8c197dd1d217c10a8e21c139053e083980f594b5cf566784769ab831cf2d538809ddd3a0e21d06237a83beb365ca89abcb6a964ee042a75dd12bb519385ad3f211cce20349c99c93f3000000", + "modules": [ + { + "extension": { + "vec": [] + }, + "name": "debug", + "source": "0x1f8b08000000000002ff7dcc310e83300c85e13da7f054d1a5d9d3aa37e8c68e4c9222aba983c04120c4dd3162e7cddffbadb5f0c9a1a408fd90270ac41d84d8960ebe85bd50664c24cbc3fc4f85bde4b119253877b2d5808e5168d2466913f9e3aa396279d5ef6a7670abef4f73e53488fed7c8803e566a37b303fc16fd6599000000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "type_info", + "source": "0x1f8b08000000000002ff9d555f6fdb20107fcfa7609954d992b5c65996794e53ed75cfcbdb3459fe435a4b8eb10c54adaa7cf70226704900b5f54b0c77bf3f1c77f18134bcc3a81c18a105654d9eb39701176dbf27e87586c4c329462a40d9d8f60f9b99da150b5e33b413c97f64ee6349514d86970435231912112723d60cf229eb9af09e1565d38c98d21ce997c4641c9493a22f0f38474fb81604773cbbb70993a427e138d91a78d5b535daf3fe523132e7cad1cdc9766c7c00ab26f1db0585470818f78958b74e1dc0e0d10067ffa406607068f4256b9fb0925210b2bfdbdd4782f524b009654b529d3f35499eff85cdf2f51fc394fd57ef0a2456510c6c769859ab686b3d687541bdb1ad44291ed997e8f2826f0c438cb65bf4dbf47482160e38bcb60b683537eb7982520718dec715f8e45a60971a7bf417a230253c2b891c3b389565d5e13cdfc91f5d55e8c75e43454827ca259d9cee82b37d1655731999c7ee6258bce81f279a67129b86b1eb9507bc5e49f4328c4e973e6d1191f8ef41bcee0337850e4a96559085b60f3d1edd24534c72fc88c125dcdeeae10bd0dae97453dbb8a45f072dea5c4019e4047992fbe707b8cdfcbd4b61f19c82cf8768568396ba992c19acd93443012f60fa1dda3e35a9f52b784613928f9aa8f32db5add992eb8802f02c4157453acbb5ab907f30d6defa8991bdca05fafeb2abbaa70bf31f749cbd0148a48bf4ef070000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "from_bcs", + "source": "0x1f8b08000000000002ffa5555d6be346147dcfafb8cd42b1c0ebd8250463af4317ba8540590aebf66529d248ba8a87c8336266a4d85df2df7bef8c24cbb1367d5811883577e69cfb71e6e8e6e606b63b6961aff3ba44a88c6e648e1604a87a9fa2015d4051abcc49ad2c380d99560d1a077165e45e3ad9600cee58d191c2e83db81d4a03062b831695137c0ea482c4ba7cb54a339b5cdd10270135a2acd1ce023dfdd149d055a5ad74c8ac096d5ead9c8ed3a3439bcce0b3a680db0907d2f101a51d58512083e558488594f5232a343283aa4e4bfa9770522d8227ee6a811433515b0624a84c2868a42e0531c87d452789c23a5367c4a41a61a450ce4e394783853694a02a8fd0b7a0ed80e04051a03198cfe0a1f08c6d4ea26c5b673dbbc89ede0b95bf27b00c7d358839e653de646902c6f7231195d336f6bdfba88e89e781e79dcc76e03b6c1aa23d65386346cffae920a80e5cf9972409c573bddd1cd6fdca802374ab0d86ec2d91b89f265dc44f44e43991dbc9d984263fff3a3f8834a35144116c36d0bf4e611eadfb445aa58db0c2b72ba0a7cf920620d5e36af5ed0b9604f2c5bfbeacaffc2e86fb6bfbfb12b21d664f50085962ce4a1b74d92bd227c71a0970fe3037d9c1a787cf7f7ffce3e1b798715650dfddc206e68745cbd04a8814035ca3d6e5a459418399d3e643bdbc8f56c08b6dd6fc9cc4f68123f79326f2b19731c07a7901572fc7c128fa36d4dded251655330e7677fb3f688b5f4652a3c5efe051e46dc04e2eaf31dbf571d836f8367218e9057050ca00975d4ec35e3cb5f79d6d630acfe86f1d6b03d98d84f71784da15cbd3a59af5282592299044065906264e72dd6febae4c275fa91c1a25cad82b3566f43ed6de1c1b45d373390ef0ecb07e96fd9f641ee291cd5a369cb312de837a6bf37e48394851ca7fd914bd6b6c671d400f747254df951e20d718ecb5aa1d08750cf7c508aa848c0f926dc2ee46ab39f26db5af8e3bdd339ce75192470b139c7f4a2e6efbcf85add8f652594a77ec3242c88513fce37886236d0faf9f1539ed4018e45312551e0d7a321cd7f67ee27fbcd2cb36343b9c1d3a13d5febd50a6aba3484b8cfd9e309c775f09dbc5fc6df8e7dccace9c723ddc1d367a3df3d9eeae4403f5b2ee781dbca7ce17eb8b484ce550f4703dffb167713d82ad49049be13dee18a3f1444e075a75772823772494b5e989c2a7626c57287173c6328545bbfbe5b2a5efbee2a1a229631ef3c7a1363811a9362ef6b2f546cf1547e303f0672ea6908abc6d757a7dd6ace14731ece9137bb9fa0f9640741665090000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "any", + "source": "0x1f8b08000000000002ff75545d6bdb30147dcfafb8639025ccb8348c31dc34d08d8eeda1ac34dec31823566c391175244f1f8943f07fdf95e438b6d71a426cddaf73cf3d573b9199820229b5502ba5b32822fc08a711e06354cfa08f255d319e8b9b97acb914bbd53a55e7b7a3a6eae2e85c9c558b176d544a2107674a4bc63751b474ff372367cd25a33ceb564e457924eb82ae1079e374757505f19682850ca5147b96d10c72212131bc24e973024c01171a347a29b2c356141cf0b7617bcabda7f30b5dbe5470a5e13efef578bf7af8be7cb88bbf7c8bc07cfc00b770dda979e72b1eb62cdd424a38485a4aaa28d740604f0a4341e46019b67e21624418a428c441b99aad3bd14c70ebfbcef0672e0efc1de4461b49db522e9b0ae12b86d18aecca8206a0056434671cdbc15c4a1899627b06c1e82dd1c0b403b5a650104da57da195463a919c03d35b6134ac2525cf48775b28dd12bea10a0466b5d199389b5a97244976627fc106383f69520d4f670ca78ecd0e91d1228b20461282be250cc3fe8103a8908d087e949695f91d3f2e3a3e7517867b6f8aa31f6c71a49914658087429e71d8c7a999e3e423f0fa0a5a53463489604f530c999b4fbe587d99f2230aa39d27e348ba555182f592c10443f84c5362056dc134dc3b24a86054b18556d20c076785c0545b82144a60aebf865957bb5190c48d184bb32e588a7ae060253a8f239707defbcc8b4985cc4e2357f2d26fff6bc040bbdacd96dbd379bc984c835e8427e6bcc19371356dcdf590a49f6ecf5a9a5c0bafd3e417612da4461a72e7e8e3ec00cf7b4aab1267827cb8257b890fbfdc1679e5fa4716e24ed744292af59bc9abedc2ed2d54617b1680bb96a2887144c3b215911bb343d493fe55309ddeb4352eb79f83115acea643729e28ee3257ae2bd78cad66d7dde900810f1b6b21d9c6c6beb3b1d76da7bf71077bb7e4dbdf0847af042f8e7fba1bb274f43ad5045e4327a8fcbdd68bf4410e87cd83f71752f53fad0dfb18be98d8b7c96c367594ce66015c77381a042c1bf7e5a98a66b3dac7d80f0cac03983591f5a81efd039a42ce9baf060000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "aptos_hash", + "source": "0x1f8b08000000000002ff7d536b6f9b3014fd9e5f719749136c79f00c84b495baed43d769d9b456d3a4aa4a8d6d8a55c0081b9a68ea7f9f0d79f7612161dfcbb9f79cc3f5783c862fd5aa94fcbe4265ca30a448a45444bdb1ca0ce13bc5183d0c1d7f1281a01452294b118dc70f6d7c2429ca37fb54e69946b5c86f0520429864bc18c0d5c5b9a34b002a883eb8dda1a2801ac432146714580177429228d2fdef4630e792824c91dc019800040daa182a24f064cd2d022655aaed3aff79ad301404ca556db1c77eb46536e7c5106f143f177cc5ca0b15881457ad60587189241d2e7905c6f9efbf26c448500209ca59b6d22c4a416bc22b258de790d405d69a05e08a2a1c817805971415c35f29cb58595238af7324042f5a33bea282d10c2e47f09956859054d9a01ec7b29d5ece49ad8c418aa958b4d6745bcd17fef540ad5a28ad3a136331ebb5a10249d65028eb3853da141f10ac6c3146bc924a2734144b5e9dd4e19919413df1d6c017108ba4e2f9a241594d4f7ef086fed1bb33a389e0c3f6d8d558f3d12ba312da4e700a8a561449be68cf4663ae5be975c8ca6ce34f5d5afda8ee05f34eccd6d54dfa15a5dd20aabffda2d4dd6176dce79a0ac98afb83f2ef6f540979dbee0f8a2f74dc308f24b3a2aca5d6dcb5b9d926f58afbb2ebd01f1cc5f702b77beee88abc966f945cf6fdc49e241e0e12db9b22ec2553dfb6c81427214edcd0b3dc1011d70b6337c6045bf6d4f6d51784da0e49a6c48e2de788cbb28f7de27813cb0e2749e0b82e9e3a010d48ec108c03cbc516f52d2b9ef82e46a1e3046e1cc40922a1e5f924f49117586f68614a8535db861ed565a0603038e9c6b7131845192dee656a7ce8cc34f73d3ef05955fb78008c7955f1c70d7000cc9c3d43b6134d97a582a87bf95a85b5ebaf9750c8dd9cb5fdf6c75a2f75bd6925df19470d4f5bf800ece3efb5390c3e81bd6bf8345b5f88a7de7f96dba073a2050000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "bls12381", + "source": "0x1f8b08000000000002ffed9d7b731bc7b5edfff7a798282987f425a9999e67cb71aa9cc427c7e5c456d9ce4de5382eb29f242212e00540cb4aecef7e7f7bf09801302041598a9313eb3847123133ddbd7b3fd65abb077afaf469f2dbc9786e46e35912efc66e3e9ac89f26d367ef3c7dfa54fe97c8af2faf4272331a8f6eee6e4e6fefec8bf0ea7436fa7b48be31d39119cf93494cbefacd641cae4efff06a3c3efde2cab82b73931cfde60f5f1c27b3d1e5d8ccefa661f6f5d1d57c7e3b7bf6f469189fbd1cbd18dd063f326793e9e553f9db532e3ff7a3cbd1dc5c9fafef3a3e594fe3e555988684095c8f5cc2246689e1efdc95a9d3bcc992707d3dba9d8fdca9bb9b7ec38593d1783e4b46e3e4177fbd31f32b6bfff1fbefcfb35f2466ec7bb36a1fb27591fa4537aa9925b7619accb1c1571f7ff4e57fc980899f9a384f66731e65a6be5b983773339f1af7224ccf46611edbc5f9897b7a35bfb97edade753a9acee3a98bd3cb537b3d3b5d4fe4e7b3d0daff549d65c767efbc7333f177d72131b7f3c9ec7c36f7cf9e7179a664a1ff78472676370b49fbf3c9addcf7ecd93fbe08d7f124f9acfdebf7efbfd35e25cb90fd5b8f93c8d69dc88aedab7998b51739b67d9e7cf1f1ef3ffdf0cb3f7dfed1f9171fffcf47cf92bbaa483e4874b5f5a46e03f63feaf99f7ef3878f7f7bfec9477f39fff44f7f3cffcd5fbefce88bd5038b66eb81ce5c5f63e197587a76777b3b99059fcc273cf6f60edf1a8764324d6e269b5b7fd61beca3fff9e8f3cfce1992e1d6a364eb41922f3ffbdd67cf92e7618a63df98b10bc9cbc9ddb56700370d062b8e22869cdeb985b7ccaf46b364657df18d9bdbeb7013c673a6850947df84eb57c93723935cb1fbd738d0d16c7433ba365399f497c6ca6d63bf1afcf3118f0ef3f9e4b9b8e3f1192be6f12f47d7d789f96632f2c9dd781c5c98cdccf45572e4c3f12c1054d7a3bf1bd9c5b3e4cfabd98ec3c22c186bf292f94ea6e63248e8e199ad272c16309f4cce3af37e98bcf70d0fc32d837fafbf73f32b337fb6be2c498eb2e384799945d42ccc80c1a7a39b703a997ab66776672fa793bbdbe590037197b47177d25b7dfb64d53e793c99b7b78d3c961ccd5f2d065a5dd7f307ae5dac05bfc0b182f879bbf06f304c7cc514c7b28dd7c9d19860319797d37029cbeb659ab3431eeb26377634e6d12f47f32b9efa7c3a99c4cfe2f3c96cc66e60fbd5f5d8626101e6200e330f72756bca4fc2ab3f73f7f3c9edf2e21392d4c85dadc7ddb7849bbbebf9686bbecbe1d64fc6bf66ccf2f6d509e966727bd2ee795806bffc6a83ee190f757cf0abbbe6d7ed27dff777ff561675ca7fb7ddb28e9e4f9e1faf4d94fc1e8766ad774e8cb09c8364c8de1ad78b93609425b571b7b872db12cf09871058345e7abcb9b01d03bf8105dee3de3c5e56c1ca24bce2ddf5f5abd37603466cc6c386e90db298c06eac2d7737b0f030dd8ea6ed3d1f276b5fed3c752b4e3a6f5e78e5441ebc6be12e59493e18271f72dbfaa2d9f2aaa52bb6a17c371df75db137aafcdaef98837eb99ac50fdfbdce24627eccdbafedad01d6fbc580b3d58a86836a73e6b30dd71b34d09b703fc1025d182fd2cc86572466db2f1ecc5e5b3ed12bdc57528e8ea8623b1b252572c0bd8efb46f8627df15bd8b90d43cc0eb044b1e1eddd428e4667e1eca41f2ecb117a886d763e3a490220938424a690ea492dbc391f1df787c88fb7adf4e8874bc59a999bd08d71bc931fa8d09e223f1a5fde8d66572c78fe3204995767f0f9abdbb04caae28a9f4dff28f3dafa1c57be9d0692f13cf1fc763d017602c6a7931b09f43005538f2f03f8e255afbc507ac797c9c52206ce37977bd10eb9fa6cfde3f3d68f2e7aa163c933dbf1b3899217be373b598fbc8cc416992c8b222915ec73334bfce4e5c272cc2decc4e1cee27fb037feb61d5fc0cb38bcec5781d6765480f0ffee82c03e36ba7dd8624ecb0be13dcb3f9e73cfb9dc73de5e75b433f0f1b325b8fed53a99fcba375160e4d1aa1c9d2f78d279bb736373bd78d8f171ef72f9b582eeb3c94d38eaeaede6456b236cfcf4fbe3f55fbf0782cdc29e479367426fbe47bddbb60df9c5127ab6b6ecd9b1ad3345f3b0f1e693a5e96e5f3c4bde5d0f7adc37626f9ab72fceba75eddfd07da57ab31c5c73cb745d14f601b555f13cd959858c72ce7fdd280ff9c22ea0e99676df67bbfb79df4ecc37c85bbb15badab715038be8f664722b9bb23db1bd9b33b97d687730e72ffd40c02d4b5cef8345ee73932949e47632f692b406f6f5b0c03c1768c0126f71b3f39d8d3949f62f743b7a973eb113c48b8c3964cd753caf863ee90c756074af1c714f903f4b568f7e03e1be5ae0c151bfb3a507c7fe6a53f62581e5547e582ee802616f6e4f7e37090bbae9ae827bb1153f029e8658ed7abc9b7063a9bb572328dd481edc52899154b5f1420b18b9d11c05c0df4dc58b1708d52dd8fab679ba9afb402ae9aa616791a19fbdbdd4d14d75bd7ffc880d5c4f63dfce71d99ead13fbcf160694a92ce483b01053163ff621821164777bf39cdd273fdc33f1d525e7edc61fad3fd85a849d4cae37a73f787f17ea1dc05f84f9f63a170cdaf468e2433c66a93db43b74b3a671ef75807883cceeb09ef5c87bd90f973d840b07e8c2f66deb4b3af078d109071fdac954486824d87654d9cb854d660b156f67d3ba272f7012c9629d49bad8d84963ecde3095ebb6f33acc93a365665e52ff63e4c09d017b99bc1bf9f8fdf5730c297f3affd9d1f219270ba9354ca788e3cf46e316e79d9be9e59d38f3d18604797cbcd41ee5d743f37d5c446fa8080767e9edc577216eda1c3d38c77de16ef665ea0f57a32c12cf42beedf9d6cacdd7b321b24f5bcf3cedf18c169df1a7932174b70e23e4d7f5b8f779abf0e23d4170967c1e44189925179f92da2fc491ff1ea693edd6c0a627af47e5c1221b53d95782e8d67d52815a2fd9cc7bf7ed4ef7842ee774d1b0ce613d1e3244a87efd9868e8c619c877fd78105cb47ec23d306707d40c72be5dec334c72ba7858fd7a0c0c1ab4cea150e80147bdbf9acaade793e9c2e7cef7d6d6a109bed532fbd0a21e577af7adf29e42bc67c56fbc26ffdf45a698edd15d8734205a43affa417c41485cf475263f8a910e24465da94117484e173b66d99f8fbae8684db7df094e3a5c7c485dec2e5fceacbbb6f3a5e555bbd6de3fdfcedeabf99ead484f37ad93f5a0f7ecc2164079f6b0fdef11e12e6ef61a7d7398cedeab9f3f68ef76a1ddeaf655c71d8bef08547bedbc39c5cec4ab9faf4cbc3593d58f97e3dd67eb05ff3e493625e6edfed8aef116f70db9eb20961e72d23ee3fb0136da9ec9dec0ef7be2232cb42daa2fb3de965cbcf84ca4f5c124b2f87c9f31b7f4d6a3a1e4261f3cc6a23fdcf9b6061fb0ebe283c75a77d5eefeb46d90778749561f77d5eaf3bf3cfff2b3df7ffee1f3fffe4bf2e70f3ffff4e34f7fff6cd12e58dd24d81b58dd2b69cb13026bf8c75f3718c795f946b4be166ead47dad2973ad97093e40ca83c17bb4dc05d8eb7ead387be5cb297dbf5c2b0bbfa2499b610b49dce0aa60180c3f1455f6997532f17eda7174b71bccd8843e3ff0076365eefdc8164e95e9a76d417e4c41585133dca0996c07f66a29cb7683d60d1159d402b167b27765bfbc80edf9085ae407707dbe3230e36b4e7191ee90bfd02f6802bf4e1c89b7184dd1310436ad88ea5c8b6ed07804464dba18a31db2b9cf504b36ed035b33a3a3f49a201a61f5f2c5df15e7635306d237e7c8f87de4f6086c9d3a0736ece3db910f3b79316cbb446972a71d105c045bb8065d6e9794d176cbd86677bbea6d5113ffdeccb8183305ba766da4333f3c5899c7d076d866fccbb1bfbdbb571da66bdc6766b2e16c70c5e8e66e160fbef6d73f5ebd686c229667ec8ca43ebebbbb7d8bf23f0dbd67d8c695fcfae6fd9a88f603df71b7738bdfed7683a6359f3c1527b5f45dd5b49cf36cf572dbbd7b3453f790680bb3e5da709339f1ba1a9223d4e279777e1b4ed0b2d7e7a06f376b485b667375403ba7cb8bf160c81b5fbb9edc1c97f9dda363c7768c00b7ec8df2e84c25cac28d245723796717b79849f7db342a647cb24bfbafcabd1d717eba167576dbbdd2e06211eecab8de7c8c5c7f7cc78e9984c79fbc4d2e93648901397cb290ca4e993fe8d7792fe5bfeb6bac1afdc9cde0cf5a4bba23742ef096b3b2da378288299cf326e25c61f8e5db93eefaeef9d0ad91fbf0fa5bc0358729f45b664b35768de3aa37ffff540f6e691b8d910608e4b7cd0f790b6d13e1a774751263778c6220ac3a0487db695251e9520f678f55618ca29a48bed66472ffc7a91662ee5d4fb7c7ddba0ac2eaed9a3e017677b83ea354ae8fd6ac08e72b19bf837448bf3e1ca7b30557ca4f7fcf9e33ffc610d299759b7df8f182c95271b6769978eb01ef67a64a772081acf5a9d7bba19cd16646d719a68f139590f87bc0cf385b74dd66064c33f6d889345e25ade7f23e96bd5b09173d25d17adbfb24333fec5831eb691e893b7e43efb859221ede6fe74f443fde63591f3fab5869eff1c2ddfbab8d8029a17dd01bff74814ef2df6ae77a31c263b1cb6fc701c7cc04991832dbdf514e963bc6eb07eb85650c2a3adb395a6d7b9783de42a532f7a72dcb73c0ad1419f9eb2fbf8785a9d4f7c835145f3ab7b45635f3ff0917bbe5749db2ff4bdcdf05b0970bf95a3f946364e0ae955b85e9c22950a1e66f35d3dee732e23d3767b7719c661dab27f12edf46ebc10251c9973d23e22393d5d87ec39b2fced750f0af1e178e2ccedf2cfa3b1bbbef3e1948f49c6fea2cd034e9e3e7bdabed874eaa6aff8fde26ce385a095cebf84b978e393ff06e74d920fe59e9f3d6997d6c28cd96ce246ed64bff844ae4beb22ab2a9ddbcae6ca3585b1a128cbbaa95513545eeb58aab2563a94561775a58abc347916aa3238c725def45f2bfafcc34f7ff7d91fcfd76f456df4e53e48be7d62d2cc546553165137b5cf8bbcc80a6deb9836b14eeb3c0d796a5591e9a6084d9d29eb9471a6694a5fe5ca98e8822f5c1eab2a53a9f6c132e7cc35559ae5aaaa54ee5c5639a362e574f0aecc6d6d9bc6d64c3972655a7a1f5c28b2c62b9717de55462e2e4d96995a87aaaeeba26c94cb8a142ba49977b66e541a0a670b6b7c1a4ce39fbcffafed06ff8cdd7dfec9ceb636a6cc436d42a96ab630d455e97c638a942155a86b57c59afd3445c19635a58d8a0f7ddd54655995956ea2aecbbca8eaac50958a3a1472471e525f7a5d32fdf4c94ecc7eb913993fff4a6c7c3e195fbffabafd81241e20cff9b4dda7f305bf385a9e87b9a7bdbe3ec6f2a0b6b0edeec72749b67d906577a0d599c5edbb377beb0f2de7f64577a6530ed6ee3f2ab95acf5e016abdafdbf37fe0fce5e63a9e7f327c4860b1906e0dedb29653584e899a77d43f21210053e245dedaeb6161b83e51b0a03e929d99f0ce2257871946b37339cf70f4eef039753251c89dd7b8a8adb453a9493d71113dc924e8ba8ea10a017f4c0db9496751559266a272c6398f679adad47955d6ba312e4b7dacebaaaa4b9b9baaf6b689c6a44f8e97d67ced196ae2af682a451c15b9e6c9d1d795d1ae2e99a38a312b35b1957a17aba689b1b6cafb4ce6a4ca82acd8b00066ad82ad6befabc0c52400ed6ccc4c5999aa396486edf994bd33b47928b4ca545d2b9585340b9e9cdd143694e4f1a2545a590c57c7a22a4d159db7922688eee07dae8323b4536f72ab94c69ab2ae3a4b1589d9e6950f987d638603eef4f3afc2b7b764a2e0cfa3195d4bfbb5c51fe76ee2038989fc92d7c75bae176e6ee7af560ed8435ddb1eb8d4fe6ecc0baa6aab86b5627cabe6f4149e93451b6045f2a64b3c25e7a3fa4f5bd9b6d7279adc9eaf8484f591be455e7df6ac9de4d1f171f2c1071be7738eb6b76ce750607be66efb31ef1f1a90f7d8632d37c227db335c72dfa93300e1e1cad7da6522afdecadf103b6e0483ecab63cffa6325bf4836cbe6b25af696fbe29ca7ad01e9fdd573e36cd72d30fc836501fb6a239feda6bb558a93600c0aecd2a49589aaa8629396b8751a2d30223a9d4ae819900598c239955701cc92536771695f0158e48a4094803b325deaca958d0b5a604d09de49cd93e4fb93832763acf6cc2063685d191f3297163a753a6f1ca8aab4cc8052ec9c6deaaa09992d7d06a6aa5d191a1b097e5537b9d54c2db3754ad630051028331a1846818e8f9b0cf9b36168e54070baf65abbacb6926f9cf6ae08c19aa6604057a9ac4e53d330f100b600b97903f40ab9b1245e5650da820ce143b421c4b474003555e8e25193d17951b3458dacdc17b5d19adf541db292442436d1a5f2809bb42949aeda79000703d680924a596ca47c8a79522b191ec364fc3f071acd73e3337e7bdc3615d40ac633c6e726adcacc655a373e5a23e5a368420a122dc04ec0e0ba2c0a1b498c253ba16b926905ba4dd9106d1b201bd7172133699e3a47c6ac3d8f653249379baf7b855b128ee85b2f44e0c6dbff0ab53dffc7df925f7d908cbe971707befadbd71b41b1bc7a4f60ec3990fb2346c78333b2b536e200d61645e6a9384653675253a9ca47150a0a5706e1685c49edaec1be3165f85c37c19968428ab55d0a2ef0251bc8bc1ab6286863a303983a93bdc68cca58065b65a5387cde34f8565dc180a899ccc628eab852852b7d4a35f55960e753575917a01ea52beb3cc61874536157eb8b344d2bbc820a6781f0d681911f3f238d45d22ac0785cd6b01f0aaa5541b0a03e15b6f7cec54856d0601f3244add9584b36313a37aa28c13c000a904849b81a95a7799956aeb0ce685384d4c6d7b151ee63e662082aab9a08c011380310e369a00400914ba9e9f013e608dd70308dcab1ab7859a6c8772a5a9b029a72c9859aa7e17cc01df89d7369dc0cdf7ec0480c8cf0fef4fdcdb070ee4ea0369fecd6d5a15786badb5f5e8daee5edd9e4579bb75e87f1e5fc0a4cf562f7e5a78d0b6fef6657e716d5e8e8dd9bbb6e2a27c97b1b978177a69397edf3d08a37ced1af57d12e60172aac1eb97d0fd9e38f6bd4f3fc9359f232f4042a8a7cfb529a9b2fdfaadd868fed701fec99e632d1c8543791cc414c657d907e9ba9c82fd9bf51f27fe46b4cd644e461e0d3b1bc87b1608b46dabdefcb750f23fc76ff868eac2f93edd7c7dbebf997c35b4c7af600c8da987c77648526667b2ab555a6a6c96823c0dac70e179dc117c128aa65699cf25561495a826b6c567aa9f679280b8a740826ad2119f09f4635b573a1769e9c0ddd2833f41d926fad4b43ad279bb92c53a54ed11ea04fae765278d3126258da90466d7d5d58921d8ff145c1cde45fcf1dbef2a5ab74892454062a4a55d960f3a2508a645deb4c653cdaa60d3333e84d86ac0d45f3691e4c7c727c72c83235490dd2c7a83acb74e68a0ab10624254297533af7e0a6a2022948f5305e0131c8dd2acf41104e811c1a5b15791d4d4e4a8cdaabacb12a25b702ef6a5da7602b523cd306ae814454d005729bfc914a2d020de5c694991565870c1b4a169d5960251a92886b858e55fb414c6b67b58e98c559a8680a1450d61eba4c1423df6400c192a41d620e1d04d3da603031f603cda6552e05a7428003f636b68885b5421bf30cbd2838b6a572b6ccb437cac190d35496d2e43e13d18e4903af58701e7960a1342813d20f3204b6d695865e87ac01b7a27739e3a346574c2b083c152877450c1198c63e469b53f7b3541b8082b1a9a8904d9e1fb84c201e48b388a503ba57656133e09c0233c38c53574093412b5100a8f5692acb8b852864d4be50f848b9375904c8a788004a37d819792d14d1c3ef315045f96d8a06580004f35a0456b45287cbbbca455301bcc531f0ccdc69c3cda8afa606a8a1cab1c9ec6dc1dacb061a4e645515decfa60af00ad681109a0397099c25e42a8b1e428dc625abe035622f026d132b05a803920166755a00d05d5a67081885a9025b8a1b19976313ae02982003c7a0e4a7802d2ca3c01580f23cd300b31a755005cf65b9467440cdd560636f1a9d69f6cbd425802900e6eadce73832111c0b60b72259a80a18eeb91748da34844a912290841c2364fd656ec1e915d16c01f568f33c34b47f21b69fb46a3ba47e1650dcdb76ec22ebcd928cf48c70757945893a6a33e70cf5e0782319aec7b80786ef9713ff17a4c621bc78df829b883b68a895d5a5cb1d14ae61164dc5188d068dba14df40ff47652a33120bccaa449a33a2d009f035703f565598da1273daa23bf17fb551a45adc4ada0a217aba0115183b0dd82e0596fb065e01f7268358cbfcc9bef821a49bdc50926fc8cf86749543e160e6228d15555167310b64a58ccc4dbe893cccba472f981d82d5905e9bc8f262632a5b9840fad24565e86fd8d048ac284f96ac5c5e87182b94419614a0e4700b344a9f1902d469a832ee02dfc91b2b85861c99a60a4501b05fd7a562eea475592366c88b34928829079ad1e81d108abe51445a8e792db520e06ab1ccd8d39cb1b4c9e175c6d980865a636c78017d81c72f182191db614010462b0e8eb2e0101a0a110a20f64c228365b2467a3c25e9d9d272486d934a6561de9abc419a238778829d2dd7555e16a2d8160552047a2337e1e1e8136416526e19f3d414a47e44094501a46fc2adb66c52a14be8ac281a848586106a551be342144938c55092c6f08d8c1c9ce695ae21328f77691239ec549e4fa6270997a9a2d804e51b4da217ee0aef418e40fdb1d2ec72852f08b2328890a324a7439b2a0a86a147e6ada2c053ac83cec9070409124dc83dfdb7282ab7e799b545309232219a310d17df60528371091fe2496b93796e4232125accc7600a4f8d225b23a95038800c820f32da7955f67a0c6b99f4063856ff25c4c3c9953cef35d895dcb68f5f2d3edb2558edc5b422ef2e79283dfdf9d1bba32d5ad3cfed49a7e7866fe56b2fe7f7d0836e56c7f772b4d67c8f2369dd7cf631b57535ba9fab3ddc25db7c49ebcd31b7ad33093fe9d53fe9d53fe9d5ffe27af54f72f54f72f54f72f50f96ab5f8f902ece017691f666c9a727ea81da3646503886086909980e368594d469544450e6425a433e458d0028e35c293404540b56250f83c02121aa868f9357f17fb80b39180101da499a2b45c611e52513a3224ec071329029b4cbfbd4872a77f08f982177990a7b56c07daef0681b0169c8e18bd64b4d1119a2c6e6a0ff0cf26b0310ffd1481d906d22eb202684eac078d8ce5cc40d225162a440f46174d0baa419b873a65d40ae28a8370d2413e6c4ce7bb42556ccbc00e3a98b3af3783104133a97c3451a38a3979295c2b8234629b52f9a4c8ece458ba343b92d6b47b6112618c95428700c9b67752e4983df19114104928673b16e6698fae2f10bb6a5429ecb181bd52603f143a585479aa2f1b686ec3af4b1a68440b297d81c0132d4c4042406850f57cfd80387b083fbc38f1009224a5d5e612266852450a36b6619b6cc2428d923b62896ccd7b538c1e585d15914e12047ae4121855f0a8f8161822ad8f68cbccc634a093aa42c0005d3c8b99b604a5f837ceaa28c555669d00b222386cce1bb4002940d204326a6288025546fcdd475295a14ba12f5b96ca08cc438f004d1a316beed2bf62f47872250daa20d6f46a7a3f2c02363698a887289ff221a1857c1a39124500729a4de0b81cb7028323e5e0006b1a4184807aa4303132b448a44c8c0781801c4e48820af1ebfc3cc0afedc8a8bb899235552d92087644b8c8e21d85e9f6aa668a9ea216f10563cca0d3cdf03a5722d6a30bf3013093ad7ba481d19afc215486ee015f6b3e27f96f54544299d21547ac43b6b8281b32a8d622dd50f5590e513a74e34ccaa4656b24040165551875544b9450f47e541cc25b7a0318940fe537bef90f6deebf5e9861b7583df2072089d7cd7c85aed40997ae3047175f0f381e35dfd6f25dc38c6256f918f878e7ec92b73df61a4ef929f7d907c7733bb9c7df7ce1e0b0d7db1cdbb0387534f56b5f7ebee4fed21b0f678fe96650e1863c38a83036e5cb11c72ef39d3e4ebc1eb7f84290e4fa4e59a4f927f03936dfcecdb27ce3f39e1b7109f6c7cf0232c64e367fb1675f2d6ae7a3bd6fab1e5a0ed53ff3bbad0624bb655a181c6faeadfa561ae1b6f1bf713e92cf9d5e8d73f7b72b2fcfa0bfe92fc9579ff233b49cecece4e92f2fb4de43f1b04fddf3e019e4af186138ba60e6c4d6be906e50a50a9b22727875daa0ebf343ffcd2e2f04bcb8d4bb768d4f3ee4dafe577daef9c5118161aee9598e8cf570604a36c436344495f809e2e3446d1ac97e6263c99ce1cf2488caea1918316e59a8cf62ddd067a681a5e58089974906eba4e082f5526e7cd8bda439e3770cebd1329caaa409b00bcd1b8c969a136281b684cb6d41a664cc3dd4a1714a6964783e20fc833ae068b2a798506324b3f2535481e698108120a541cfa69f0556067a3dce11379db27c50f9d08bd3cba58dc4e43b386687b7a55888cd224054f1b9d8a5e005743e113ca411b5464020b98afa5454893874e3ee4b602d8426b8a144697a7c0f13ac211943a7822f2ca117d146423d68f2bb422598a36c1b64318e8e6018c11724a44c95aa347d228f574be68fcc09c9c342615de402b1b998f1f66a6a057a5e0425084bc291e10db56cac18ed8d67ef0b7af57c963f9d7018541d2867cb250154451d815e9f6e8090f122f25bc86fda0839c951636408f8ade331c99d62a32138666bd0651b9a2e30bdb84ab88206a539ad90eb9a54696d521547467d181c464ae141ea66034a848d0e0e0339ea7d156a3472c80d4405610578937e84c9ac25c6da03f5ac3e4235e97b11f5030950923b734c0d92f85125159399b61e867b3972222a6d9a692f470d71e5a6d729135226e54785d4997d1f1a01aa743bc62ca458ef265d1ad6040a2b3c09f3ddd5ee9e2a60abdd7c2143117b6a213e948352952a56ae0553048ad51bc4245435897f02b0beb462e431e134e9a47d44b236184ee8c62a62c44dd6b9a98e408b4089de3fbaa496933c2aeb1544c23d4da6b85f1b14778dc62218a594a9817907e14a0f64000c6c7bc304e931b541ba65c16244b910072e7e87ba236169eea50a1fcd5fc172dbc10d1bd623f513cd8701fd004ea3c972e3513d351e59890cc116b729af04e6832f21f419423a49490d7ca14652687a8e47442234752ea0a2949712bb12dfa85c3e7e422efb583ddd22fad1eb5d826af54833092b30d786c5d28e41345bb19d7a50010ce74a7a1f3860847d6d125e2918703332d85c76708fd8836306d03bb6d505cc887ec0e123f2d093c20455e243150ed9a26d30dde41a6278d664ab4561469dc89a154ee220a4d5131287fa7c79fd79132902282d1d828a936f811a20cc25c410fdbcb712f949be6713b5b88e7d65afaf028712216bb202d694bf035883374e1692f6428ef5e0eb1b17df48c454f2178558e4a83e24ecbde565e478fa93349fd594d37ba429fcbe40c167a92a55ca02506d4ad1a0f2903e9800e752147e2249271f4887b0739c3850f54045653a648f33425bcbc6868a4262a191c55c5b4de467f237bf4d160d29f743c67fc71503de87de5485f3758008a7bef7c23bac3ae4ab04098f7f0fd15391f6a70ef512dd62b7958b638f4919d5df73d530acf90167208e55e2cf3a43ff16ec01fac3c3c5dbd98ba2926002c4db2a03e9bffe8d3f29f5cf1cbaf579cbd685fa67d32a8622cbfb542c842f736fde26b32b7940d994122c4e66dbf90dc1f749014f52ff8e09ff96b83f87df26cf5b7948447fb128e20cd04a08564479449320969c7c75c3522bda692ff90f341e8fc31521ce588110dd8cda4b07ae5fe83958cb57ad77e136cf5cf8ef7bec9affd0a98c54e6e3c75f2a2054c0f7cb96c4be9f79cc2b434da91917339d3ebe963d30aa38549a633ca789ab825ab4c5594d34be8f25a794bdeaf813cf4d31cb0418e10526668322266539a115a6968a468b63c560a511d285b3465906e6be99e094ea102e7b4ae02b2af9757f133a7a830a9246e1354d5a4cad24ad66953917403cf8475e40d0a7faca9f99e76379d828c6a1debedc3a6ef0e1e98d9fbd66c4185a58856b616b85383e504dc0baa91a34a817e5354da569a9e8b09f46e90f11d127b46a7b78a200e54e7ac92467e2d0ba8606eb4a5805e4a19daeeed5bb31bd35bba41f7c3a1376a5ba555bebc632bc52ccac1be43413fe21a772ad64ab061aefb69cdeaf58ce4fbad35f6bd7aefb7fcfe473975cfa46fd09ffa42d750c2f193f6dbdd06f2ce3daddf61bcf7efbe21dbcdb1e18ed84fabfc775be5d7ef1f787cee9f90474fb606e4214d496357beb8a1512994304788488372b032d8756eebdac8a12eb80e6a13445bcec6654dc815dd4e14ce86763e5a9ed111aae52ae88c1c7077d0420d21cf77066c144a1bea153b98a7b95198bc42f74ae58b2df25407bac8a5ae6d9d226dc9d95ef65e37f2253db5e5b314194423a1f2789abc228095fc09cd2595ce2ee45b3dd96bf7b53a3d6cfc2dc874f2980f7f33fce103a4ed753ab6cbc4b8cdd3b6cf04ef1ef76d6bfabd9468e088f06c3f3d5b5973809fbd0e84a0293cf498f1647e38fc6c891c5c6ae787ac70f7872c6ef3877b8e132fa730dcc6d933cf7b01c5fe691e0263dee2428698e5e389658f566e7f19e9fafbe996ffc8c836a35cb4277f00755c32460185aff9e5553f1e413cb84634697bc8505394e478ae6e3b34f2dd40b128eaa6a03cd1a8a9689534223191f5e90320c0d1b2289a3493e3b339d2a1a24d40d38afceae515bd5cde3ecca59d52efa66cf47cfe7354a2acaae51d0c744385f2d9b64fe49d461b7d93a3f1f229daac9cac0b7220490e404a7bc522304653519e48f348df459aa9521443f9d233b53b203a99456196eb1b5f54d4b9101a87f488589c07ca72eae49072669041f3a833fa69e87534b2d0d9552b8fa24767f44f72e38dbcba89c01b443f562e97f75706063408de34a59097919fe5a52b390ac4a43379510b88c1e8698ef98c68ee22ea16d6e6f4902c8fcde558271d204b63a691f74fe88fd148c2eced5738519c774d5ae8a6b475c0e6f47bd04fa3bc54984a5547b3ac68c7812aa274b928b41ae5d4a1f6033b1c1b064e89a6f40a253c22b84a351419b2ae4a5a696805c66d0cb85d84088e7dbef5c03f9f2b62393bcfbcb42a33805161238647439617a2d09491326c6c0f40069641c79349725dac1cffd565db1409ac3797136c26cb94058b15066514a05161f98c469796f76e81045ecc20c779b552802f6c40ab83164a83f84a2f0a8883629b1748ba02ba8062996cb34225aee598980360f84a5a350e23c9b9c6bc2ab639cfc30b263aca08e69113737444e959142ee28439ee926a9f21a62be90a56a5349671f48058ed682a465fd231cccb068f0411c9bb4fba947791e5c543e9a396d26d04d69669aae9246016af725ccbca3bcbe0399a7c3449c1a972840ee770357aba75828b68abd18789341e9a48e3d1471a23e0229ab7f242b128434844a8e9afb1600bc8a4df00922d830ac612a0b993f7f3d0a3c065592ce5bd2c8db96b94f348878bad43efd6867043b547c58a45cca42115230e91d3d2cc1b6b2a797b8fc64226481e53d46cb4ae5c68e896d1d722bc72ef11d9a5ef4420e7285dac37a75514234dcd289e831190ee735fd36e2a0b564d63c095007ee24dde4b061ba68fdf614068a6e841e162204f4ff30661df93531af956b318e52bca5429cf9697b7cb82ae0d3d35e99d631b7803ad041a5b74128c33a59c0294d733b493ef6cf3158dbdf66c24e999fe79ac83bc328e5171de86e5960d0d36f24de9cb22a45e8e5fe6151d76ba40c06ec8882e8a9c963773a21f5dc91bd946de0455366f6854c98b158f5e3016d756e922e62e255d54adf7e057ed9bfca5c1f37c65e835d355cb01deb4ff0a8811fba149b65afa95d48d9a965ee5e52cbe9593bb8a4daa4a1a667563e940ab1217a0d104abd0d22351861e6869db77f5cab2926613dde99247c7aa119a5734d0b086ae22c54cde09cf6b89617cc2455acd3039b2072e4e27d0fb7daf44af5fffda07a505fa0c7f48463c1e90c1de105c07052f4e743ef0ef60df0bce4f86f1be4c7da09db1f77bf3167339bcadb0fb85714914f53879fec92f67f2efe076ff4ec0f2dfb05d7d25fbcdc48fa2fc5bb99ffc52ccf8ad4993eff8cb57d9b3cd9efca1d6d9aed8ff5c10f4ee7f40693ce49b2187fde760e718c5b55fc877834f6e17be61c537f8db9b728ee65fcd39ec7f9e732c79e3f7effc7f078e5b4aa0900000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "capability", + "source": "0x1f8b08000000000002ffbd596d6f1bb911fe9e5fc1e000570a74727b2dfa417602a8b1d21a70e320f6b577288a35b54b49ac57cbbd2557b2cef07fefccf065b9bb925f92dce5431251e4bc3c33f3cc903a3e3e6653b656599d0bb65dc974c532b19085d0ccac049b732d5396aa2215a5616af1ea18f6ffe74dca4b3e97b93452e837ff1dac8c29f5e4f85814e3adbc95a5c8241fab6a798c9f8edffbcdbbef419cc8122dd2ba828f43b650155bf3822f65b1643c4d85d6a8cc542a1fa32a5237fbe9d3ecf3f93f671fafa71761f13b76b911d5468a6d589ab260d68e49cd38ab0b50b0147c0ebe19752b0ae7a111dac885241fb9818d5a2e0b51b1158753b559a94afe2a32584f4565b82c982a45c58d540559c5ae575e1ea8d9f05c662c038fc007c4cc54bcd03cc5eda04f548249831bd51c65896cccae24e069f7ee4ac16e1abb271340eb060d21458562de21a3d85c306d5405968149cb5ccd79ced662adaadd88c511810f45a10ccb05bf65aac6b8812f915963f601801700e08e2dea82d6485fcaf31cc46fa559810ade7105a1238862a0e973c92bbe16465423e7ebb28695c208104610a3afcd21d28592e60230f4b8b08de428ab42b45d486cc684a0500c000451c236b191aad6f90ed1e8e0fe07cdc41d64590899cd99efd88f9a2f4558382f002f08dfaf947e05e8497fa92505b285273854eb1ab0d93151c037baceb9b161e0a1760033440c024ab20d5f3ac8201a4c157016e207c9ad4d55a7787a0e415d81682ba031f3e6e686fe75823fdd2e27930f829b1a32e99ebe61600ee64236997452e7244861ccd60465181a536b6b31ec3a75e2de8dd9251a169941d6a6157c2f0011d8af0d87641d4532112863f35a638696f53c0792f089c4147e89612fd895c817938945d5d34b25407581590395530b4c4ed28f868e2335d7b8b8e590dbb17998358b3acf3d4db095dab65ca2ec931bccabda78791673e651442119a419bb7fe8e0153282b8a11d1cd8d2b80ac8f89d033d6147365d872140288ebdb73836311a5baf56bc2c054080b4caa03a9c6f41a44d7323d7413189bb2c042ba0a434920194c94666701c33af40e244329d0bcf426a8b8c06e03aa76341ae607e804086ca6d349d9ef22c9368022798edff216079aeb6245e45de5b981a17dfbd0b82e2dcb42915a234d02376e43edc3f0c4fdc996e38a6367374873fd082adaa6e6dd191010b2b6b4fa05cf6c5519ab433e6fe45aefb6c7e9edf6ef74b1d3f53e0b456109915aaad84251c508f487867a9111167431badb581686a2cac5689f711c95412440f12b0b68d0724311b8fc7d626f7b7e3244fa36722174beedb06adbe6f352010ef8303a9583a449ddd98956fb220e2cd98fd0b98ffc692855b173723e49f90c5bcdb3e90a7328101b5546559c73572db2c79ae953d9693ce86dddbe9346617f2d6f6636832308b60f0315f5565790fbff176c51528b4280cc33c68f4da6ed64d5858218e6b5a941e4728a237a409ac86be06a385ed860e13bb048854d0ed37d6011c70ecc00426af0c5b546add32b46928ff5ec95c44e35cbb9bae450a542df59a08c49fa6a6874734d00336798a660ad347ab352239fb7e0793168d1a4d64d99a4cc3b9a59eff4fa4f435a0662a6931702da11036b7716329521ccd326a3330a1d007c79b114a9902324488dc1c248b0daf248c1cdab39b93945a4b725ec04cb2146ef4b9e3eb321723dcabaacc460e270a8c67d64a6eac7df8167cc3fc4288e2541c31b40373113b32d5a6f25c114c9af45a3b6bbe4491a8824f18704f8501b54363cc22e84b025d0b8bb5a1123e9c04ce69fee4a218f4ce86b0c6a787eced5bf6c7935e815fc9b5cc799553ebddeb11b06f9d67300c81f134c972d3640ea0ba0084258c6985195962d280a75eec9a919a1401e2190648fcbe083979340d3d0fa97d52d0449dd0f41f0e25203a712c37c8866d685d97e7a5513ae90c6fd083583cd689aa52d5497bcd724c67710355853b5f31d7399adb16569aaa313e3c0736cb7636283876c40582a596a6aa2e0cc9a00995cdde4f3f4dff767e717efd7332bdf83c9b9efd9ccc7e3abfbabe9ab0faaf7f616fd99f4e1e5589f78f0508cd0e08fd78799d7cb8fcf1e39997f743236f6acd811a179a04adf8a6e135985944b5965a2381c4d2cf6617b3bf4faf675ee29f23549a1b5b251c6fdb99dfb7f3acd50fdedb0b54ebc2e56f5a73b850a5aaf4148573245c78817f85c87763d2e8c64d6caa2570ab01660ec306ce9e701c04d909f4954fa64a2913329c561f1afba72c872b12af9011350dd9ed96689d6b68124db703ffe280934cafa88661a32be32c68b3544ce7e9e242732a515fd16e1e2d772fc8c2834ebfc85d9caf6128c54e9c71c39d0a9c1dd08c760c31fe0bb9ac3b41ec44e2cae0fcb9d7b25bb18b0c0b043061b6b84e9d91efbe99954d2a1fb6d70d07e2d9763f0aa8bd89e06c58886d9c05690e23e388e62c7723153445c227cb37637a57e98d98fed281d4dfe4cd0a2c025124e5c6d97a63afa0d14583b5c7d1eed58066be30ac8f9827d4c4e99c84017a18b99fc3f081ce43e1db83307b5b2c12b5b032872761377a5899d783d796124f4382782b80f5e1f470c488894196a5d0c4ee1f1ce6c761a40586359118b54f3a19340a8979df4f3b6802ebd2ec0643f6e044c6a9e72f46fb48c0dde9a33b60671af5416f15749497a3a007a944d73067ba57213b7836cf614f27c7634911d41c4e8edefda912bfd430413e3743da571b92ce3d761efc51afdea2bc8a8fdfdb1aa39e8fddfeb071c3874722e6a8bc1fb8737a3bab4b7fcf6b3dcb02843ac64f41b8527801081a6028b22f2f0a1a7da9b4685441a40b557cdf537c08eec4eefc0ad49b66f015d8f7857c4d04fe21f2d2c2e38f47ad71cc3ebb7729041eb58461b3573f163584eb1976c4af0e3139bf0c89c7d9ad71bae11e68fc8386dcdadda44372318d7a658840e234ce1570e036b137ad27a58df1e8494b20809fa91a6fe1e94aa4b7961782d1f4560f6d93de572bb1c48b0376497a59f694d492e7d9fb307907f31b06c7fb04ceea1ab70ec2b418f3752cdb9330be33c27d450f8e7a301c563a8e2e4347d68c57fdebc30b2d0be2c3ea0313b9169de83d0d4e1b171874139ad4077be7f31e3e2d03ba3576b088c02a954a9a79c2bb907da67daa7f05d9ae0efd23123d00296a483d1a0b503505d97be67a82c0bce10db8208172fb1bf87ca80374fdb0fb9243eef4f9f11b3a65eb30aa41bc76d0432435fe731b0dbfd0b963ba47fbf09b005ee5826c7cab839978ec16d8f5e5d9e5047b56aee85702d7c6e85d2d5c52a0d3ad4b854f0a80ca2d5e30b734c040559a2e6cbefabe30fa60bc6a687b3f5b3f9b9b8dfa5252b63f94f4a64990d86f15dd06e9c3fa10cfbc5996c099354038385ac32db6456809acec230b2fa9c56964e1493f67f099f2b18c815f8b42c21c4e94df3e41ec83ea17a707beb586621a3eb79dd3befb562ebc7e3a1950d79e64c0a4eb9e72b127ba78806ca484c1f34fca6fe4d20bb3f85679721449df3b8959753887398df61d9bbb3b503369b5ed3a85471e7c4f7837d8405cd04677559f41e4ee6069d6bd1a0ea8c5e1836f26eee0e1335cb268010b7503273ba54a67bad3913f682dc26356e6c9e1aed8f80b39133b8b2b3d57a33a7dcacf969b9450bdb105ec3bba1b1e72a2acf52a99f3f4d6badf73e1e1d5ff01e507055821220000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "comparator", + "source": "0x1f8b08000000000002ffdd57cb6ee33614ddfb2bd82960c8ad3031153b75e5c4403a08ba49813693ae8a8140c9542c8c2caa2495c42df2efe54b12254b7664b79b6691d8bc8f737879ee25737171017ea5e439596306108829dae21742bf82985010916d8e68923d01fe42004ef116679c8db6645da418a09c131630bef67ded88b888f97b04c44fc13050963062cbe6ca338e84df72a4562392310eee7efbfdf6de07c502dc80e9d2327cfee5f6fefeeec198a06dfaf9e1eef6b13279261fe3b4883878c0ac4839d82006d694e48694fc49b20c5319e4aaa5371d9617619a44202e3290b000ff59a0d4a12a870fc63ad9c4072121a9958a625ed00c68bf8f2a31b8b9d19be94fceb6284d310df80665276398baf4a33c518cf80094667a535b3bbd9409a642145b2913230c46324062250ebecba58062010a7efaf419304c1394267f219e90ec639ba18ec7d78f2b27c5b1a4f6e8029a3c6dd44741d01c604d31c51c48d720dc7101740384b07c9f13fd5d65992c1bde2a5d8fbbb24d8c66b4a614a1a058045a9f4e0de6daa926438aa2535d178b1503a2356402b3c67a2ad222e05b29aa02d54b070b95e2ec896fc4d6b5bfefeb0567dc5babde88bd72c99864fdaadbb55a7dd924622c38d270dde0301e03bd68e34c2cd27b272c327f57b20809a5e445f37665228bfcfe6177452a6b19da884d62509f7445507e69d3b3bab1ac79394c4c370a55d8ce6f62608a99d744589d86601ab28dd0ac833e10f9fbfb72541aafd1de76cdc11c3e91e3fb6cefd1a45d0d4abbbf3993f670989ab37690dd99dffe217a957f6977995c143796bcd29863f3aa6e276d6c49fd19a5059e8ae26aabef173c5e38e10794e61bf4a1d54bca19ee3b879877fb7addbecab9f2464c4c54fe8d535d4f6333319cb166e702f3613271c1d4c2391609cb482823e18048af8cf464a4d743b77115f5b156d897ddd88d1bb38fbcdaf6ac87c2a10cd3c626e6dd140eedc16b50b83a81026c50f8e10c0aaa8c0b93e01dad50406fd1e8835aede28d248c429af32e79575638f7ba245d4743b894f7e4f415c6f1ff41ceefd2122c330c3cc8a69c2fcf96f3e5b9729e9d2de7f9b972beea927340b274f7c57ef27f122952fcdaf5e62f055d3e9c8432576ed30aeb7f09aa3529e2ab99fbde5e8a34819e760aa6d6bb0a6f73be73acc29486bc609b2044d15767bc2dea50a1e3e910ef1f8738cf279db75d004f270c0711864308c3a6a28ef368ef2e444cbe114bb934df189552caeaec5b8552e065c7ba50cb0cba9daf2e094bf846a87dfa5e64f86f23c3a3c811c977c7363e3b15defbaf4aee75231f98f5520062c0c83f07ee969e016782cd691eb8617ae69b09b4f0bdd3f1e1f0116f022dfcd9e9f827cc771368e1d7e3fd6df40f33bffad48d120000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "copyable_any", + "source": "0x1f8b08000000000002ff7593db8adb301086eff314530ac1a626db9a528a72806d59682f1696c6bd28a538b2ad24a28ee4ea90b559f2ee1d498993787703c1b634a3f9ff4f333b59d99a016d8cd4b9361521a56c3a5ad42ca7a283a711e0cfeaab08d3352ce7622da72fedae95dce545a94f6f9d61fa1ce8437077b0c294926ab0a68de26243c8d23fa723bf7b737303d99681d3008d927b5eb10ad652c1ca8a86967f57c0350869c06094a63bd4a6e111ff1bbe672244fab8893faf94421bb8cb7e3ddce5f7df97f7b7d9d76f04eca78f3087f7839aa7d3564886905bd1ada0b0061eb9d9fa6a8e1cd082d7dc74e174b4604b03180a5b4cac946c125c948a25213af0753f0f55600502c170d26f55d450027b5662e2cc7e5ef88dc359db03da010a7b5a5b065c18e9d5acbc40c51ac53413861a2ec504beb0923ac24e524905142ce8a912afae712f54544e1d47b0668b34b9ee4bd15a4b3cf39fe5ca61c70b86557644d9d8a2e625acad00077896117f24bc0b15f0e92c2fa296401613afe06cfffa6b00a46fb863efb9d559b688e2e42a2370f2ad676468bc68dcc67dcc6108eea7ef981e9db7f33abaccb1a085540691ac7d60c873577bea38d636784f8e9c6bd097d8843675f25b0f01516417d6a9d64c9937d1ab9e613e8776d2af25e06787102e500daf72aa367687aaa3eba68ee3695fe33c985ec6c4818b87707e306395d0de9537e3aa815c879e40e14363bd24676c1c9c8d432f5ff81b5f68bf2cf9f637ca31b91475f7e77276961eef7166c20085c98136cce9557e48f56adc6938a808ec39dce31d60fa22726f519ac61e6c9a26f0e182d42061790c5f3eb5244d0f21c77d60e22181f49879181d46ff01a29b6ca059050000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "ed25519", + "source": "0x1f8b08000000000002ffd5597b6fdb3610ffbf9fe28601815df8b1266dd02969803475dba04b1ad44e8a6e18645aa26d2eb2a88954bcb4c877df91d483b2e8d8edd20d0b5ad822a9e3ddefdee77ebf0f273c9684c502a6591c48c6d5379e7a8ffafdbefa0ff0a407bf0dc2dd67cf9efcfc7b6b2e6522bc7e9fc6bd25bb66090d19e9f174d6574ffd41f86a78fc637eb80d219b314922106c161399a55478c07ab4d7017dd05a077e43535c5d923414fa6d08b2f40637964cce21e0dd2909244fe1b9e66bc1c32ca24012c9852f64e879d4dc095f1e01fe6582825e9e04e2a05cb18ecbdb84fa2c9e72cffb32a4d1b403235c39c585bb833a059e284cca63eff5231ed2a79015f301833445ee021e5251ece49f7df898f2780671b698a08c7c0a935ba904a3298519bba13110012c4e3209cb393e21099a3212b1cf0c5f2331e47842924d2216c035bded69da01ea4ac2c0fff8e1fdf91bffe2f2e5bbc1277f78faeb003cc8f69fc20b7872f0f05c944a7331313c7d737e3cbafc30a8f3b1dbc0eb44bd4662d9446b34a7c0421a4b36658653892b8ddb410473baa01de49605736042a92c2c784fd98d62fb58691c488614905e4094ee147e02a5873911733c545ecc24483ea378363556b7117a4bda93b783b3817ffa4a89fc1c25fee9a02e91609fa9928540012b325b51ed20f44623367d54e92fa727be52ebf9e599fff2d368302c31dddbdde68a122ff70d9504cd0bf69f36b4369469163874760c2f4f86dde25a3241df5c5021c8acd40f8f29040828ba399bded63c1f171981b1d9f1cb1d5f8e357da1ef8421aed3f0cc503dcc3f95d31e29454298f224777ef557f977e9d89d7293c5314d3db06898bd3b4ba0181e67f10d4a131249c3c70e43f020e612621a2832298b6e95bdd0286218210213bd20e12c961df82343a8955afecc681c6825eded1a65d8225e56175ee86bde516da5a8ab042d4489d8c1b31c8dbf925453f11057151e0fb3e7470d51e0f1d7ca0149ca16b4cb5374a442868067510813542cfb8b8666af0313152e5814e1fb2a804f68792d8abb20516413e9159be5a1d7183363beeca08ba303e730e037c5917667b45912df1aab29fcb7cc53e67a74db059bcda5e20d8fab6031cdaaf89413bdfa2ec826599af014a93ae2939c13a94d1ef932fce331b7a5238f2c90634034d66da237f456ddc1dcf30fc5285cfb75816ac3b92f482ad04f15b0263f14b6ab3206d9ec2886effc199587b6b2f4ad777cb3e5e3517f9af285af89b71a7cb73db78754a212812148fed0d289dbbce879118d6772dedad1f4daf0e28533ac764cb6a72a8d7b1e33f7f8249d650b4c1d2d47926db70fca8bdd7ce528ddaddacdfd806e7057279adf82a5a9640e9b8e716421caa62d8b62710d465649d398448670bb6dbda1fe8a9a49f0056d5ddda7b19a91d656efdae5e31d865541d7dc1163667109d1b2dedfa800cc779602eef16a27fa95af6e80bc72daafb65947a2ded264eb25996db5163beb4c15cb340c4852a1e2d0a3e4caff5dc65fa4fd3cfe15b15c216ee2593da41f5f9c8a06b496e1496e078c5672edc14e939fcd0162c3b6152e93eb5edd261bd09c71d59e387141f7f8b790515735b0f9afa11916f5a758874291c610a7bdddae55965a52ae491128aff1306d052ee26ddbed2c196a8caf65f7ea9b98dd82d5ab0765d4f2de8abdfda76bd8b3aaea82275c42a64a2aeb78c1636e6646e49a0a53a0ad940055b2c2bd1088947491600c41068b5358b595d5207ca0c8008e1dc64377be688f310f81c80255a24eb348531d9f63e0c79249b56b4b26e87d4e52dc7aafc96c950fb749b685f6daab885d992ad09d62c6a58ac668f9aa666ee03aaeee1babb649c78c8406a6b41ce71dd7b8677585584b0758859b1abd045fbd6829097b61eca5836bd531335d7f9fbf1f95414955f108fe6496f22cb9c7b08ac25507b1966d3fe6806d6c552f5689b44633d5d15cbe46298bba9b701ed56dd6c55455b654f95c6baa63b151ace4b73594a8312d5a9072eca04cdb74b6c46a01b8e95e1abdb1ea4e61d4abda1f83fa0a2544bfbc354939368df80f3bb31ba542a537bec43e16671889997aa45c62ce50c39ae6bc635bbdf9f270e4e946e2a8e5d6dc161a037c26d8783715135109d801e3942cc40143ada55fc93556036fcdeaf4573e3d1c6179d7a99dcf7b7a7573b5518ce91eca26709a883c1401742797a4ddb091b7344ad08117384be25aa37ad8a283345991da2caf2d2b31c8e48658e9a542b73e1319d981eafb63bb2af42b3574cbab6a3d77ebe6b12970186431d63393c72dba9cf5c5409db85afd86caa0a2a875bb96ee9ac8fe7d65ff5ac9affecf72afa4eefbd9f25d5d96bb8cb1dbab2413737f4282ebd6ce02bbbf824ec735d0b5fa254d434d8db1b39d933d7ff7d97ec943db3d5539476e6f6835b26a0c574ced03630c035497390a21d38c6102ae65fcbc634854f31a9a4e555b8673a6677e66c1bc92a806535489440de24497c75d33a154a5144edbba2cee9a795d91e94d49201c55da946037dea8bce25252d83c3158d198ca12070d4c14240522ae2a09adaaac798a091b8232533f66c9fa5b168ceb05c2ab28534279e5916efdc2b4a0045a2124d5a3dca5fe61454ddf85fda2adba905333d454da68e8405701eb55d059c3ce8311d5659e5db454b0967798a4d950f5c6aceaaa032bddbbeb40d7fe86e2efe0d1dda3bf017f05f24acd1c0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "multi_ed25519", + "source": "0x1f8b08000000000002ffed5b6b6f1b4796fdee5fd193c51a925792ebfd90e3004ea2244662c78814cfce0e02a99e52c31449904d3b9ec0ff7d4f75f3d1144959f67a76b3032b466492dd55b7eee3dc736ed30f1f3eac4e7e1f8f26cdb47a361b34f5496452525b5d971787d3fa72e89ad9244dab7a583d1bbd4e47f71ee296b3ab7a5a5d8fe26c90aa2b37ad9aab54a5df5d68aaa9bb4eb8b64993ec42aae69f2d576d6f39ba776f7eaf1b37a3e9f9b489c7c7ed86e7697ee11ff72afccca6a96a3ff461fa68fd9d34998c2637de1b8d9b7a343c3efee3340df241f573fbf2dd8d8b5ea7d0f4efec9930dffcd1bdf6c3870fe7bfaa93b2571546314d179fcc7f3facfe3a190d2fabe1ecdaa74935ca957fdbc0596fd2245597f5eb342c1ea887e35953bdb9c22b2c9126b51bd4ffa8719b1b2e3d339ef9411daa57e9ed51bb76180da74d7572fed75f7e7efefdf98b5fbffef1e46fe7a74fffeba43aae664a548f2bfae8d35bb18cf736234e9f7efffcc9d9afbf9cacdbc136fcf54db9cd0d9b4d6f9d2117ea98864d9debced2921d6b89b734a19a86ab749d0e60721dae2a241cc215170798d4af8bed4f4af42a37c3325834b812f1e2c4295c5032f30a172d77af9baa195d265c3ba9ded4cd5539f9dadedb83d03bf7373f9c3c3b397ffa6d39bcb9118372b669fd8f544e8585eb61848971e6065b627c50caa90dd2d1f2febd27bb8c69eda8a728512c3d4dafd3048b76be9bc23fe3c1acabb2e60a857a351ac4a3fd9ef94f9f7ffbf4e5d36f7f7df25349a39f9e7e735e52e9f9afcfcebffedbd9c9e9328e9c7dd0619671bacb595641bde351ca0d8892af9b6b37de759c5560364fa344bf3c4aceaca5fc2e571fac3bb27a8544190c2a0f781b16008848c2b240d302a01bbeed9fbc33f0ec875f4e4e7ff8f9a76fdb32e9ccda5ab3ef31aae7e06253e70afcd5356d3890eba9efabe9fb2c5d6ebc61f1d74fcf9e3d79d13af1e7efd60dee7bf199fbbd073169c377a8c3c160f4063b2321bafeb1b8a87cdadbf0d993ff2cbb7d7df24bd9709595a75b7271012aa7cd6416b640ca9361f560367c0d274678243e3840cc46003a98b8bbbadbfcbe681d7151018a106958d6b87a38adf6e8fe3233c3d56cf8aae4ea72bb8bf9918e8fb715d345e7dc832a3940561b882eb20b1b5efc78807a8ad51edbc7bb2540e882e59ed5c537127055540f7eed1db3ba4e6ed8c61f4585080f47d5e5cc4d80ba29754952d6990d819483b765d9173f223eb8b65da24a83418df618aa309bbc4ed5788496ddd6e470343c9c5e2390cb6d4713acd159316d6350f5ec78d1faf4c7d4822d7c384605c5c9687c806b47d8adebe3e5a775cc71d5b5df2f67e6abf69377bd40560f7ac7bb4b101fbcdc74070e0ee3b71d7e5e1ecbfdb6bba05b01963ffff9acc5a8e28bc3ce07d5d3a68aa3549cdd54c314d274ea26f5e06dbb79d9f2edb206c793fa3a75b7cd573eea612be235776557ab5d1df700bfe55258183ebdd8e6ed8be56acb55bf0345198ede1c74053f5fbeee6c6d1b278ab2e015121bcd77de29f36c18ca5f90b11eee4683bcae2faf9a7282ba3d11ae58d181f9a22fff29c11fcf268586c2d0db7868179f0077c3c4ee28b8e375edaa8bf6d5dbf3e5a5e074933a341748e055f5eeb8e8bcb9f8704ce861c1964e74b18eb7bb21a187f32b64b8d882c917872d50cc1bc11a5e742d6045745a8ad5d40b989f07ee74e9c5ff61bc1698fcdd227d3650f9859b4ce769ddf14ecee6a4143bbb1b907d3b099bbf46aaa2e6de9cf76e3cef3e3ac7a5e77932ba3e6f77d8db307eff783b64adceeba668c4cd5ff6ba7b8e8f076978d95ceddd6f97daaf1ebe97447df978775343e88b80383eae3b23cedde472768d08ed6da1f7fbfb8fee6ad5bfbfd7aac78fb7b2918f3668bb17e7817d77b3a637726095006b50ff21d1ff98d8773af0cb4dd8faaa970175fee46eaeeedf5f2ebf3c496bf0e214e7ad501eba4167f7fe7ecfa0f2b310b4d3d175da7b795b02af15eedabbeff6972fdfa1e74dd38e3dd0f8d3361fedf5eeff9008df0dcfb7067985ceef89ec0ad0fef8a8a2d9262010cc2dd8fbfe925957c7fdaae959b9ab54a098d15c9ae2b72d616e460532b715df421ccf1be2a2cfb72da16d6cebedfec98ba7d30d8ff7f2b219f5e1756ffceab8babf69cffbe1f43d1ff73accf8d5d17aca6eb8a60c9d76f805d5f3bfe599b2d5866ffeaf5d733a178f69bacb0b8bce0f3f7176d8137ebd53ee68a8386f57786d166c5b7cbf5f8dbd33ac19bed3dc971f65ec1d4c7df9490ded55efca3c257698b742aea54d780b462d57d9650b2edb6ecc997bd54d5f3758534f2f14e2e89a265d8f8b84192ddd0446bfd21dbf241800327b71babd9dec5fa00b56d35928c226cf06edaa17cfd117c0a18bd07c534fd36d45b2d8f5d694b95337be4bab5f446fffa6c75e76b2e0962674d176a165b02e3aa9b8e9e18bd5ce70c11c3dc62974aae3e2ba08c0cb747143da8522405b21b80cc30d7987d924669be155a1ef75abd28ada5cc053519c0883bf9c8c66e35b526ca1655a38db5bfa6efd6cfddc3bb8b7c94576046a75e9fc901b6200a1f4a3d1603d85b759b62239eb961dcd75d1ca96c53bf32d3702db7a7721599703e192eeed7e88f74db538ea34efd7df9c1e2e266dce63e2d2bc1da7eaec68259abb28dc580fd158ee3d9e8ca0f8f007cafe75096989e3e84d19bc5dd5e36e2a3d1935e82645dc6dcea3ef1ac7f3e6cbb3e356957db5774b24ef10c10aafdd7175b619a8416a9643c2c7d552c42ea8172a6e1e81bdb2c4fe7c14f749438c073ac7c74b8cbc3fb7667f23e4df9641ff9c62b6b3fec379fd852d4e5e3c4fe81e79dc4151ec6e7deb8b97773fa20fae566c8fb973dd1d38f6cf3dfb879efce5ffe773df6854b79b75be4d6a6c6fdaab078ac7c7e3d9f4eadcbbf06aeffe35a4d0629d836dcf8f7aeaa05da33ca982ccbb72fc9c49b5b4617ffbd8e539ac7d9d56c3bb8de94bd7e9ab0b1096d436f5f601422b3dd064d6bada9c1f8f8b928b9d72eb26c43b54f971551fa5a38376c8ba1ab0ae142106ad6348b06ee879886172375d2d540293c8c37a3e5d3e5cf4b7ae114eb7b094ec20563798c77079f63b08ea1b312c30f868c34bc5490b1fddce129071cb9ebf183ec261976544d86cb9bfe7e7dde7c3cea92e673c5e5e72d88e228b2b6f462b8eda796e71fecacbd3959bdb76b6dbcb0737b6587fbcbf71de4fb85b71ceedfe5c0ed6bbceb211edf7b69e9d04689503db09d0b6cfdfc37a369e4e9da569194b4f6f7c43e0dffe8e2c6c7e5b62507975beb06f3a3fc95e7fec83b5be4f60150569bbb976c0a861d4de591d1e762b4cddf57890960be1fde128b8714b790e0f71724c73e3452b1a5afc0c93b7f8fd708d005c4f2fd1fcfd173fe039c8a8c3d9bf7cf1a86747b90873eec77317fc9d1e54f8c3da3f1c7f9707d56f8f8abd6b0fac8077358cab435d9e5f2c58c69cdaf69e15aed9325cdf66b507c12f56f659bb7cdc376b4d3afffe0523390284ada7c46b69b4f74e7be90355dc87a46cd256454d9348518840490e5e086394b1593b2a04a15f1c7ce225b54c826a11a3348631290c312a53ed09d721054f52324a52e575a45c10e20c09462a2f7c7459e744ff8c26b13f9d498ad340a5a0993be1b3105144633551542ae19c115646ad5456d452c7732eef334278a646781394fc173c924f2e3a5cce54d0265ae385a34ed9ac5252d458654526195652c94d7486894c5d0cc6535ce7b1160d1a166171c58532b883c4ac72c0dedc5b111925c43b2a1dd158df516d89f12a711633c5a5c253b821cb4c3db194e65cd6889a24464d26d1796e2d4ec1b852519593c8ccb2572ee02084b22c8c80751eabe0d2104812395aca1cf3b05e729971fcc0895426274b840acca5a08847ef159671e655f02c259a63e4d679edb0b7d039b214bd0e5c6793a34a4e39e98c3784d8c8344e04739808c4e282289d36580c47f5704d1bca9c63a289b0e08d3134c0eb38090ea568f031656e79c4833e82f4e09658ab3515862919ac649a292385456025f7867258ef79f4d2246683f3dec8a48c1352645dfcad38e19f53f2734afea95212aef43e0acb9df5b88b69c748b43259e3704aec446596890ac93045f44105c9acd389c8148436889350822805dbb40f11af103cc4c28ba475ccc85365e00a0e6332a5ca7a85bca6c223f10263c94a12983116d913e04e1a6130cb3a509d24c37fdc79a1b2609ab8402dd243d11c60b085f33c61c50247444a5958c7992534a36422a12ac984cf08a794201822c31a92b25404e425656f7da414fe53c94b87fc32088b0cc4c09328b700f3222e325449c4bc043a2166d9c4841f1d93c649184306a27654c886e114d4a11853d03a88e41cea9005e449d45c5b0ecfc3ed12e51008b3c8f6886a47b144e324b207b9ed621b1e9291fa4aa3f450c916c7a3ce2baa7032450c523ea1ec8d224cfb2865d03c782db8492aca52269cc355527bd8c6251222fa8cbab70c4923b2e0705cccda4a0a88e111c921184c8d44185f5e667ceca4845199248bcdb4e35138856065ecefb5073430a5e07197b119a38a0a9a904c65219708c928f6125b06d430d6059d38a1d404ea2c7202692d8ce30a390890c091bdc36d58cafb84c0c0f1c87b67a3a45a231edc0b0e20620802100ca06524431298940db5b88f6529730cc13197e12d3803be0676b8e4684a2c498eac6134711414dce692093c9730c289de07d415678a001d94b419eb095caca30e2809e00082c8a59004298fec464db364b48a22c13fc273588ea4855fb0be0cf0911604de22216b8ae379c09c4344ac774053af6990392081b3e78a94d48f867314b5320cf050f0843b037cd4f89f51b0422612b01bd009c91a08320d51c10d4c2256702700d638576a0a55200d2a8024ec6483040c028850a196d94875e65ab28836a05988dc2b384d1952923d510a87724e50c7323b140b8006584822c53151308412cb1079ea237a4aa00217f0020da8f484e44fd602b94d54de46444d7be333c7ce5452402c059c721b72722c860223d472604c2cf9eb9d45e2c11622022a04c55c725ee1d080758162346851384de2008f241d83573c2a55c2341d238058943069ca01c72c394f82b4149ef1053259761cc5010b29fa972af589b2a7e8b03c31a65115b1800810a7c032a036e0c22c4b59cb5260005d89be6222d083a3c3fa1261740c1139bc672845dc8d47e24a87b980e2688b5a48abad2ee844d03a002cc84fa94d96a84f122391403474017485a0a5159e011ca30144a339f628c10d595424e54e5dc40956b6a8668068465f07a29092b21c1d9d08894240511b6c0f3281ae8fca233273b43fcd80f4802c81f44631d302c30857013386743138a80b8561a06e120f11e94a8362a88ca432436ec19f8a6474b3f66783d17c366c87612e486535ba101a9e4a806c343714301894629e819d01cb0109522b8aec4189f3040667484e5208301e700d100a7c968c0828a580dfd2ab42d71c53287f65d07f5802bb4a8159802990023d3ca1809527347c76cc67c77c9063d04f604121661efc86b58ddc805a80b56a6132781ef86440ebd468eb89a08f58cd532137aaec9a817a118c04ed092c94820302284b270119d758882ab0ed0ccc4727815bd02aac2bca004418ad4711d0cccf81f95306069d8f6805156039381268bb295a03c7c8ce81ad403041e1e017642082e334e18242127874f46820be422a03f5c482c0394d2163423134599e1474894cd161c5c4357804f13982b0081d6c848f8d065fe29021a2dd5e43702202a230306371ab04f76050b1481d661171c49e220c60d0601adeeb5442083e4c02e22e4b3fd71644041cb0a84005090c97c2b9502c542b0e1510c09790490c84000eb45c957b41adf1073c9d63692a32dc00220c9d13d1dd5dca601c905e20790e745612aae14c080c2c9ba82dd1270c145873a7153426f83302eb42392d635065a0403c8992611a9783c35b53f4280990b8b0c713687c014d0979cd3367c6e33492836d810ce6083eae310fd08420d112c1fc008ac180781847bc11021a03f614bd8a5db583a2c1ff0cf4a59025dba162906116e40f643615d941b92ea2216628256830c22313142706c74902392ac1103d2ca409a41daa194a013c12544feb04f296c0a8c0f3751904405f168da6a5e450410e94d582dc43e5612c4038610472c020850dc833841e6622e086651bac840591dac50d9c17e10ec20e01091658f238141e4bad463d102941fb099c438902d18357213641c61c0116c0170ca2091bc742cec1f48b682b47721e22d920d749b931521150ab06c3871850f0a82de57c08e0d8c87109c720b7218e03b4062190c5a81a81c2002324d08398898033860cb940a02c3d2720bd81c328544786da6216349681e442978178d308768bd4e40e1f411ac56201d409ead100e41850088e01ae21ac14350a22ea22c43b860fa815e84d04ce15524f34f3d000215a483768300940421a70278340baa7921a48504c537017600dc29f41853a87c183550c0812416f090792022e215c809045ab955453a2643249101e4540426f5108519790d6b1d403c466361c496840779391902d98c3729b14c30807ca1a120d9966ca44c8024e35f4305c85a98fc75e19232ca005b045308255e15e8f42cad608a854e1958030818e25d2000d05b5880cd461e1d69805e02f5667cc9e30228272b27037874c66d02bf02b22230207375431218f2c4e073c140a9564b03e8a51658c769c6025de803a20522a3503e008165220a452b0006c180b191ff066517b18c6e884d107c65bf01855f088b0904680de88a18a8096c0e40e18cab9c69e80132f0c1a0660067311c406d2d7a059617a81d8963039b4201a8300149354741016869c23901710f88837271e35450a7a633a857905f4b32d09845e0601d496b600c4096087b465fc54946b06ca658027c3600433074a3004101aa0053d13306fc23880028f2023a1ca10285447c0c7806d4a026cc1ea9ad832b18313a114d38dc6fc5bef5b25ed23a0d9f552bbacbeb43b9ceeaf6b9c1a1791d55b6faeea41aaf6eaeacbb2c0cdaf4f77cf8aba47e9b8efc162753f9a4c466ff6eee339129e56f576e829a9dd771599d5ddb66533dc70b7efaecd1ff03fdabec6da3f674ebf3713179ac5d70a76dd73fbb755b79f726eeed62f5c2f9d70f3a48b6f58effa265af1d04105ef1e94878cfb788c77738512c5bafa8ff2cf216f7eb9f5ddbdff06cc22b9fd933e0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "simple_map", + "source": "0x1f8b08000000000002ffdd586d6fdb3610fede5f71450143dad426b69374b5e300019a0143bb0658bb61453108b444c744645193a8bc60c87fdf1d695ba42cc94ad70043fd219175efcfbdf0e8838303f8b41405ac645c261cb25cde889817c0a09049a9844c612173fc922b1ec38a6545006ac914a08c50b064057ed57219cf95e085a63e3b40bd431fdef1fb02322952054ac21f2c2979a169231f2e58b4240658958582398732157f975c93c73e9c6b5ac452222d6499c6702bd452a470e9bd9757f0c107255686fdc8c72038c44c31f2ab50324767d1b5b5dbf37b52a6598f51731c637ca82fe72b79c31274995d7354bb51b9c682654a1661a1e2c9a410ab2ce121860fff3c03fc9405074de1792ef3a9fb4e66845bede50d8f94cd69698fe42a6339d3644d27477f455bd788004b72cee27be077a2508526473245c42ede5d7c0ecfdfff7671fef67378f1e72f1f3f7d9c4079720433184e77d4202ca95406c8ba920f979fc29f2f7ffff076233f5afb51a8bc8c147cd4d1a3a653443130693cd3a98f64862f624c7e60505fc3431fcac6044cd8a717095ff154d90ace02cdfae0986ae0db6b08c39b507e83ed9b1b129c1879c74a56ce1311c1a24c21e1e9955a92a189d1b8b6b7fe76e661b22730688cdd3740552e98282713a3d41ba0ec2b8adf6f311e614e15ef308e169a51af6c6ee9d6bb3aee589fab4cdd7b7e85cd438b4b7389957cdbe1d256430730819b94c1362b18cf40b358ce265c01a27c3fe7a188ef02087d2cbd854863823e200dfe74cbcc8a02e7cb73cff4d66422b077e48a13d46b057e00ba1991966201883864f95549d5e4b955ee5b6ac9079445c31bc5fc4ee52c52a8b8545029af44061b680d6255b203d2e4bfd2c5d7097288aafb034d7e3c1e6c92fa5e0027820b3a21b811e80d3e4e3cc5445a8418e813d6f95ccae46b41ef00bb25283cab552eef43dde7fba659f330ab396bcd1573a23ea0c3283edd99768e6d4fcfbb698b9b2c8ebf7dc5ef99f97e4716cc6396b0489f376e4e067b3b2195e9633ac13da5a91db6caf1883ecf328edb082e48b449d1232d27f89c42718b69e0e64c2c70415222d14c09ee0274a4cb3ce67ad5b9c2c2dec94f5616cb70cea2eb7aabac4f594cf03581aba18307db2dc26b8b4e77b35620ba5d4e81ccda4f4678b95953e873bb14b8717995c95392f79da36da38a40a947b4150cb4dcd412b3c3a89e7fb4ad3fb495adde10f913cf6aafe2f3ff27d3fa6beac01ddabd2be05125d0bb089c443be5d0b7209c489a1bc60a2e935943a75986bd4ad019e5546594d4273c90b64571a9ff9fe2ea7a1640c3cb7af5998c75a5d082492cc0db08cce0b09eb79cab324f2b5ff404f52b3774b51efa7e6b0a12bea0841dba25968bab25bd369677ab494b3d9f19beba4fa46025622dbea00af08cba97fabb0f077411aa0b645261250896d01a81a21deb20eaf65f2197ab8480aa6e7ca655572c49781ee2d539f50636d13c73cfb16a9adfaf87633cd42851544e416b44f124297883d0064494aa4934778449b501769df2c140df32679d7868540990bae79e53059aadaa0c532956613485d15d575aa3df7c057af145e11af357c3c2129ae98fb7fe146f50b5dea09f02669b7b1c364f403742bcb759306d66b2d535beee8d00db6377743fb7f753cd8d9bc81843b1e717bab51d31018c6bc41683c3007f6fd9656bb3376ee0b592a9b974a651ef91c5fb43c36ebe66b61ba953e528c05f681a306c046784ce9eb482b356b50f1c647bdd131cb2f7d35e70462692e300deec078798e14d4f956f30dd87363aa6405d7dbdca6138ec5b8014f370e4f74fdf70dcede1b88787d821c3a347b5885334eebd84944e7b743cbd0c0b7ec373963ca2dd9b8befa4ab32875d3d7d5c2bdb7a4d8fbaa6c1b895581f3a0ef175ad071ce291e9f2861bfce1cefe4eef4fdbd785fadcdfe455ab9bc19e1f56f4c9e76e99fa34d2bed0dfd6156eb70a6d2c76a9c34eeaa8933aeea41e75528f3ba9279dd4d75fd9012fbef0bb0c81e771b860222973de7816aa5b11f1ffdc16e31ea7594f6cbf6d88eba3fe49a27c6c8d8cfb65f2e1d9bf41c70fadbd190000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "pool_u64", + "source": "0x1f8b08000000000002ffdd1c6d53db46fa7b7ec5de742ec5d480656348a1648e4bc83433096402b95ea7732384b58e3591258f5e0027cd7fbfe7d9176977b52bcb0448a7f9d094d5eef3febe4b7636379f904d721ecd173125f3342ce1af699a91220b269fa2e4230992904c827852c641813fe7b320a33949a724208b348df1ff266994e4dbe46246e567f80fb949b3620630e17f839c14f0b1488b20e6bb499420625c6550a26492d120a700e694de7030b3340e6906d81372552e3924893e23190d299d23842823f436ca15f2b60136823fb90d1863d338bd39c0056f9bbc43747911640549cb222774be289678800cb7c9b982f718b122a1e4260246bcc16020393d86a53806122634baa6fc93a00cb64ba604ae24bd21339000dba58a0044cb68aad76beac9489c0e160b40130505877d1dc425f093a573c07e1364210353e118aa44fe986b94a14e701fd78bb213d1edeabcff9bed74f27f0eeaa2e48a4e5125c82eea274afa84069399a10c12e512253fde07e8283e442b2538d604486f27b320f9c82d51c5abcb5339843218e91c8def24c03d1dc81eea9a5b5aae10b94d4e9051833f767687d37584123d96fce98a616421b2dd6a91d1809c2252c1534ca70512b1f344f865b028d2dccf8bf0e000cdcb2ff776c9972704fe94b9f63567eeeccf83c5c1c197731a4ffbc2c3df068baf87d509b69766599a196bd77452e0225bddd9d9d14c23490b0212cd6952a03c99a1b38d9334c90b7272feebf1fb935fcfdebc3c79ef9f9e5df8afce3e9cbe3c2048ec11f10e2b98102d3032a001a5299907c952f57add9154f8176767fedbe3d3df7d05d1b9843face1bf08122435a47991a54b203bd962aede84f8eeecec8dfffa9c517bf2f6ddc5ef12daa8014d041d35141560aa8c523566a1765d0cbc3e3dfff0ead5eb17af4f4e2f381315f9bb8756914f38f259704d396a86138e6ccf83db3a68d875c031f867ff3979ffeacdd96f12d5b84685f608b1420d4d02233822a5a1c4d414dac5d9c5f11bffc519b0d440b0e74020c4b61606070ffbc244f981b7c7fff53feced56a6f66c77776f7f7777b03fda1ffc3c1e7b7bde58ec078b282745ed87798142e5aec4be2b76e8c7d13c2a18d07eb58171e2335159bf701e8d4f72b172c55f823084150888b0ef79df8afe807067947b956d20d897741a9471015831b35dcca29c674b8abe1ce2f23c4a80fecf9464699984189499c343c89ad10404375f946a5a67d99e07a4391c28b6556cbfa637f49a667d040e10122a50049fc0f84b9109d4d3244c931f21cdc221ccc01ce71c088e16710487af96dc71a0be401aa601725aa314eb3e5f57a4f9b58e4c2fa06a28208c0035378aab2dcaab389a9069093cb21d1b0e9df60eb8197c71883530a8c372c7231b743a05b540648f31b2c83dbd9a768ed5c7cce9eb7c5828e913afb792319e85272518eb9c5cea302f1d5c77c4cf456b9377533cc68f7677e96bdf356f19d8be49d7303eca65359f71c674d7d9e8f59d044907824c87d1bff2a3c6198df9fadb5753312f4542013f53f209773e56154e8308ead9695ddb6288c1f47615c401d64d55c56c2a4de42a9fc1ddc0b35cfc3d45e0410ece57fc837ddd56244b8e8e407cdcbb0f0ea204ea9c288472006dbf99e17abdc30a624c8b6e5a3d207e8b62fd36c5fa76c5fa6d7af3db14a47dfe0ae11ee57168eaea3d2dca2c2197f8f1b2ca402bf5a0f025b4f094a981a7965a4ca60e1ce8ebd62729e75794c510196f27599ac35f71dc287e38d10edaf8f1aec4f1dd2eea32a887c15c2f15022eb1a875d300f9b6080ce1f455060e887033a0ea4a372dcd97051cff135d6e3c65047352fbe4a902add722d7864453e4a480945471e264a329442713ba68415a1b9a0cb473bd9ee1499b2acf572978e8cd4a6eb959d338a706b0813b32296291261e252221a70d050bb16c5f9a621167ef20178c24a010616fe0948a8475111d1a55915fa43eaf19c4e61a4c9bf66368342bddaff61d759be13b469565fa917ab2bb35ae4711c410c9bfcba7652a8b69f2b198a94624603484f561116219b16e042cd931df1208e725cf167d2c4c7cb310eeb54447b007e348235e1fc758266266952304a8b812631e845559188ac10f870c4bca24499f1f54c79b5cc2d4c28f9226673663ef7354c24a6571648b0bf52e96937bd03432031988eea3f2141046e529fc00ba81e6332a34c5696411205a1eb2d514f6f323ed70a33208b28fe51c7af80d7727d7eb8a5170f1fc48e1e9ae08dbcca7b1f493c6e3a13bf7e987c5da4f0ab90aa761e8bbe2565f39a108a75e6c183437d4669a0a23180d15d03da089da23b388167c56c2864c651cc2c1b804874e016a664499bae40447375d1c0e86d88c71cfe0a0d1070c763bf841cd6d9b1774ce8ee80ad2dd95ccd148993ed0b5c18873a7cec306e4499965607435e04d03977ea469e60680ae36de3281d1ac9cd5074df60dac764bb59d358b07548612689e633cfa6265595bec966cc82fcdec686b00f18fbd31b10ef38ccecc1497a46b51e633ff0aae294cab1094b82a0eb30a05c3b6d8d56aafb778beb36ab3edb3273f3d164062d3ee39ea19390f112c7cd853383fb7a66fd7d5183f6ef77069322d5eded135aa01b12dd738ab47f44293d216849681abe683e82326b8f6d4cdf7d0b0ca4c8e2ad684da3b5c2bbd6d1988d64d705b0d026a08210d6106da92e92cb4578775b21a131299db380edda421353592616dce387fcc6cf57446e76069da0d9f48604d46bae4b0aabdf8eb5a784de337d8f6c364574bc66a2c6d290c2804b186690e23e1c69d090ea3815c1ca9f25266c96f3c70beaadd88698e28cca24b82473f6f1e386aa64484bce16b1a813e21a4b73d802fd30f5bf0d3a92531b65625f27cc6a4d0257709dcee0c6607e526e3abe6caba403a75b7754f452ed50afcb2baacb714b197720f5e1cb09eed2a82eb88242d3fce5853779d46617d4fc1b135d29ab551aac614ab7b34f33c1f919b8d6edf689eccd0dcbb6f31f1e97e20e7fbea5d9c2a888793a35d0e6ec1f61b97600d5103ada795ef2ec1a7f2545e0c5577e62c0804f36687b4adb9ad75da4dfefcd396082d0ead52df5ea8c99bd71ceeb823689f8e5436e1729f2ba6f9dc4407814f581a598e770e42003b32bf4a34cab7cd46c416787df3524ea0fb0daef76890656ce6c12ee18278c272699856f76d93a088d2844ca32c2f2c66c2af0575d0e2e8d20798891f46d7514857b9870c3d0d675935b2ace5c565cdab86fc52794b640b2a72d7373983b57cd3679f0e1b374fbac28914cbdd02c96a89ac133f1e44642be2877a23be66e4901d8e0c21e613b3182aba7b8d1683c70811020457a36c20eac73f1274b57e171cdf212e58dcdf121e1c1141312f278acaa26e85312dc5df9f9da6f456c0123c22ffcc5b8c9b7df76b09bde6d42f2299fafdd21b3ee366a77f35ae5981757c57704436e4192829372b004bfcc10000caae367fb67caf116c08e870db8c825005cb2f0e3910f0e74a52f0b3222afcc44ec3b276fc873f0ab899f6d3245efecf75678dcc3baeacffa617cc5c2a9a40a025cb965cda28307ebfe083c1891e7ac3140bbbb138926f54c63dbd513a57c7bb1e33dca12c1b992dd78629ae32aa16a04ffee5f5d98b42c5422c9b867df634d1d59bea5753acd3e961cc8463b6336af8af37e3c34c7ce2e2da2f0a79f3c0d0dd303f952cb2ed1edb3e5abd7dc86967db772ddbe5cda70dfcb8c37e15fe9ea1cb77da2be7ea256aad41cb959ba2a8718b92ecf2d85f4f1ecf8c50456f17d0a8c2884730e97b8443c6a7b5fca12baaa9ab109be0fae4e75528878453b72ecaa11de5101dc2ed6264543d788e1271a38868b75019ca132cf54172fd8895bd3e7626648dbdaa1f10e21c71dec61a6f165f1d351cdaa1d791cebfccc99ed7c186478a0979c37623666f51d7b5e4679c8595718e474c5d8441accc3b99d87e32d9ec1c646a58c0e8c8658a8c357f014318504f8d7bcc14f78c2bae86d444ae4fe18df00c50744dd9b00175b658752f80c76b0196b9622564fc7d02806e86c09725e54f2aaf2964c97c8eaf9ef4428bbdaed4665fe094908e4bd8bae48ffeb9d1a155195599322f1b499727ab09dd43cf0333f2baba86151170bbdf391fba203c5b370b63863783683d74f547f50b9c9a8575143eea6be0da881f9a3e7d0a37d4a8577d66db892dccfd6aa86a3e8bec390bb11ffea8148eef30cb8c6e0430e12e004988e6e0fdbcb70771b0ad6ad3d001f378edce80f9d1d44fd242d0d15ecaa9f4b7c7434f8be8ebf0dab1e8f463b82ea03eefe3f315740f0d739a05f11486ccb73e7f542fefc577e46f5a68ee97b322c15e8aaa809c190ccf1f695bf53a53c134b4631aea98d0b1ddd8862636dcbe56a52ae4612f56edde5f1d19ad1bd5a58c7a4d21edae1bc8a5047a76118c1fd324adafd45bcdd47a6268fa526d2d4eabacedd91b0cd6563b3fb64e2b641cf4ee66023650c387d0d8679a5523d1ee71c3d98bdaca4fab0b0f641e5843278d56a8ef76fd96846a936335dbb8a318b9b562bde3ab73f335446a742a9ef1ab99d4db575f81b40f04f43f6e24431d8956b6991711edeaf4a4700d6c965f3cab9b8bab251415ffdc3648e2e9181fb2e594b2dfaae0e5a1f2e29903c0415654908fb4c85594acdea43800bd310a48fd2d46d37dbbe673158e282f75aedf464989856cc8cb61d7a871f55042ff53d5b25bae1c666f93efdbe6f141218b1b22c588020a0ba7eaad2157e77d9650b640a13c6d34dca035beacaa4dbd8794167ffc92fbd50d20cf917e3a95ac3c94d09cc2f2bace9ddae4ad8bfa5ec42624a6df953eb0657513927357db4853ddc9a7a00f27b3ea396227710dbf8bb8866b8acb6bf16603b21c61dfd1933bf598835e475d88f84893699ac19052edafd9a5c81acab95779db778d1e205be882801bd14f7e302d80ff0c9ff619ae9dfb57344e6f3ac966f440b2d19f1cde4988a3ae53dcbb47815566ba371e8ff65bad546b452083273cd8560fd3d70eb6dd94d0dab87a0f268cddc11ac280c0574ea7d124aa5fe93fa21ceebb669398588bb266c561b429ac1731ff35816f6a4b1c3d45db914ebdb4356ddc9728959aeedb3be775395b5dde36ae0cdba65ee610c36b1b7735fa724f0f768f1ac0b440fd7801ac353f7cb700a60be33102985b0ef71dc074def87b68ad94622398e40e2ef960356cc7a715ad32bccb80eb7edb57f31531bf3461f0ba5b137feea7fdf340983a94b950732cd27807fe546941ea2bece6b5948ee7aac43785736a4776b7b14337ca3c17657c746410663e2868a7ac6313f62de4dfabfb361e933e9a19355efe9adc7e1f1bea42d65fd580bad0decd7abe3ef93fade21dafa0520000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "ristretto255", + "source": "0x1f8b08000000000002ffed7de976dcb895f0ff7e0ab6a647ae6a4b32f7458efa3bb22d273ec74b1fcb499c493a659004257ea96d8a55b6941cbffbdc0b802440822c52923df9314eda96aa00dc151777c1f2e4c913e3c3755e188b55ba9b5323592db7245f1646b65b26db7c853fad36c6fbbcd86ee876bbb23dcf48769bcfd4209b7c7bbda0db3c39324851ec16f9f2ca20699a632ff8c4d85e53e36ab3daad8dd59a6e087e7cf2c393274ff03f80498dd526a51b6395b1960a043a9fe76b185980e2a300923ffd0dbe31ce0cfbefb6671b8f0d3b085cdbb102f8e304b6e3e1ff42cf8a9c2088cc30747c377423e7a723a3200bcae00abc14d0eb4dbea0c7fca362170b9c33e339020774ac48c6bbe6d57ab3fa9ca71446fcb23200fb5db2e5dca2cb6495223b2aa21a14419715039dd2cf748eec39ad2018c7c6cb7c536c81ab86631fc7b75b7a5ce4ffa4a9f17cb5586f6851d0b41e97833d32be5ce7c935b268075fe3e8306601ad8cf52a5f025af9129aae36e48a9ec8902e29083c455073b2b9a29b236878bca08bd5e6f6a8c6fe571ca30d2a85ce1c2312033bb2cd6a0103756379c2b8c7407368e27323214b23a61c75e45f4600f15abf6afd298c49a961c591b1d8cdb7f97a9e27447c40b7c9c9f484e9166000df16e5d005f94c53063926c93f80488614e38711df1a251d8acc64aa0bde0f7a759357e8b584cc8b55ad2ac4b84c08505f928ee40a5121f0827d298bcb20cbd44857f8658b2d4bd4a1450df6dd9242cfcfd08400e60b98c7389781a940e2564229c74940602c984c3df43014000164e26a096c9ecf6f8f996ec3904caf8e1858ae10c86932ff426e0b6478ad1bd096b19b189fc93c171d05eea52941be68f97e62fc71092cdaee96644be7a093e98e8214b80ee58b7c2bd402f8b5da6d8cdd12e6f0fc1699955493f7382573fa8fa64d99e7f186a09633c6d4e8a2f1fa92036376cb254d50b737f9fcd6f84c377976cbe022de8c947c7b5b991086338a6a7bbd03c6cdf3abeb2d74837137941414650c742cc8329126e0255000e246ba50148a66f4739febc99196f505c9805562d2405b2068879acded9f6e56d518bde262c976dbdd86c2f0d45820256016d76b104365dfc9dcc828c146456db97e365e82360b153ee526068d4c4cb6c9f50c14936eb693696d7e787b6ea0a4e6e96a07e6843734d89fc76c4a27d7c002babcaaf5b725e3740553ecedbb0f06bd61e8f2a1d415acb48893255a1af8ef22fd42366921215663310391ce4ad5983142268d86597e43d3e318847c64b0a907dd8eb7b0a2189f73024ce6ec9a2db0d98c992cce21fc793245cdfd13d960fb5f374c097720b3377533f851650410ff65b59ba760e2fe7b97330d11a6e238dbe4749982ec2b629f015a8cde0fcc44a38282ae5436de286d05a871be8589b5926109f52cd72a9da5c0013b0c66be946dce78613e2a3ac9802ecb1540823909f3f09ff8d90f3f94e676bd5d15b3629b9e9e6e6497e25f3f207058620cf61d97cbe9e93bf6efd31fd8b7fff1d72d2db6b3d5727efb9baeb96806d2e7ff004b96c516f857949f8b7ff7f937dcc540e6e538d1f9bccf723a4f710106dbb4dd8212812c4138276ccc042119efdebfb8783fbb78fdda38058b9480d87fb70b7f0187e8e680a6a993795e6211dfb16c2f4cfd28c90262a7348b526ab966ef1fcb3c785a23ffa982f30914dc3a35f2137a72c4c838602b77b13d3802fd4b7749658bb8bc29a74242f9f5eccdabb77fbc9cbd7b7bd1c63979389c91e10b72932f760b03dd25c4077da70205a037a2c2de823639366f2bf3facdf9c7d9e5f3f3d7e7ef676ffff866f6ec2f1f2e2e81ed3bdf05dc1d1bfedd071d653b00b8edf9ac6d1ff0571f6ad8d07e00f07ed2156de48b570f1b7e7df7eaed879a0b7d4c88cb996a4caee8121798d566da3d072440cfce2f2f38a4b69ed8994da8497c12272e0d2c12862e897c2bf14cd3b3bccc0ba963c63e215e68a76998c28fbe17b91e35c3d44e03ffa03571dfc3a25cc63674b381bf912ffa69bcdc2d623e8f4bef8c2d33688116b82030d2ea467c79915978317bf1eae5cb8bf71782898cc8cbd9f9db1742c61547ada715e48b9b35300144b5402f002ce4d2f827dd54ab1741030b6b850ae7bf2edebf13c357dab27fc892ac9e311b783a2d860a754693b69697010d47f3a2747e37141714cae829cd08f3051503c874b28ea950a77109db528c2040d57ffa1b88e13a8efff55f5f67181ffe5487281554e64ba1236a7c4ac9967c3a31fe40d1c161f1644a4196541318ca8619220fe6dd51d9c9d4c5a953ce3e41a2e0cb359095acd6e0e8314cc08fddacd6624dc23f8894acf6ec8baf43b826d640da70acdb013b5b59d419de1c59044b8aefcea2ba3216e18ebcec40a88bff1182e7cc67c14a33535041159084574c5385673a47e35b31504b4b6d1451e6c2f72df424559cac409dc3980bec818e55158e9da22d8169c7628b2584fd1b6400660e54163e2af8cc434c81fd5f000ed745c8600017c0bda3272cd043165e43585bc1cd178bdd96f9471b9a01280835aa3c03ebdd925506a0769b822adc6fb873c8f806af3916cc16a86c2e8dc14b2577a446acdc7eb5ccc27b0ac1c492cf410894975b0cae840c0a7d568163bd06371d468674156f3e2b7bcf6a259e4c4fb54a5593d4ff6dad603707e63dff1c54a37e6deae8c3f300096fc8b3a6aaf30b59c60d9ea2d9dd40380341d0203246ba039c4ec9fab0be4d1aab41bf89886b3fe49b90d8490cc4823dc29a53189f0be5c8984d610de61ca86d752d9b9a82a958a7078abb9be03722d546ef2656c83fd50bfc1243d79a7f3c53d75890d05b458f74b1134b09984be6b07ce26463ec7c28b1eec8382c560b3ae330a69fc0b62604a33774c8cab89a253b0c66228b936ea5c2b1410f0ef9d2dd2b9541534819b9961239417deb9947cf2173b46529c325fda2555f2e0291772d201d80361f49ae9679e315ca6455501110a42be6b7562b609995ab80f2b45e25a0b7ab256db10ad09166de8cd38658cc189009fb5b5e8c616ef238fb771a2a7e91d89667c644589c6256c52d35cfd8c8d36983d14a408f6a30d18051bbd4d39d0da97cf75592097878c0bb1e708022d55235192cd986123d8438cbec6c0970af38c7c850c5f7972e23254bb0df5e71a93e55b440edbd4fdead892826df1d64d9a04e27c68aad7f20c5b5b0882c7032589a7bb7ccd1a985689b6c8f378007c8b3811f66062fff70ee59f63e6914d7045a4df83f0d79dccf2c6901d542e1bff728f12559ace74c8907107c957fa6cb86564324a9eb29349d2d036511b219379445ae78974364861e03046298ba3f06cdca594a0e1dd7eb6a009e625c90750160594dcd58606eff8abbc84d177c9f547c772650bfcf74413d670ac8bb9d9e6242747b0d0b1b9b10c6d91920bb5ff97ba5dd23f12611cd09794fa338602295527d51079c1d7eae2e0c6dea585d0be9a9257638ccb559e2eb0f2cff1a2cfae61c90018507c871be833a948e82ba3087d572f81670e46a89c1e06d479f9ae64259abcb3c9682ce9dbc45f60df7459e765a90ca9eb6963259708d5e4c483ab21449a1dd94abd35af9b4a4a3827a30e75f85d660d2c09847b6717c99aed6e7b226d270e124e77785d13f16cadaec7cb47ec46c1e0e790449a90d662304a658bdc145e55352c9ba62d9e17afae948d426c10833d71ab1a880564612feff29f9d42182ed4ad8bafe0922a56e6b06d73ad6c53802d54089172de8e894eb650fa4d5cefac384bb8a9f2e3c62eeae03dfa19e4ffb9645caf2723f9f4919a4d2fd7a441e75933703b3905f2d2b2a219963f452aa69d164792f2590eea1d294af436d8d7826281f166171aa1e1b317c80910dff608a39574c6fd51ff1c29e140e4a51635986c07c6c1dad7eea09ca4439568dcd8e2494347a113f9c5ee8106986723236007c5f78576b3e3053af15506d67d4ea086b19c087507c002851058006ebfbe333d08861ba8e4084ae930e3dd7123844df350434d4bcc7021d77c9a1d8c5df570e00f08e72381e2e0704f2ade4a02160a81c8e891edd25bdd208e181180e832bf80ee4f619607b3490dd08a297dd0359db4475285fb11d861c6893db6507a086d50445a94054194531492d7371fa96904dfb4cdb6482f303bc9b5c69a6cbb54e7af16a357faafa933b9e1b617b658e45d650ddeb5726a8d896d39965ace1bfc7f0930d3fe1bed0939313f63b20355b36528b95b7a34b2ff244212bed11f88acc721821e7fba7a4dce327be9326650549c86f6ea51d874a5b68d25ed5182d33691790d802651c0ae7a9113a1d557baaaa167c59eb4d0280ae811bf9e3e44725c484bc0a5daca132c0614e8f78e4c66ae0f0ed92451833b2b9da2dc05f9d2825e5a9ac66fda30b84070e2faacbbaf175f1b1401de363ddd78361efabca4f47a6cf4f5b92ad26eaef9a73410850d05249b8d3e40c29adf131dbb5b5df6b922f654af1c848ae69f28f4258865bcd6e917acf6a6de820dea8a7d53be8b8f992e306b8bd8946c19b619946c1a466ca840f71bf0cb1a0e85b66854b11f72c23c3138802df3a71b88fb94ae270c6466f30b9c5022d4f383fda233733851cc4a0a4b780c313dd4b6317eed5945dc8040b25e7508738a63b0a588c4517dcd432916c097e8dddd91746c368c42bb00f5f60b26e276cf52d842f6f4a03fc2cf7c69f25bb500ca7d377f713eabb138a3b6e67625ac007f71015f4aee5248d7b273159f6004141a34991df6c295d5624c067f7a101ba4bca268f3d9a8cd2ea6141926d5fc4a51a679fb2e1a8da25273675b1ac4d5d74611b4d57fc2cca4f7d1c111b2439198e7d677bd79f2276ec7b5bbb3e7c1f362b3c195450103e9fce0ef242425d3a68160eaa4d6ca3445cefa1b9a3a8cb447a9958ff36a21e520d18266a2dbedf4fd4654c62f20d1f1ce7167f15733ece807c9f7d3a5244c5f55260c46320c3eca2085c1746542127a830109268e1eb104afda168d150600de13f93e568f65bffebecb77ad88f340de6bef58db8df8cc8ab7db81089331aba081031f6fcba9052a19beb3e82a06d45d246fcdcbbff0c8b1078fae1efff3ab6bea221e47b65d98e72619fa55da4ef25bf1f492a30ba461def94013f0da4a03cd0ebe753a7dfc7ef72c0f75aae1136949320b9268d8c6fd36af6b17bbd819526d9965ba8246de862603313ae24bbefe06b6913da7b93d855baa64104a4c158b4f828e6fff2c497bce10b439d2a5926b343974193706ca4d0b4e44bdfc809113101140e42cf29fb7c48060db363bbc508219509fc8712929adebe93900401830534463e9accfe3de4c39837563e699e89bdcf23c454e6f71f4a4c6af67ba8982e77f17643f0e81c0a85c52ba5941e66fa6812fef7100f63da58f140f29aefc2e42a589e2cfb696242f5854c8dbf950bcd4f5d44946580fbc8474da1ef2fd4ade704f7d2a33420aac0635d251d35ff870840530218c97446fd288eb3fb03aa0d0815f3ebe32d5dc856f57e658dd696f775ee4499b07cb79cdff2dd3825c7e177cc5de618ed2dd8a688ab81674b95cca6284074ee996b26a81a71587d74ad7ba03d3ba4868cb877376b6310a91cd21ea5bd0bbf17aa6eb7cf82dcc67406a84808e9f098c0b8470c9b69d7f01dbb6474459e7ae8aec1da1b15f41b3dea91f03cd38ccd4cceb52e5e746dbfd649afb3abb6eaaf62b36f2bc2505d51d7f84155e72e5668c75717a77b8daf07a05ad7718395672ed9a902b04765b58607454b4a53bef133a564cecf4621db8d372bc0e04f6f8c354d76f31cab227852816f33031dfd8c5ba377055f5379c2576485d47def8531a92f30c0a3f945ceca1fa2ea86d9a1f7bb62db3ef2f5e7f3f76f5fbdfdfd69a3c2883bdcf030396e73c38a4a799eeb5730e88d7a121abb4bf8580ec525ce7617967e855ad22fad0ae2afdaa2e12f0d5e8fb3d1326a1a23dc5b961966e63a53d790a52b53e17da6a43b6dcc07e089e801230cc98436281a30ea90a4dbf8519b61e81d87d95bda193fa46a2ddbcb0c989ad91db1558de4830eaddac7071d5ab58cc346a967e907caee086a947799b91409195b3ab8fde1cf655dbd759cdeb4ef99d0aa50c37ccf7135dd051aa7d241ea326754df05f6d8b094db217e7ddd7539047da8cb21ee84a5ddc61258dac6327b302c2f712513b50c21507e329ddddff451c2e76397645dea91d8755c2f7503330c5d2fb29cd8f55d2b4eec20f56ccf26783f9a09bf27aeedbaa9eb46994bc2204aa3cc365d099b8f3cf17766584f3ec2df7ee8459113d841183a6610057664f93e8c6f5b8e65d9a66ffa8e19fa61683abe13da81ed3841187956e0c3279e633a96ebfb56e47b01402d419837d6f317cfade0e5f30bf3223af79e3d7b11d96e70e1f9cf9e9996efb8c1b367cfce1debe2c50bef3c7af62cf25f78e6b3e72f8273e765e4dbe7e64b8527afdefea98b2f569226569025d4a411f1e2384538d4f3e398c389e39838164d538f44711cf9a967c6491a10270338c4ccfaa5f41776294704345b7664478e059cf0032f084cdb0943cf0b5ddf7142dff13ccf0cac287423cfc7bbe922c77303cf75ad30b28230084d3702c68a43d59caabf74511499010c9a512b7163df272eb1f1aa8b34f083104025c0f3d44ca9e77aa00a5902aa185250cbc4b13207e8373d59d2c6cf8c04cf8f4cd3f55c1061e044ae0b92b3edd071433f8a4080368c056286df3cd42cd30f5c0771f680301f540218605ba16946a023a622980fafde5c5cce3a49016c9dc025c00537f3610c9310620365a14ffc2cb2416884041e2830c008adc48ebc2c31432b8808a269260a298fd9dd803e90f4b14e2648d8bcbf78f1c7e7172f661ff994b6671fdecda0bdc0b17362a5614462278c533b884cd01da43aa229604160fefb6e9298a6173b761ac32c89b2c84a3cdbca12cf7789075f85128e78e8e8d4187f8ba1da3fceafc4083e5ed1a37e89e1fe64824dfed39843b620bf829cc5049a4ea71a56d88c01fc961eab7b068180c33005a15b3449fdc0043397064ee67a31cd123fa359cf9f7a0671d06fdfbd9d3d3f87bf5f01b4d9f9ebd7b8025cb680bebce71f15e879276d04cc421092c8cc7c50c014b411a76e16923484e99882f6858458711852d33553cb0b231ac441663b814f33339284fb7b7e1a9a6f6d6f5d4ff63927a765cb4f9f3e953f967b54300384a7d66045824080272d4e612121e0fc97fb594473deec64b786c40b9dc4073168f9eac703b551b92d863beea7a7ccc5c39e13de5d6dbdde806b325ffe38392817c87f9ddefcbfaf0710489c54b9a069dda72440dcded33973e22c8d0202cb64484c3f332d274c4dcf0e6816db2125a917079619c560655c9f2d579943881bd824a4a94bcdb429433e513bc1d924f64cea844e1a24604ab2c04d3d270c1c58b41c2fb342c7f260bd4a2d33cde228cc92845ad4f66d3381ffc16a6d37c1312bd109cd0463eb4469ea4616f582c443936899891391c84a7dea9976026623c94c0a768350d70ad2c8ca323b89c1785333902fb02ad5134c577d24e2c828af84431f00ec599eb18b678881379569950ccf526d922794df6a77b261071cd3d5697dbb57a579b59a209456503aa9b80df830744ea47372d393ddf2cb86ac41274eea0f9f2a43d73a754d6f6a85c2e63a9d6a2a950cbfe36a285cab6d58ce7d9b82242d4268106531a1344cac3482e52a36537077b288b85e10511f56a80804040a108684d6fe57256ffd05546190d19458519406760cca45ddcc8bed141c2d581f4d0f246f5a51e2275e047e55120726a5002322248afc2cc0d5569e2a7a20193163c7b7dd1816b7c4b733b0fba9099304142c49021f14da21316a1275ac98c6760c0b50e0834be5653093d82d571acdd5c342f3ed041eb83e5e1c651928a39d85e0893834f5610279364c17f0111393980416b9304a1d7097022f4dc0c7353d76a31697b1cea08316fffee2f2c3ece20553cc59dbb26761768f3f012e2732f81ed0dd0106f0d1750370c0c0f90832f0bc1c9895248c69648316f9693f0ee6181cbaafc003a1de1709e9ea427e6b21469cec22c3661a187252936963dfa474d9cad9de9b1dceab6b45aada83bc4fbb2ca2430e88d5d10febb1a64786256fa746d0fc2cd899fe0282b1a0ca63689d50946ef48695daf8964fdef569375bbabb4a04aafdf114c5ac04dd3a637ca8f46b51a89ca4381407ca0eeb21059952bda547fc6298a6dcd17d942e50d1607fd54bb95668d2cd338d11c91d466b9bffe97e6e5d959cba92b82437ffb1dd9e5c8de228bfb85539fa9d51bc08f06a1887abf64465d15e0eb537cf974ec354373c2deffb233f5f7d6b61e0dd0cdc5369415b573380dddac318dee85a9025d4b58ed951049685e1072a8a96f0ae4ec441f4b333c3d4cb97c86d2c7d9bb5d4c46ed88c017a52a2bd20ffc00d159b72f7fe15445e0b767bfe6ec97c359aee9bdbeaa8ca98abdd16070576e266aa04ca1620cde12a5a569a074ffc1e1e3fa89e7e2355bc8b1ef4d982aab1ba91a0bae701516392f9ff3bbc61c2685dbe877ef795d2170986908d59d6969c18bdadc92140e64b7e204e34161b41b0ca0fd35b776ab0c6a2b866b745e35581cd8b0471f7e7a3ab470ab092350ccf1e4de8d469d6b1695499d60eb2dd236d316e12d2dae2b1b6b5d30169982a3e7aac1e2eb9c34ad9377a6db8abb3e11521503add15b3f84ef44811c150e32d761b9d4927d20f0988291e603279bb86de8cb1f664bfb58ff74ff292656d9bdf6c29aea2abdb39c3d6062494f7ed5f1fc880f5a131743c70e878f4d253b2a50d40bb0a3d8ec7af42f57ec09939339579aa6f5515c7ccfa00d62830d63830d61dc198336b2435d65dc038b3600c18d0d6400746bad0be1b565d3fa650a4a63332bb226b5674878227ff28ae3e6a58dc841db632980d6a9d2bbf66172d172bf6f4ceca10f745d63b35b7066b78c95ebb98935b50b8a2dc7ac1b60cf2322a6ebca8f72390ea56b02a6043b74642bd9edd5fae7398cd93c4f80584dd58cdb1e70cc847d8f78c769471119b0413f3fae5ef9baf52ff661289ff5d25f27d16f66fb970df69319527ca807515bd10a947fd6bdc3d806ed51d32ce18a76240d3128d114efdf5dd9c7a223b498a53dff29764a7be6efc904e3de976eafbf560987fafe1ec702fbfa3f3fe9511779cff9fafffdd7c7d64b7ec25fe9fcb3fc87bd67bfea528ff9d0280619eff2370fd8fe347e3bd7f3cabd04c3e3dd0dcc4a1d8618a4a5911989a396969d48f67bccf497931e6c02584751ab6e2484172f3227e96d8d9335ae760321aad9175458f529f8d92daa76ddecd603991f9a7ae591af4ea4952f5efe5a5424ed545c3833e5d52ef65d7e9537968469cf1a9eae85f1b378054b70ff6143e2a6baca4acabe6223bd72fb7720c34850af2d07734d1d2bd874dda255c87cfa69b83987aa96f796918871954a7a1e298a4894fad30f2e230f653c7b2a1dceca55696c5a6ed452154827153934f9c30313d7230d52584070a815435b13b1980e642dc80fa4c0375848c245e974e8a107abc4770fff1d772c05946f23958cf86405bfbf7498c4fcaf0dbb2c4e76a8dae754998d8c5ff57e5c588df8ecaddfd7ffdad42ef81b1e3670b06222721d4ad13c66fdf8c95643ebf03a6df029f2a9a9ee19b6cf7146e372f8fba2781d1475737fe787f1dbebfa97adab8fbdce05fa1e56997d871a799c0560922e4573aaa2f7e6b9890f2ea03fd10ddc4770e58f9b26d569757ae1d96077d3a9780ef51afe688023625dc814b444b6ce5b3a91ab1896750ef2fb6ef274f4db367df4becda15a17d65847a83d8a41c1753ca2a1d879dbcec1fc7fa9eeab320cbdb968bd12fc68e2be7e203eba04167674b7b704b67704b77704befa047857b6787fe958e0eca750deda10d9da10ddda10d7ba9bebbf5bb39485c1285594cfd383533c7f28899589e197a21a149083fc4d48902d775ccc8a191e7d12c0a6d6a47516239e07ddae141d3c51b379b87bb7c72d4bb77a6e8d9d89c298b82edab38f8b002acd9f949b2c687a7724cac934d729d6f013a7b541bf2e91065dfe2b30f4b76a415738a909359e43ce38847920e9e3e88ab4f08892c1abb0ef5a89d59769625119e77a1961b27ae1766696c05811ddbb663c766180501a5be454994852e75ac83e928b6ea39059c99de8dd5ad57569a4ce70728d98ba4f727f681f6f8de53642e09a96b475964fa6e10fa9e0bc8a60181f0cc24a90f93094f0c45ae4b123fc89c90da661a662488a81b076960d176743626e0d2bf6b031f4fc744bd63f6288a390d2b649ecc3ee724cee72ca9a1f162f8c318b889951fe4de850a9d78cf4b2b22ac4f41ea6242f53aad43cdada3f62ec4940b8cad496aeab112e7b7c6c0f1dd093ea53c16926587a341e1fd9c363b08dd0f8c5dc8624d8dff144724cfc4bfe559a31e98d2fd3087ca157e95b5e657cae1ef0d71498f851b5ffb35e889c0b430525a3e82cb4f4628f7962a971ed76740ebfb7d9b9ac8d8d4b81ba3a58eab1564efbf346e09eeda9fcc2e433cd4ef8bc3bbfd0ea61a2138367f9b595c6ab9a135f20337447703bce7e95f1dbaea09dbf2f1c5dd521ca4bf278f2cf37effd3a2fcbc852e3b06ac55f0110c96547838a3aa438a77e5d1bbf72f2edecf2e5ebf1e07f3b1752fa8f5e9ed9160ed87000bb67d38d8ebfc0a2a79397b95a6a0ea4b59ea6d38d8121b568e3fee45fa66ff074bfcdbd3fdd8ccaee98d71ffab4043f3a0bd0a76907fd68d893edd3f4684daa1a7e37c06bea8a896d96475c3ae15aabc3c525d963a8a31cd3e1aefc004ef40a38126969aaca148f0b510f1668f8eb487fb35879a29699c398f6fd919505cf1f8d378782cfd80b739682c4ce539d08e38f8e620a5248d29cd0e5a9e40722dde0238c2aaed463c4307f59b797e95634e69bd59c5c2693326fc3237eb89fd779ce553feba1daff616d7e00a57b78282336100ddfb59d4e44b7707a66c451f1fc51bc6b7201f760b4f93a578054f5dfdc428ed0a1887880c15258b4c5b2ecf50055306a97d25a1a4e3e606532a756a58ac5ebe9783aa833680e79a7961e9e78585f3c21c888120fbdf665ec89df2e5e7fa4a3e7193ed61f12d264f617c2162ca8807fcf8fb7d5063f82c6d167aab9d4c5aaf05d0d5158c05499d291fecd6319d0a711117bf30443f8bfa27bb2cf74afd11e2300d947b42afe69c1b305dba323b653404610444b7799627e5b3b1dca4555b22800d90c441f164399da7aa8a6d378d639f65c5aea64c490443e6882e53f11cc5166fe77ca8b4d289acc9fb60fe99edd21417fb5e6dc8a2a85f55c54b87de9025a8e8962c8d0f30bf8a6493afc53d6de22a9dc5aad8b22da87441c7005e124e117b8f06e6feca58930d5e9f36af8745c230108654c56e4e8cf57cb5e537fa2053e8f6768d588c012a18c41fb331d6d764b9250590fc0527ee2a490806de4c02e5e3c3bb257498e74bcea30ca60a9bb36380aee9e61adf2466535a91e686303cd8a3543165816dbc828ee5dd72788f11b03ec533fef8d6f618a87ca4395a109cad60e5b6d727074d8bd06319619c6957de58afea4a62dab68e0c230c8f0cdbc4bf3c1b7ef571df950d3fd9167ac5f099d2c5f25c68e44073f811feb21dfcc987967e8083b13e66a34f84c3316041803ff9080781d91efe0a235a6ea8f6b19d08be874f0d2bc0e60c991021fa1102630858daec79659caa7bd6eb9498351d6a89c46ad2304210abe23beffccb0e9744eb7d37d7289d4b21037ab7a48f8aeaf2f7bc500cf79c1b72cdd2273b0d430f6c436bdd422400742e44d86def8aa019bb36e5c261e079d18f2ab9f20eb712a39b765af163c7f6961bad6770339827371dabf3cdbee5f986afcfcd3e33290bdd22a1be2f4bbb69b791d5bbe12bab32ea748c6637b70382408e27c71f9987f7710cc3d5b638ae7a3fb2c2efaa8dae1dfe331d403ad25d8e31ceb190b6d5358b1763d46a96acd6b718ffcb0f4fb520704dd03ed2a72308c76c385823c6dc37e49e0e6d489db0a73a6c07f05e734c1faf3ab3462bdc00d26517f4a699e7ee3245ea9b96cc6b821a8612cfa8c1ca6d1bcfbf74aacc3607577576ab234dbd906d00894df26eb94c04080d7de7788bd198517bf6371d76ee03d154109a1744ed2b236894e60126ecb7135473aa360f9073e90cb569aa0007b24873e4fa3c4d73a6c33cdf5f9cb234ef311e1c82e9c613eb72e8cf3cc6f97cb6c8973bb664b789574a418393276cb7b432f280c958a2693f703d51c649c6415307d357e2ce01b16763a03cdc2c52ee3d1b3b89340775cac72d14256135c6523fe4c2cb83e9c75d6a920a608d546c81b5f540ead24863301c61b4418a7b0cd89c19c7ff6b4c2cf599ebaf9675037546ff5862438b188d8f19cda6f8d73626e2953e96366bbf093ae4a6123d70b9cef4f4a16d43e7a47f2f3f5a8889010b4214acc8884be86f31c154183f4daacb3fe56753d4fd31f9d5153a1af7e282feaecee97e9750406f5b97be8b47c79a9afd1b854a6f4bbd1b56d8a03a7fd75894d9712d1b1f41411cf93a79d399c6db9f7ae918f1a8722186e46f860cd2d840c7243a5401f4af5876409d766fa0ed9077ff9dbb03268d20a7b9db75a8aed4374eaaeac1d2eb18fc77efb0e87ddb405e4ff86342ed597d727212631a3d838422a469777323e78f3e145494c8ca023564162165c52bd54bb996adab12f73f7a3c27057ff077dfa3c76234f152952387843fcb8340b5ba3bbad473471e5a1708e18319ec2e532c1a14bc6ad0909791ae28f2625b3e3ede712ebb7c9890dbcb623cbf38b4b3d60b488dbcd91d992cde5b1fc9ddb1ccdd3385448f56795136ba5f7ff81fb462288216ac0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "secp256k1", + "source": "0x1f8b08000000000002ffd5576b6fd34814fdde5f3174a5d696426bc7cfa4b05229d9550514d414ad58849cf13c122b8ec7f2d84dc3aaff7defd88eed3c4a41ac16881445ceccdc7bee99731f3e3d3d4537b348a285a045cc50b44863b660492ed1e8e2e5f81cc9689ae0bcc8984421968c2291a07cc6509a450bf654649465483292f61d776e2216c7691e11448aec96212d3a61273d4404c72417190237a67e727050fbc2692e6420733a1cb616fe3940f0292443e582007322190edf96bf6707e5ea29803e4f10cb32302a0838cb00d872168151ca24cb221c479fa364da431c76b03baca242b4602817689989648aa2242d7288ee333b296d1291c81c8d8297a3f1e8faf2fcf5e5dfa3212a5c1b3d47e659e9b3e28908cad0a280bd212b899078c17a28e288dd02151903ae1240c333b128d781bd08b8b856471a76b18ae6a48de64619022c4870845b3e9f569457379116610cd4ced90adc25285ce54c76b15f9fff15bc7bffe2f5e545f06af421b87aff2678f1e166345e87e1da67b5bf6affc5db37efae47e3f1e865f7d8b813b8659d7d1bc4462cfb118e2fffbc3abf797f3dda0faebd5b787caa4eef445e5993795690bc5abcc6cb77e5f22bb64233ac2e2805826826d21e6c1419ab25a53e25a221ba654a8ecf0afff772e5fe61cf4d40bb8ec7eba5eff77aa1d8519625c2c9b6f5da67a3a729a82901985d7a6b8278014941a8c441833b50e78272abb683431f6e3b6b41630979943fd1ca2cac8e0c87314ba6f94c3b2a2de9e8f9f37d57daab32b7cccee1304a6e21196980b369a194af6da498ae9f351eb7a15401024f8fb3b521826ab15713859b1bcdf012d233854ad626e05ef2606350fd1980e42a065dfb311237307c338f0f25ef7791b909e9213ec775bd645fe45355ce9a49f975bce5a2a62c9d0fd1d18e5dbd4b6287b0747e521efb0a983b49f238c636311a78f0d71a5f63f02170b0773fba6b4604d47f59b50430c3b263594a4eab11e99d32566573a78ad6e566d2c09bd4f255e62659657c15447402c1d3d6096d004c164c4a3c85839ad52faf1ad168ca64ae9facf7347baf44ae7a17ce1593b5a6bab51b7a266e9fd76069c439cb4075a876d543cb288e21a76411e7aae02b586bac659b481a975142047469b8a34e31af3a6a7302c7539145f96c8108e01249bc523db650ed052e96cc1899a3126b94afea2ed46084fedb65bef1dbe15c531308140d28d7335dcd22f3442ca14b319811d80c687d48d6153ead11411d7e5722bd66b17357d0dbfc5e573a15d61db1557b4072d590f36c2755ba0a8c598e20a3a02e14840010a81e9b388328c95996e0586baea983a9d7696955f5696b0670a835565b8f55e3ebcc62522c98f615a5329deb7a63e51e6643c9be64361109db13bbd6b1b19975f50fbaaa262cb831a22cad2fbf9b9c6a289368a2b5587b084a06d3272aea6eda014f118fa0c8c09cdbe65491a839b7a36fd0e4a43536695ca9eccc1a771f3fc1048a216ef023e074b68c643d4a240de887aeefbfd3dbd6e4014ad33aa6502844ac9f6db37a03b56393cadf3ec2ade69fda89109e144d18d51564ab9ab5d949328673a0ac903094233907cdde1d1a66dfb21dd7f307382494f16f7d3e2c81280215ac603359bb026e5e2654e6d771ae53299d6fe78fb6a1507504143fc3fd0042d3c243e5ab7a7369e33dd47b1b878ccdc7a3fd93cd1038e01ea603cba5d8b0f8c0f6896913c7ee1b7d8359c4e13633fa1863424dde37ecbe474c136397f579c87dcf736df575c3101bccc496c707cc239ee711bb6f6193f67d7b1062cca9c7b98b0703cbf04d1bdb16b1b86f50674043c7e587e8bec5da29051b53cb3a4123785953a97f0489dd8337b947b6b3bb3c83f73eed6851289ef5aadea861e7eed006e0983986ed59a61b0260831a86ef121f13465cdfe386119a840ea849896bd9dc25a1e5c0a28107d8e7f0619e17da941ad80e7938707cc7e456e8598e433cdfa4d435b86f9b3e0783ae434d7b60789873db2303c3c28e3338acf03701809aff88a334058d86d023ce5077b4c02b5929fc7f578e2a6e6f6fe07dec1c1d7bc768092f1abc86091d119ae4313f465056d88fd31bffd9f5f6e417d35b0862828abf9ecb7eaa6ac57f2df5a889624b3df707f707ff02f27ad9b3f4120000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "table", + "source": "0x1f8b08000000000002ffc5586d6fdb460cfe9e5fc1a1406075ae3da76d1a386db06e5f1674188aa2c83e0c837d9268fb10e94ebd3b25f18afcf791777ab3fcb234dd3a7fb275e443f2218f223d1e8fe1e3ba40d00bc88459e2339b880cc13a6dc412c18938433b3a1a939cd5a549700a2be70a3b1d8f97d2adca7894e87c9ceb1b7c9609b52c49c9ff1ac7998ec793f8347ef572f23c4d928978999c9d9e2e26afce12fa3ac1572f628c4f129c9c4d70dce8e29d4365a55636807a079e354fc7c1093bfec8cf472cf2e4d709bbe75dbc7420f322c31c95b3e056085e0e1c8778bb92c90a6c5914dad0a954a9bc916929b21025488739296988110c16062da1600af13a848f8530c2212c293252b28e7f78a5117c2453aacc6334cc6440122a0501a5929f4a8415fd221bc290334624d784ab95f7d01b0f169c29138ac059cc1643f6975d27115d205966523c40132281080b8a8e6e1016a54abccc087ed36ce4068d253fa585c2688a14d3d1d151aed392fd289cb633ebd2e93404fff908e8b33012d9ebdee9ec96523dcb502dddeafcc84b8e3b85138ac43fae42f0acbf2e2868a77378378544176bf81e52a38b21d4cfaf2e8816eb6bad76803f81aa298834a51cd8a13fb86fcdfe6c909917a0f036581af9b3a28c3399300f7cf2ba6ff56a1a2c5d0ca269e5e0bb21fbd05af64fdb9f5d67087116b8084f82ee201a36d2f77d3fdfa669e524a5caacb9b29a7c8fe06d1caa70417552092cb42109691b846b5c83c828dc740d7827adab2a2d88873ae1fc2aed426c2955351b6910bcb1a12fc5442896a3e24ea54de8e2b0f8c2501ea4db2290b8df26f062e0e1a6709c97ae4be1903d9d027dbf11d914aea20ea784348bf59d171cc24ff4edeaa202f26afed967d2bb8fb6084c3e95924a8308923999f4856a70419eab046b3e49b5ac2ff79c00e7908b82eff1a8056ab82605be404c598774afb6c50129197d7b88861d14506d1d5f75c23f0e280729884614c3dee0e1ff8a7c46861f51045175b4c1023f689908c8df9e8d4b65d1382f5d086960e0e586304f7121cacccd23584863dde3f90a9db282dbd582f8cb03ee5185c07769079de4dee0bb442b27a4b23575de12f3d7bd7dd50deccb3406a2b67d9d375fdb70ba69e9a7642f993e1144e5434864a0b248b99fb739d45eb1afc079aeb04133f0adb4d8cf4459b0535f41bc37d06b61ff02dd1eb643366066b1a798a1e3aa86377b1270be21fd34887ae0f37e163b69fa803c2485463ff76873ff3a30e84aa3fedb3e62bcedc7f5906ebd3333fc96604f89bb3715f0e1a6da92b2a39f7cf0d1538c8622978b45434d9de6cdb7f2eef06ad92f7f45c45a679df86aa0c301756378f28743eb665a65eb3fdb798c1e49b5047e4ae35396e95b3fcfb253d43943dfc41b549c47e9eac901f3c2adb78263a5198d942be461f540889d08bb5761537f5f641b4105eb83308446c10b0ac9e8f523cc07c5990f6e87f5e360fefc6bfcdd4a4277fafd4567299a7f9e81abcee42761ca721b81db886ddbee4024892e95a3ebf0e30f779328b8c0a479af4227ac8568f6954b8526eadd2ad6e661b93c7d3184f28c06daf38d735fb174486293c964f30ca9499959a2536c445a0161d9fc779dbe79ec42190f3b8a1d6b95bfbe23b86a329c9c44db884f43776cf0e00d193ef902d493e70f443d79de436db47cf7717a705cd13bece6fc33b17a1ff51a31e17d8b4f6ded929643a3a85bbe7d7fd976bddf8d286895f42dcd377dda273ea09fac52ff3017d7dc40c219b0b030bc62d21e16f6ee6abf685750bf968ebad51fee4b5dcfc3aadefb4b5e58147a1cbd373297bcccdaea6de4c435b27de13712c9b6785de7bd9397f11c294a98078b347a58bdc3b91a9cf61f282dfa0dcb774556cea5a23f3bd04891c9bfbc38fd0db2d665b511b5abf5de05b0d953cffb1acde6d3ef5dd4531eba4a85d0a22decee5671107ecf801e700fc0ee1efe1fe2793db0ee31b1f9ae7b84effceedc42ed0e048f747a8fbf3b5e240f757a3b6dbb5e3287d036c1ee8ffe06410983d1af130000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "table_with_length", + "source": "0x1f8b08000000000002ffc5565d6fdb36147df7afb87b092c5473d261d8839c0408160f28dab543e365eb932c8b544d4c2235924a6a04feefbbbca46545b2dda659513d49e4fd3ce7f052a7a7a730fb64b96406e6d9b2e4904906b556778271034523732b9434609a7c05998192cb8f7645567685d64b510abb06ab60c9015dacd56acdd9685429d6b870b555263596258975f1d37b61576988f230027c1ac3810cb8d64a4fdbb5be6b923cdcf0b2887da19be9882cb101995971c721578c83ce84c1c2ed4a1870a98082268990775929589ae98f4dc5a535e388dc736ccec2eceacdfbd9d5f58774f6f7ab9bf94d02cd2f3fc305bc3c3b9bfe8f49debe9ba7bfbdfbf3edf52efecb69df60f6fb1ff30f3b839fda364f61beae39a802080d43cbc6ea26b71e91bfb0923704ec79bdcaa45515bc4e3074bd8617c0b4aa63d8aedf5ec20ac93456691e58708f9092ebc4473b7f1da359dcee79caa830bfb8d915f6abe69945c240f27bef3da1bdba599622772a723be7fd6a6e135fc1e5384a062d50fa4e6dbdfdce4ea7f2a0134ae6fcc751fcc86cdbc4d96e79d36fe61a458c1ac66e28da04e6a8737a85aa419650e7bcaabde6f154e49cb341b7ccc748c970d8f7e5d8173a68ca571d759acb8ce1dafee01d26e1dc5c5c60077dd1198b1c8c771a8aa26987bc8146001e3c6a718b4a0a1bd41c65dab906484347637289fa985d3116d847d56b82c66e519bc0d552696b401438368241a1341d9f36c23f1c112f51476c0dfc9330d678e0bdb9b0064f3ee07193ca7ad130acde25692350b29826539e4967e7269230b9bae3cebcd0287c61075c658c1d61e8a46aec019a62577402f88e042470dba52da086b1c714c12311f04637f2897a28b7f43efe7c01614a7401cfff6d8476d31a448509489e9a17d8a9ccf9167fccd170b85f099cdd0bccba802aab716ea9c92e50cb0d3a604082b84312b90d304327adee8fc1761c323cef27b743b87cd8f1491fade860fbf0bd7a4f31f1f3641305ab8338b814fbd533c0e33db78d96861a0faa51c5ee08c62026780eddb76caa25d76ed7f529b819f45786f9fb546e237f693decd5f4c1823592440420f89e497ca1b13928ec73c3f4705d4ba5ca0385d12cfd36f27a25dde826eb3a131ac66417c382f1226b4abb88a0101a6f94af16a0ff990ae1f65dafeee569a32c0473e36c8f3eb1d2102dc15f169b0969f69cd6a877393f49d54405f0d2f0fd518e8cd4507b67ac7ef168fdfa5287caaef0c2f1b7cd82fc1674276952fcb71d4d9a723f7b2c7519777f0e58ef16b824f1390ec0f26517da8f5dd431f8678643d1e2b8d5dce3ff88fd586c6d9f7549ed1b1c47a51f5ad98cfe03b683dcca590d0000", + "source_map": "0x" + } + ], + "name": "AptosStdlib", + "source_digest": "A323A700050AC7AD4B32C9EA85EFE11E54569E63EBA4B9D78DFB19A5385E3573", + "upgrade_number": "0", + "upgrade_policy": { + "policy": 1 + } + }, + { + "deps": [ + { + "account": "0x1", + "package_name": "AptosStdlib" + }, + { + "account": "0x1", + "package_name": "MoveStdlib" + } + ], + "extension": { + "vec": [] + }, + "manifest": "0x1f8b08000000000002ff758ebd0ac2301485f73c45c86e4c87828b4311dc9c1c4b2931b94a699b947b6b14c47737893f08e298f39d9cefd69336bd3e41c39c1e81afb9a8a6d9d316e3ebe2b1172c0052e75d4285545209c66a6d2d021150c368b609a96b21984e5fdbdfe4f85efbe4c623b471c29fd1003de3aa2cd5a65845e398106080d750765a98c05970a64bda7ce57eb64377889d1b1fbcd1436a4bb9ccd2056528f89ded7c803fd531a2afe603314a07c60e010000", + "modules": [ + { + "extension": { + "vec": [] + }, + "name": "system_addresses", + "source": "0x1f8b08000000000002ffa5555d6fda30147defafb87d9982548dad65dd66843454b29789650a8c3d5a26366bb4c446b6c386d6fef739211f9092bb54f50b70afefb91fe7f8922a9e2502d8d62a43379aa5e2b7d2bf08317b63454a19e75a18230cfcbd00773223c0584e88d05ae9f1a9cdc43fa570c6c23a1c0e6179ef900f084316452a931678cc412a0b91d2cebe5592835560dd4d6711e06c2ad3511d5760454a1a0bfed76049ef82d0a7a1bf08be87773e9dce66eefb8240763b8209bc1d9fa4565ba1998d958488495032d9c35a80336e944e0587f5bec8bb9a1f2759cd2bb4ebf14b1aa967d9d5c9f4db3258d0cfe174eeff08c22fed5e6ece6687d814491b7467157ae7bae948d32470e87eb8f267ed4ca392b16db64ee208369904e628d796e68dd08a11af6c9cc0ab03d1835213f939175089c73b5c27a4fc4dd5a6c21a0c0a84c75e05d478f927a9fa7d5ac5a5171b24727005857809714a4863639c4028173216dceb965867a568aea64a026ba592e35a9d032613f874126df079b49e690f4a2ebdda901f576d0ba3174b572720f8f83a747d84f11fd29bd22a6d373345fa4d842d870a482b637c3e352bad29c1c3c3f97b6ffe5c23be1bc437427cef10df2de27b8ff83e20be8f888f3d87fcee6dd3837f449c7d1f532bfe3851be49a705e76e49335b6cea8350e09e99f29fe0c93a7ddd21d25ddaebf1214a2ceadda5b5c8b1b5b49ad7fbe7f1e21f78fda671b3070000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "guid", + "source": "0x1f8b08000000000002ffa595cb6edb301045f7fe8a59e5e9da0d5074a1c08bb43152034552a4c95aa2c591454426153e1a1885ffbd434a96f5a89300310cd812c9b98777aea8e9740a57b056dc150899d2b042899a592157b02ad49215c5069c14cf0e417094566402b519d52b586995898de551b47282c3df11d027d30225af0733cdd6f8a2f45314b134554edacb5198350dd2874580a3167f905339b5069b2318aa8afad800e35ca3a15faf02a128ea50d458ed520b378f8b6bc89901ae5539a6bb4a630de73f8247b0b80e97db368c54f25349a2a2c01509b7586cce2ca44cc2926cd288049c6a6496662d37c4b1511227f068307345f0b150eac99be8ca00736c266dbe9a2e55e5667c80d1132db24a4528194bb706612011c99868e81f7dbd298938bf486c5e6db9c594789392a65cbb4e04eeeb977147e9aa76b4da675dc597f7659b99be64b473bf6f5f00a8e34306ac9db1deadd22d0b61722ac772641c540699d034e60c5ba1bf4c2abdf845d83c4e59c996a210769340e664ea992beb522569d5dccbc437f3dbf9fdd5c3dd7d7c7bf710ff7afcf673f1fbc7fc3a6c0c66f0b915b1efa178888a46ebb4a4c4487ca97043b41850538cdf7095ea4a2e70a72755964f3d4bedcb49c78571c7d9586316c1d1da594f721a552afba61668bb1d9dc1597ffd65337b3044d33babcfe1623fbb27b5cf79ef663f0de3c1a8df5af7ee76d4fdb71dfa3b7c782a77ab1c06ff93b66cd272b9e56e2cf86b0647b5af9d5df98bee96c2e221eb0dd9ef43dd43a5f5cc18958a907a1f43da4e13fc1622b1f9638e3aec47fb1867477e7022785ff6beca9d57ae8fc0e6043bfcbcf59d513aae17f51876a5f62035c6c48f7c8425e844ffb321ee2305a003386f93ec7a07d4bb259db6fd6ebc6a4cddf39e2bfe20183ad25ef0419eb7ccd961ed9de922bd9346fb7762d638402f3fca5c780ff0c11384cf7137a163d8ab2f952a5af2bbacc26c064d62b7a37f0cfd31c810080000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "event", + "source": "0x1f8b08000000000002ff9554db6adb40107df757cc531a132337a594a2a48140421a28145ae7d95a4b237989a455f712638affbdb3bbbaac6427257eb27667ce9c39737696cb25acb608f72f586ba844664a840c735ea3025643e22ebeb33a2bf1016b944c0b9980de320d5c8151988116904a641a674b420b3312053baeb7606afec7203c3c3ddea9081e35a4a2d68cd75482fe9a5aa3845c488245a84db541e9a0443e45e31a0acf0209e876cc2f1931b2b0012081394cb4f10ab0e25afb48065b974eed66eebc8ba13b9befbe4051df18cd5a8558a3855a2b9dc5b1bffe3b03fa517170879b545dcdfa231f9d4b56e14ec8e7382e0ca7202b471b954b8e54fd2890a5ae8f36caf2bfedd85abd68402d3b936edd50e23ef032829f445fb6435590dae8697ba498c78bfac44f11fca66659812ec53610c4d9b4468a1774da68a1593928dc435b7b6c59d3d0ac32e0b58b6d98d2be8ad2d2a41a82d15d3784ae4505ab1832291ab8f082df108af27f5b893b96abd39583b93ad2ddf0c89f55d403b49e8bc17cf9bc18c1de42518a0d2bcb7d67dac7bbd69aafa2b9693a737bacc330ad278570ea05597e9d91c9806d290f1fcc3751bc481c586336254fcfbd4fe6909b1a6adcad5dc6da675c4fb53b1f88cde391daab9b40cd572f464a7d5c8cce2df4707298f67d6f7dd6bbd3ed8086ed4bc132482a5524b0217d15af0b483cf9b5c43cf9a0e019f7ee1db675a3a079d7b49dafeffab8dd012986b3cae849670ba0ca31ace6418b3bc935aeb568857440147a4eef378ee978b3a745737e362047b6f1f902829396aa839f5ff5d0c711f0edd4e1055c5e4de5fb85da48ff6aecf480292552ceacb19d96ce8c417753952cc9ffe833d686fc71e62a0dd24c9b7e83636aa4b473ee5a7a2fdd36efbd8ce9f1067c8fa59d32fe218ad67d4c39de890b4c88a1f7e9316f1c3d79e0197df09c53001938b1b2f8e75933cd6925da664e5beaf4d37cc1943eafcd5732a7e3e2375267d460eddf215110fb6157845b3b9032f371afae047f3edd06f337d6c1b002d68b76d5ade1d07bb9f3ee61f60ffc9be2994b080000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "account", + "source": "0x1f8b08000000000002ffed9c69731b5796a6bffb5764792254a49b25e7be8896a36989e552942d7a24aa9698a800ef9622c224c00140c9ec6efff7796e6ec80d20484a727b5aac45642e7739cb7bde73eebd7939d7d717c61157abf972922fc4a5793f5ffcfce489506a7e3d5b39fff985c3cff5d238cb957ef244aae561f78a592ce68bdeb573b13cef5d9a5fada6f3d99327fff9da5ce407ce49f1e7afbd8796d3b733d36fec9d51ab760fe5508b5bab9b2b3399cef279d3ee29575e70e1d7fef3ada9997766b66ade38b67ffd45ccf485d9f6d2dbeba9de727b79b35c99cb89d07a61964bb31c1fae9017663d54fbd7afa30f1aed4791978ddecb17f3cb49470dad9b97d717abe9a479bd78245f4ccd4c8f68b8b850e9f970eba36a3e9d6d7fe2ad9999e574b9fd214433bf5e28b35ba7ab85982d85b2763279272ea65ad85fab497dfdf5d7ceabaa396761ae681a354e676f1d3173aae61f174f2e578b6bb5728e2a7bc6349d9fcdcd01d7e70b5399b7fd11d7ab73db842aba99f0cc13a734bd6faed36f0f9ae796e6ff5e9b1993985d5f4ab378e25cc7e1faae3593895a98b2111ee9ddb7929c2cccdb29e6b2981496b87cd2b6c16f9ef1c4abea81e27aab6f063559cc5765e3632fffd5dcbcaaeef7df6dde53e24ac8e9c574753399e7b99dc1b3e6ca89bdf04dddc4fa7a7bfe858feed0caebe2c1411bbf7ed1564b7fc0857ef4627e3554d0fc424f7655d2ccbcdfe9d9ee6006a2df329a35f4349833da644f2857e762b69a5f3aa7df166d57ad3af91c019698f84d8521dfd252aba1a14e8683ab0dff8953b5d16da2af90dd1a68b770b298be9dce84f5b3a3ea81ca9fda8e54de995c8aab2725c8d5533aa8ef75a56f7df9f47cbaac7aa9a4b274509fa3cec5c58599bd35ce25ef09fe5d9d8b95b33c9f5f5f68479ad21cb5a3af17d6f9ed486a437fecfc79ba58ae0e78a369db992e9b2eab37e54dd1511defe6ef91d11f978eba5e2cac055c5dcb8ba92a21e3fdf9549d3b578bf93b467735b738bfa423679e3bc2593b84b39a97833045cbbcfab8e9f4b551f399ee8fa93716acb7d56f39e3c1189df758d2b2ddd7bc3bc2a6cf9f67f3f71746233b065a74dced80d98ae572aea6b4a2c137e06b558c1aad00abceeafdbc18a0585d5bb528319bcd5756f6e0ee85b8e19d2998cbb573b3683a659a2bf38b7d4c091ba4b879c373eae25a976239fdc74b3abe9e4d81d306549d12541f8f59fe4f8bf93c7fd6d883353c35bf422dd6845bf6b71da0e795095b876bcc92f1ced7a65d5f5f8376690b05a29438d27eb3b6147bd78aad0342a59477019fa18317883132eb3bcd7761d4f46a5a8cbe1cf37af02383e843c4a71c0216b35c393f1efd63f2260e69c2f353e7a9e3a561182761e82641e266d09ad88b0edb2f1c3f2fc8cee4f5b3bf1cff78cc7bf62df7b0dde49b1f4e5f4c469ff35a74a26608e282f0ad6f1cf30b8160d9eee9e8d9b393372f4f27473fbc3a3e7afecfc9f13f5ebc3e7d5dccb66cabdf949ee32fd6598ab6c69a7a7e72fc7af2f2e4b46cab6eca3f6c0146c733684919a34b70bc14bf4c2faf2f1dd8113e440c018668a0ddcfebe3fffde6f8e5b3e3c9cb373f7e77fc6a727a7232f9eec5f77547c1610b814d011c538d43776367814256ed70abe9ace0628eb585d579bbab1f8f7ef8f3c9ab1f8f9f4f8ede9cfee5f8e5e98b6747a72f4e5e4efe7afccfbabf70dddfb312460aaeb486b61a2eeaf80358596ab7786774bbaf67472fadd05e31bf577fb33d3e7fceef8d2aa2d6b4d62cb2929dc52b8013739eab02f110a3f35674347df2e67472f2e7c9f7474d93714b255718743ee5cd6190b0032ea635e78eeaa8fcefaf4e5e7e3f79f6e6d52b6433f9e9cd773fbc78d6964d32d6c395f53d8bdb6b105f6011d305f780fe02e9cb78b03c9f5e9591a83b9a4a61ed91bc78f9b7a31f5e3c9ffcf4ea8449f2dfbfbe3cf9fb0fc7cfbf3faec79276ed4259df5faccdf95cd0ab703490b912177f6a82c39fa4585ab17442a17db90c3bf9f5ac50447b2c2f4f26cf8e7e3afaeec50f2f4e1b51643b755f1a621deedbbd168cd4b19952e1274564aa4d6c4c1078e3f14f98d3c96969b1c311796e33a4dee8cb16fefceae8c7e3bf9fbcfaeb469bf4bcc3b1ae1b382a1ff2471f3a79f5e2fb172f191b06d46f36187d633d83c9e93f7f5ab71f1e6e99ffeb17dfbf042346665f43ae0d90c81e45568e3b29d3813debaf0dacef3f71ea4cbed1e3c9ece2a6546443d6aa9cd1dac874365d4d51e77f40058a4cdaa973c565816b85f95c16a58a921b9436be57e68efbc580d66decf57349e751399efd76ccea65ec24c4fcb32048755fee37b67fd8347189f34d56f3fe1307633c79ddf18023576501e8c2defe3a6afe5a75d422c93fd9492fe16418bfa57067559c396ba4059fd298fa5991ff947d9c3d768e2a757413e5ce434d1f05e0e2cbd0d1c7252b7f2f6e0e4a2e5eba614d226b6fb684b0d4c7f2dc4e6c6a2f8a8b96068b41353d7407b7499b9579554ebbd77a6768662de1d2be7576d362a98cae8ec73d31d58dd621fff13a87294ce10f7b7f2849c0375503dfb6c7b17fe014b52f0ca77c7d523ebcb78127ecb72ca76ebf6314adb69d3f3c75fefddde5a48e7dcea34783db7dabebb4558dac02ff8958bcbdbe44ef7b9b22e77ef3f67ee5b4054c74943041e1e746fd6c74470c6d2bfd5fff676596abc91c67ff574bb3231a9de0d613fbf0ceaabdf360463a1d7d696baf17e442c5b395093ded015fbbf3c3ce5bc3fa032f53b8a3b2359fc81be6bef768fced51eb28b387274f4ae2b5f768d8fcbef31446e7ef6808dbe8dab835d8490dea5b25d91e3e63d56b8b5ddcb77f53432cc4d696d781f3e8f27aa4c99e1cc74a66b45a55716d7bc5af93f34df5b3bdce80f6378db621120f1ef148996ecb800735bbbdc190da63ae834e47cb8f5a26dad5ff51a78edf894103033a183c3348ecdce13303690c1f1953e1f0a911b10d1fdabd8c5997d5ea9587d97c66f6f69d5f4766b9634973b7167f1d759e9682da18d5c2c7327a4cc46a40a6e47c7ed152603f26d907f73734fad6ac2685826614633a5a1af462a99e50456eb11c311b4946337f3f797b3197e2a2d7f9e3810d6c194ecfa67ae3701e36905ee3c361f4282363b67078dba0b60ca780fa2abc34fce26977941350a337d22e62d8da766f08b4d16fb63fbb96798d868cbdb16649e36d6965dff9a6aeb58c068cf935613c9f903dbf357b9bca08e371e2b66133b3b181fd5b5d4119379b215c0d2d675d61dba6b1af1e6d35a16147b75851597f1d1920eb03e01d5c78afa9ab5789c841b342d12f0dde6e6b96b03ead300bee596512f3bcee64844874a1654d5c61c8c419c8f0bd396b9f95b4a7f591f8c80773bc819d8e32b6f68c0efbf4f29d594cf39b49277235d59009f17d529b6e61b04bd8e7a5b1b5c703675d192ec960a73ebcaeb7772f37cb2158d2785dbce7066bdb99e64ed5bf554bb71abadfa30756b4573f5bce52ae2497ace57a562dc31addaa6b4fca05e982cff6e7d41276dd2c13ebb7bb1658aba9e662af8dc6a4eb16d66f57caa0943d55abc96acffa1a8ced8a84fcab4670fb07ad6d0b6376b8b938b6df1b4a33840d8281e68f8016e3599bf3af8eb9a0dad9d5cd58bd7aa3863a2bfe1f5c4f23addf4b5bbd767e3b9df506f260cdf5ca3a80cfcab97598954abfe832c656a1e77b2a630864ac0cdf64294df9a5581eb4d5ecf7e5aa00e5f345770972ba186ba9288f8ad98d53591eafacff5aaf589ece8b97591ffb8f72e1ae1e01abb96b98aa972e9b8af862facef66e3ba2bfba58bb612d6fef0cee3da9e228af9ced37dd6b73696b950bee2cd72ba1c51c6d749de96539705d2c509465aa0d0bb14319d4a5b1ce1430f2a6f7fb4ce3facadad3a4a8ea9ded9721623a18fcf868cb77ed8d6608e5e28e28b24ae7ac0e25674ea179e39c0d6b8d676545f1b173567868a9505b23248529a465dfab945e14f34cf5e4da03ceac44d7153bfc61a75678aed54621dde601b7f52a25b9e3d2058b5959ed89d6a3defad1660c3f5ac7fd53ebad65bb74e8a0d7c5cd7636b6d70ffc6b36d6dc6909ac88d2dd1b5b43f67a67c87cb4858e6cb6bddf7585cdcfb4ed6cf8d49047de5296fe04dcb2bbd8b9dfafc4dc8bccb52bbf6530294cb1b506762956eabcde4ed25aabef42418727b5cc6037b2549ac73d18d3a85d8d84e3e2b9daf9dbdddc2d8255e3dc10a57722c44fbb6369f47d3d6b3d4d8175e37a673b24b7f84f4fe6bb92a0b5e4efc584ee2bff07f188ffa65af8305ca6e7d4d6e3da82abb7af1655f00a607699726bb8e5eea26ac78ad8148c9bd5f18da44113883a9caa3bf0a6a5a79bbae80a6c502bbdad0ed24d8cfb1b93ba77875b903a823d182c24b5371e8d849e835185b531b412da5a0cdd3d6a6344cfc6f1027c17e6dd747ebdecdeb40c8b957867bd1d61938ddc31ab6e21c7c178a03ee80555328c757271385cebb9f7509ad87f302af441dcee0da4ad8835156caf163bd56bcb79a9a2f7c54a67c9978a6d4215311bd9ce86fddbbf3a61b0b7d1ade60075674fcbf58e61141e32896ff7fa0b9254d2d64d1d8e28bc1ad6064ce818c59892b6bfde2944b5246b434db5e06eb7288ae96cb9d71ae741676cfbfd88835e4a98aea5ffc745b92e6e25dbec37592281f566cd7c9342fa2ddb8d0ee61771796515cc38df9b6aa74bb521adb45f5df6c3b4aec494915a8dd77fc883924b3328e870a1ed2603b26ff57b6cde6b37a20e6ccfe6972b1865b3ee5f6ce4995f9ad624cb9552bbe3a8129f180f6705a77c5aef72a0de0e286f11f91881dcb20fa613c7d6bf56bdd168b7abce62de08856c7bdd3065ae74d9b84f6b3de7c390d86a8dd05c4e57e50ad8c8ea6077e1cffae720d0dcba9236d8763f5c1edcb4dd7e87583d5c61dbb41fbfeda5bbaca23db0645b6c44cacbd472907b5b83b659b5342072b1e7ae76e10a53eb3f450392c3adad1b92d2623d71325867dc25251d2e4e72655bfe58cb682c09adefed96896edeb8bb21c5fcf0e9a4ddf8b2be3418d0274f375b50516ecdac88d274d998479b619a0bf3d6e289dd705a0166d7e8aa6df3a35052743069f3d05db6677f50523a10f8cebcf16c87b19ed9dd66d54ed922706d3f92d162939d70de35f81d5737ae652f91de2d5fdce44023296319418dfe00697b39da87e58b83e11c6c4eeeb6258d632b054380da798d6703b43d6cd567d8aa5d53288478d077abfd03e781eb0aad22c6d014775ecca90df25e658c079ae5c356457e8fc6799785adbb99e89d96ba7e1343fde0759e2e6f2ec2b5cd3d8601afdc974f9a7375bd2a0e8d15db98373d576efcde4cb7adc3d55bb1a6cbc992f464efd130be8d6fee7a4ceb83f4ae6e6df95e5ced8d53eb2dcd1d0cc3e56dc2af3bcca717171fbcc301f57d556cecae96edea9ddca694b6dd9332cdcbcdd37f2c4efaf4f4f8f5e6831655c8afdab16fb758e2c80ee07a395137a70706db63aab6865b749d668fee16f2392493bdf6eecb1bedb925bb8178bba8b61d4529c7f10022da9fc9e18329776d844d3de4d1dd8cf0d1c6859fdbce97ec8f6c36af4ca23fcd9e2d7fa89fc637be134bbbe05e9952bd95d1b934d8aa5e3efee0fd764f3edbf4c139371757d6569a85fda2e402549af5c185e6b8ca63e75971af1c66e5c96dbf2b0e73ccdecd2fde99665f407552797143a5eeed425c9d3365fbad0e70c82cca960a1ade9cae2e4feeceafdf9eaff2eb8b8b9bc71b5c7afd6587aafc56fef9a4b48da2d8b234467736baad0f9977b3c622b80eb6ca970db6acb7de7926aeae48b74af0acaaacb6abd693a3f5413b6d80fe5c04133f8af7ca88deb73216b0d792afd33b5b482d4fdf5d8a99786b5a075da6336dec684c59f75b7f8aa27ab4486d44b11071bb24ab932f8d246b681c11e45e7daf9f74ed8f67e49bb4f66804372ac10fa4ba6657eb0687c72cec096d6764c3eb1a5046d2dafe8708da85bd66aaeb16065aabce94b67348cb25d627cbca33358d2fdd7206a9a96837c7711ae5f4f750efa488d18d947599f4dfdd5f3ce7bffe6bd33d7fcbbd60cbbd70cbbd68cbbd78cbbd64cbbd74cbbd6ccb3d31ba5b1474ba9c16df5a98e05b53bbaeb9c3c9cbd661ba3bdbed2736d90f1ecebe7ff3e279053a96c77fe4383684317b20609d0d97a8d29cc27c521db02906f9d01a62d5faf8c6e03bd5f43aa77e8a25d84e797d78c8e1ff5f2d0e0e299d3e29bff9f06fe5c759be1d50f6fdee87884eb7eec0df70146a6fc478f63fba90ed81b14f2de4eef981fa60943d26559c5fb35f146a443cb9d759945b2cbfd574cb0386cb4f23a7e936ae3f3dbefd98d7f00b4bc385a7d697955adf772b7e9de72df1ecf7168c0668ff316d660dfce5270f6ad25e1e5737793e55362db754ef93616e155ede4f29a1b5d698d6bfe2ac035eb2e1c86b05bb8fd62f3fee7cb46d98b07d75db31b4610ed92cf5df32c2619e301cd6f014f25eb1dfa76454fbff1a5f972b4e2b6f62def6fd5a3c7d22bdd77ffac0e95f29e2fc18d9ae9a7f64db3f707ef9d2f5beec45af0e311f8f7e8ffaed8d24f6dd66fe30de8e1d05ecdebdf57d08da76353e1a95c081e375fd717046bcdac9f5fcfaf2f2a6f9a65ff35db17b2ab5fc5844db0fbaea6c50b4dbedad5a6e71b8bbebb616ec4efadc41611b8ca63e616ff3de92ae6e478856257a64b08391594b78b4b1b752df83e3cadb5ee8a9a0f9f485fde91ed5eb3cf9ed6e72fcd8d1c039c5defe64cdb9ff193326af7e2e7606153b7b5662b61a7c8ae2e30487818fd9a0f5a23eed3a18676baf436b73c399fde5ac0fe51bcfccaebfe8d0f91460ef635fbbf097d55d8ff1ad1e8f1e9e1d5eee9f311d95d39b722da32b065bef2976639d2dcfec19da6245bf2bc6bea49623879db789a6c0c227cd17bcf6773e043d229e11812c0feff8a58ee2813534ecf53f0e49641ea6c1cd083767c8ddf34ee540d6d2ff5bb591e036a71ac77e7bb32ff4e55e494b76c834d75ca30c317e101e5a177f6ef2e9cc14831a7e1db0fba59ad23a9dc2df9a8f1a8931afafe0e3a8dc50d89fe67456bd5cec247107b07c9763f016b1dd6e8cdfc18ddb33d9801c23f3a8f773584d548797aee6e8b2e9f0c133f1d694a270990ddf14e029b71cfe6b530de7fea3874e4cf36ad1fae1134017fe27094b8de1956b0bcb8f196df6b0d662f1ca96f13c8f9af1bfaabbcdea7e2ea6172c85ef156bcea4bbda3e1e4751906ce572e6f20a9ab9de8950f634c2e5763be9d473d831125174b0df63e5c529937ad9a118932dbfef0dcb843c06f3fb8d7fbe3cec7efa79f4485c39d183de86a903c79ebf1dbb566c50e0ffc618fd7df5efc7be17793b1840b395e237d27f130fcbe3a2bb184361320fb7858fa2cbee74fa7fefefc416d67aea7fddcb92fb6a134cdb73af7e1e6e38dd5483b8d717087e1e6cce193b6172ff03e0bd32b315f9434e32d43eb37921a2dd439bf5daebb58abefeea8bd393e7278e2cbeab2805b1cbe678c51716ed39f291ad1b6dc7957359ba6d1046bb8376186ef5d97a2b51b9f579e4b34db6dbcd3e3c660bbf7c99c7b1cc5d6522656494fa320b749ca46eeabbca77fd4866599c08a385f0a34c6a29b33cd0ae9f254619ed1a2ffd7227e96f36defdc3bba008131cec3aaec5b2c6113baf24cd13ed66264f44a6539d8491ab63d7959eeb079e8923cf8f3d37cfbc4cc481d489278df054e62679623cd7333a080299e741ecb2462bb244a471908828c875ecfb3aca12e506821673ed055ea4e25cf841e265591ae4f46b5cd592cb467dd512698066309526466c924469ae5f7569c327b0bee1c6fbff91b6f77126f23bb1e8a10d6cb163774753bec58ec76db3ecad00f8b16aea4c4f366e94fb1f69b663e6a5b4977a3a8e8c0c3c8f29a9dc8bfd2457ae526ee8bb29b33649ee87414e6f69e8a6816b8408a3547a49ac4d94b87912c838f694e7273a4ba5f2935845c24d84f4433f094219d27cecc501a697ba01bf2a57663ad3aea7ef645ef730ae318e71a74d823b71da2dfbff46bbbc6517e0c6f98cd4aa071b3006966e5f1d97d1c6798c3d5cfbcad3a75bda5a5746367b74f1edadc5c5d43cb53b66e264c74815640178b753a87a28203423fc8c109f11e2778d109b41a1b2f01d80a1579a6836450c4ea9df1ea9377fdfb173d6c3268d9d0beb82f93d0b15ad2fda3f1aaef236796d9df31666efc7691ac95cfa26f49230ce7365022163633219a94c7b511ee65249e1875e10fb26f5c2387245167bf8b794411887c2cb941fa83c90bea7b516a1f482c4d53e57526124cc2c09a8d9a46e98a94440e9b2448752e491f47921122a484d1eba7990abc4a44a472af17d3fb35e97c82837719a47a96b71c4002212261f7b8189b3308d82ccb8819fe6811bea84df930c8f7383308c629f71b85ee27a59e80732d016a2c2308ba4d022312e0f825bae9fc75160984daaf244ba710015f4432d33a1735cd3954942c7ae1ba63af07c102161fe3973c1c3332fccb2dcf874e2e7aecefdd88834d0216da93ccd75945b34c0c7552e53f8272c36754de42303092fe58a5019924e425fcb38e20de1c37003c90485b2a3f7c2c0cd531d46118497c9d38756224d4592f812529bf23f286e96a3b050662a820cbb79e8874aa77194e5d20d0261986c26a0cb32510c36b4f0a3c33c0d2518a47496b842a7a9e77b591c0629d827123f57819bf8b6a91c1ecda286d0812b4510443af3fcd49379a47c055b4f4213aa20913c077c26a9970491f102d7229b4690a94c4d644dc404a96b4785996917cc24468491c95596e63e0c3e8d12acc500a37eaa892a560e9e8b5122b3248aa95020a524cb32974774ae83282a1463e2c0d32a0d0cf2893c217391f92979409e7bd8af498d4a22cf4d825cc2f60d86412b7e9a65ca585da699b03357d60c43110af0dd689dbab11f18dff04b9ec4912f442c6283a0528f40870de77110cb105d131518b30fd87b2675338c3fc791898e998f79d1412205a662552a44e2ba696298ad4ab1611d2aecd68b84f6738301f91926eda7fce42a0a71490f63946926094bd2d5691426c24fa3584bdb5b286dae435ee49b88b18904e7501a4ff68c081169184b24e4eb30c57f193a1e9eaa2c544469e24ec4ab9817be9ce30a814147da23e90a84e21f2fa447c27b6898314fd21da3094d109bcc8f022ff175aa249e8d9fd3a48fb21225e9d5f88ade045c477b4cd495863655ae334384d421868e5524a1271571d6204409da44519499143b740511d6e30ade816b800ea14a935067915199cf584c92789e4c2385b1999c69034c3acc5cffcbe1b73e3a0847c2e8bb985f9ae75926456644e605f8a901c27215fa9e9ba9205618a605109f043256c28031719ed167a618536cd0035cc70bb1134fe12829192438c85a4490e5599c06f8414620470e891f93551adcd68f63ed1984e726c8d0b8710a7f30014e2b95026b7412c76e14db9c374a63e14924974b815fc42ecda914688a05ae405ba4aad2973e5844be4b06ac85c4a573bc81777466bdd2d0b4af5402cdc03e202bc057e05a738f3c648aeac98c3d1028074a031d00c891715d1fcb7353705da6219d4909f605411e27b83c9425c3f97cd051980c9683dbc5219e810edc625000354601ae03a8f4cd13e4d82961454b42428cb7a412b8215b174ae388da0728634c8f6012661a68d05eeed9b45cc49206b388c67cf04d86a4eef84252cc56a16a061227918c8354792689280e5867cc2d954a717ea544984a5c137d04710232259122a0849a4280ef1915785616a0621cc6990e9314b0c719012d99a401fab62a94a849c622f53cca10541f7c26833c4c0a406461514f88131e2a185d8c6719e89dca2dd5f55c8ba3b104b85d302f45371681b1ec88a8613dbd108dc6dc0080d44707cc11c431182302c9521c1ea341f419f81c029749185212f1531ff776f10e1f3c4f32e9462ad4411ca31942230e2230de103801e63c0114f998968b524c968759cc23d23332f172637c3f4c3306444c073030640f75d890841b1a7026080cbfc55631611230c8cc2874970a1d870af183adc003ec3646362200f5a0fa0416903b065d4524256e1a2a6147463c9406e701f7b4d0ca60343812012521d1c9130011dc369ef4ad0f84b9b2c69fc4e8c584791400749ef54e41a43379a0d208512626e2c12cc6bfc224f663c18b04712233f35501de8987e236988a2d0345999bf710a2fb6da70223406ed72a17a0c8acae8c25202ac520554cf882e8273274f1088130523fc0659067040548421b17b13d4560cd33415033b834194f60183ce9509a484d6e2422d030f16dd4f7228a57601fc0246c9c700127a486e512504897c06b118051c07128310640d686d91081a5cc88701beb0846a37c23659c49e49611ee43989af4e166f4976a949fa16fa2aa24f9c29390a00f610a4840121487e7a73006cf559035355c38aa25d5fefc54c5183530057bc0ecc86f3c0c09f29419ad3c1916908eb5097c0178905018dc4041523c0f308c9911ca3752d9b29b87a5000f709720c47a221508e0111120ae00b88286c5a08707aae1de5281cbda85812599cd2751768cb648b6dcd8c3b6236c021012d2c5f4312e3492199c11ad02b41828ce464c4963029f015f7210c466621e68868609d6098433c85de0953f008e14dfcea81b128145e813af2da18490b81603f94f84dd1140c9f16c1e1842664026f873c2b4891d120c8931f60c4f464c8c4f59df37b4423f126ff79122b0a70c31dff320d312c68722094142c26e85b1404bebaeb26c2576191cbc810c33d7a4a021ccc1f3bc48e258482101d8609e5208034983a9c004ada243dc5901622245664c3cc862880a7600810bc85d935ce09610a9288f25492abc234d30409015aa99410f3c370aa1113ee272c14b0c189865800c2ea29aeafb80027c05ee92c636da6a37b75c13d84d12181a01c0073c35ee8557e4021d2b8c9bc1e55479614ccc53d9482b49b6456c8506094b6522a92478f4a39304a3d19611b8001b318b8012505e8063bb580fba078f3deb2246281808b286e7e06901ea90a0bb751ff4ee073014d7f748d18d351ec5df456e80f07149289e4b08c2872c038c08bc982d5409cecac4113abe94103725598651c0281112621262e771089326c1c01381408c5904d8ab06297cfc93380d1377d146085d88727001c286465035264b402650fb06d004ed024bfc8c25cfcc110381dd616f111517a29e25e531489a1b0520c1002c2edb71c40ab8350423a219a0991a015bc0756c890682470e0285242a93d984181f424a1202640c70e7c03b699747de00dd103e7487daba868aa74940330434b2372820f24243dc819010bf50304e9d794c13c64f1f8a595240c16361ef71186aa5e10d9e5045dc4df907d190af701dc48bec3863139026424cb0a120b1d57dd8115c00124e6904b5a30ad801504c628509b8b1c5e624ccf1234d50c3263038020f6929d60401802813a26295290f1bca5d031731646b113e6cb05c688a4d8e08c839990ae840ef404e48f26af0391fd8a433208b6095802130dc22ad032222381f58873922781bed63a4498107d2438e692795e7f0b54803b69e14f863667d8c750ad4482e929286481b4be105f49fb0a8915a80248586c90324021a6a4464390f490e6411e70915f0017bc45810b54b58240a0117906aa42dc999e163b14bec48d05dc0c00bef232afb918d02364c404608382ec492a840ee0a4a92dd47e03106075bd512740304fdc2bd1245ee00f7ce6155681c442292c12a498cc9ca69108a8978c8bd6929b1797304e5807fba22c1e148e79404024800286b68d083b4972c83e412de066b032fa09bda8080603505302a0182c51e4bf7009ad4b2d604c1532d447386d113d6b595024929e1cbe3ff992c442cb4aeeb938653476006246b192c380a4292ad1cc2463867fd88dc0789f98c923080fd01e9582b9493a21d3802e49203da9000aed35c0083f551277e0228a054cb22e282e300c6beb46d6b12363f0b5d582c5991b178014a903ca464c2994d4e7057178a10d980413e972b6d709d943e4836752c298a40dcc93da95410ffb16ede766d9922036bb14714ad7cd6aca01f45784c899df410e6362494b17aacb673df4fc2744a43b76c8778d0f75faa8e7ef39d1177d82233f6519e836e316dd343ed7474f859d13ec11af93ac3c7feb66639c0fb5a4d7b7adbbf8cfa209b29bb79f0573ddb6f37eb30ad2f6db69aab3e08598a7be33721476adf5f6d6ff869d7d247d6baeef89db94dfb7deef641a5ce8715372c6f7daaa2f8e772f8e772f8e772f8e772f8e772f8c7288763c75a5a57c3a012320d49fa492a46b244150b1ca1bc185bff828486a1f2c825f040aa2664bb89a0fe7d7b31cdb5e97120b2ccfa1ae9238905984135039e2d24c558caa5e4cc01752f6000068de743d5a9f05205a73bdc9602a76f9dc45a6c206d252849497a932c2f6001490b25228aa290f89cb4344cec1a7caa7dbb0f01f4a1610a8f946130338a523605a34e44a2c4504462ebf1a0af56142c410b1c059a8fd320c7041c95688b4280e747542384afa90408cfaa31e03e053d34069dc73a18986651c17a11c52534042e5818bb43318d5219ee1346b9ef93b05af0a206c3e4ed0604da22d7c5b0348533b27d5617b069f26d703e49056fe136cc84628c47b260d35637a72e4a0580d20d784028d2f665cf901391ddd81220c99d670b66b6daa55def7312f1df2b89f8fda60f1f2d71f89c32fcbe52865fbff87f347265dd24920000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "aggregator", + "source": "0x1f8b08000000000002ffa557db6e1b37107df7570cf2d0c88022236951144ed342a8ed34401b07b6933c5ad4eeac447877b921b9969522ffde3324f722db4a2ff19b96e4cc9933672e3e3a3aa2abb5765499bc2d991a6b6e75ce8e544df3776fa83096d46a6579a5bc5ae282ae3dafd83af26be54995a5d990ca73edb5a9a7074730e7daa5b72a0b1f602627cb2ad7f56a26a7e1c6093bbdaac92ab9a36074f2e1f9613879f5d85f38992710c09301db92c931d7a480941a65b92cf5e731c088cfb54d63ac77fb21ee2004154c85b6ced32d6294638146a6e84980ffb592e83958f2f2c0080b784faee14c173a0b810df1c2f9e456952d1f53fbfcc54f3154a24bdc6e4bdcbde5722b97249645b8b8206f462e6731475a2e646b560d9986237dc9d666adb3b55c60e5600c8c20359c3899d19b2220b5ecdad28770121f64106801f8309d4c2d4a5d69bfa089a97937f2a70ee47099bb43492cb1b560033e219abccd380f5c76cc10f11de28b1c2f25090321e0ff5142525ac63c14d6548f330100770dd70ef4eda7a336f5b30764f890f090440a6e244cf931f809ca4dc6e4c45b8da240523ae9dce7746570be642987cf6ccde304258389a6af1024f82687919df4e822409e54cab3d50ac1b03bdc8d001eff89a864aba72b11d5ba160c6d513bb7a6bc4520a92022fbe2c4c1a45af180103dc25bb39d74b93b89bf5d086e87c7d219ca4a56b5186c9bce14e9826aced83965b783ddb7c673ac5db8b51c734899a961becda4fc744d8ba11b2ca44d0dc1e641b43535ad6d8c8b78e90caf183adfee00db30fc43b448ea4d8db46da23fa82f320a6b021537602f5b2b1d2b9a7e6bade5da97db29fd89ea814b168c5d332c3410ac2cae4b41641260d04d809fea6726908231be535553f29456c80ef297eef57450f7f0cc989fe7bf84de73c35bfa2b9dca9f3aa6f974f47b1975d37dfad21b1b33ba515bd1cc8abd97bca841460bb83a3e560bda68bf36ad874f9b6726e841a450aa2dbe0683e9f6a25774080f9f0bc7a8902b43e8241a7c4b4a631da002ab294996a48db70e454761b244724f439ab4e7aa231fe90e05189bbba3b6d69fa45f624ad51ecd1657965b9aac014178043987687fda1e077b8bf87d315c779d4358765ed5191e2df06af74a1d3108056300834e2f0dad916ded626418408832df6ddbbfd247cca5e9787648d09625ecdee6531787440376148a5146ae88e85927a2aef6e877b311194fc969c0a63a8c0e2ada3a4c320756c10bc6626ae5960be45b6eeea00acaaf5acc38f484d6a66a5b1abf1ed8927c4652305a8331782cdb5c24ed7a115f899e00170cc61e11945a1a73e3a8d4373ca8381d8d86f848c0d1e9ae68f107f70fbecda24a469abee00a2c89363fb56841d2d3900e490d825e712d8d2ea9efa146421d86f803296b953aa4427bcb658c07f603f44c46483eee3c674ada1128ea870d4641833c68119764b1ef5a8017edf68fc1de2512b518be5c17d1deac42535984f715a80512af74399a0df3fc56c79c424658c4beba3c8583f7e11e32898c67a61531e5e93d3d09fbc4936124c020cfb00a751b824c192313a434daf7d3bd9fa9ae920aed27d9ec202d92aaf1c65d175655bc31f6060d659cfb0349a6d8f9b8e6fade141bee4dc0080613c90e9a656dd5861a3b1ced2c1394888b1d2055031a151fce82fd403f9dce5fbfbe387d3dbf3abfb83eff707a71f6c7f947e8eac71fe8153d7ff98d48da3a4f50a6a4677c7f0bf8aff8debf3dd905f8e23ec011a682956fbb7edeafba70f66f9cbe3dbfbabe7cffeeddf9c5d5e949e7edfbe4ed61b5cad809fd18b94b53a62f5b0805c277d3fe2014ee83af61abec0a9ac25cea43bb604402e575ab27df6598cc52d4b1b64651f7b98fe134edb2d499f4c0e860325c3da6ef8608d22e35823f5a95c2cbfb98e6b28fefd9c6e7615da3d1fadc0f4731b5036de8d2e1ff801d7c553b66794ae39d7894f9612fdebb150f885646b00c1adc074676f0ff03a6cb55b7318cc7b46c9b03a83d8ec36efbf5348ddc8df6cab10ce27f6dd22ab1f6f9c887ac6e8ff4e77d38ba0d760c6584e4e5c19783bf0114b12ed81e0f0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "aggregator_factory", + "source": "0x1f8b08000000000002ff9d567f6fdb3610fd3f9fe28a018304a8f6320cc3a036dd82b6c9f64f0324e98a6118245a3a5b4465d225a9385e91efbe3b52d62f3b6957038961897c77f7debb23e7f339dc56d2c25a974d8db031fa4e966861a91b550a27b5b2e0341406854310ab95c19570da58900a5c856077d6e17a76329fcff90fdea0952b05c6ef150419fd791afb3767c73efecd8534d625b0454055e8c688157a6c0a5aa2e1f8167100a997909f77a9e4948a87c9fbf4666b7d87799fd53516a2ae0954388f7c27eac6e308b51b54058550b040200a94934b89259769e90da7b4d879aca812aaac31818fb88b6123a499c1ef7a4bb8c423ffdca3ac5021258de5af705369e32898dda249612b5d1532eeabb81005fddfe5cfba9c8fbc048a20281fd3142e14d386e2142959c1af0d5ae2b0a0f22875bd460f260a2256710a256c2b59545068e58454bc23df50494eaf33271635e64085d7e50c3e5418345e86f014dd6349259d14b5fc174b2f5aff3b70e05166f0c77a43451370bd4bc2b37ea597d2836955ef3aa6389946499226accf03d5393cf79510ba5a7144aeda6063b157b84b969e1ad852d8917141e17620740215ce6dc54875cd51898d40ab361eae6d8492441f5110e50131ebb1a2d92ccee359e8a3014e5f5550802bfb44a5916d9256033682870f75b2bc947ec9890f481d793da0f775bfb75c846d838cfbea03422dd7d2b5bcb087c7add3f98aaaf442b08f9863daa3039d05196be8a009e30359aa3de75402f96cc4f6d8454034186e2e76a3083e18342199926c53783a02db64c62b7e305c644169a8b55a21efe0a009a5edb16ca59bbae4bea051e68cdef53ab23b6627edb4131ba76db634628d5b6d3ea6698f9fedb3fd7c02f4e192ac2bd3148dd1e6c549f7f00022ccc34c9425f521c9f262b2d4a3f471d2b457e3e852df0869faf906eb6502b7fceba18dbf240e99c0690aec3b2bdbc88f2dd29b304d07466e613b6d076c0fb453dac1a659d492daa7841d92237897373ebc3dbfbcbc7e7b797e7b759d5d9cbfa6afbfb27757b7d9c5d5fb776f52687efe09cee07410e86638cbbcd67678ca04ec76e01df896dac6723bb522f16734c9d2c0d7cb568c049ad31f7f7995f8c50f7d0eafc9acdefd8b300fa8acb2f16dd03239eb97ee53f4f364cfca92183a48da73544481ff18968d1af47476e8b4682a117ccf27299a7850ded45d6425fa322e9b6c9e82c52f3a881a1d1cf1f9d9117afbb847a86d8d493c4471b7eea18fc32770e6f43493e448f036bba124239e8fcd863040298659d67a6b795ce17d8158b26e74a4f9c1973f2ac5c114cfa47268a82122bf33f55e89d3012b34013f3592787f92a9a0c7b368441dde4bebeccb837dafa2dfa64225e38d3c6e8864ed327f238b9e6cb05e87b86db127055f6842df66ab5a2f680eac1bf75509f60a9334c363f03046128e9f78aaae3f2979b837c620df0f483012a5e0890445adf908e49e0abaed4fd670d36936251f08fbebe7b2718dc1707e3d2f2abad0c08a4da1d8245d403a94a8afe98ec6d7bdd055fe72400f870e39ee8ca83df9ba866ccbfa668b5042573c6ece9959b8d8330bd10ff7a7717753e37adb4babb49e0ea5b7b36f9804016fa0db97bc3fd24bd155ed0e3d335fd49b1822171dd6fe3861ad4dbffb9b9add653c84ff99eaf1e4d0a4ae3019effdaae9f9bfe66f37941e4efe035b4d5624260d0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "optional_aggregator", + "source": "0x1f8b08000000000002ffe55a6d6fdb3610fe9e5fc1a04060618a63bb6bb1ca4db160ed8a025b53a4edfaa1181459a21d2db26850545e5af8bfef4891144551b19c264b8b0505622be4bd3d77cf1da91e1c1ca00f676981962429338c56945ca4092e5094a3346798cea318234650b45850bc8818168f17981608a7ec0c537491463b072046ad20140d56118db20c67e9976896610f11b10ce5842ea34c4b18ee48add18a91229cd368892f093d0f02b26229c9a32c34847edd41f0531618152c09024c29a1d3e6b36a5b107c7d8fb3b98f8ec5d7f57447af6a29aae587e029fcba9ef659ac551ce9474acd9ca6384fda9b6392e672898839060dc207141311702aa29f94314ed0ec1a9dd6a24f018d849b54fde14d15be53342754c98b495ea405c3797c3d14cff803865e1dbd7e7df2eaf5d187e393f0f8af5727bfff71fc2940e5d39fd1211a4f3b167e7cfbb2b972a2ed3e409f68b45a01ea1125251825a1e41972165d40cc505c168c2c11b980dcc9c825cad265ca86e82d81d4616711d392fe8425b0a980ac408c46292bd080fb293ea319175f783e2a885672116525464b5080661895e3c92f432dad8e8a4ee1a3776f44e626c94151ce406ccc4420298e121ffdc3c564e9396e44ba1258305ac262295218094e0140550ef21f614b208cf0f543e1abf9702d73a2cc518e2f43e9c8c058e7055a4d2dbcfdc45039f21b4f85acfad1dad60bee6bbdf27780f696a576cf377df10c9d515160ca76076d23d0f343a4840d8501685fa134142bbca69122d1a13e4b16927948a37c8107aedcf4f42e6faa3f3604433a36bfff549934b5fd06c8bfd16fed6a43a1bfd1195d3f5e6f27f63b9c10b135cc97a67b95d186cd0d306c293ce11db1d8284cd8640b83ca62945cb7e5297186a00cd745f455463bf4559984685d07a2e13a2fe8f7550d72cae01cc5a234d72d079a93d118e09fdd5a7ce00f76a66529324af3052232aa8d4a3f96fda6660267d183a8778dce36ac93a6ee0d52daf35ad80bdf14f196e4fbab0e313a9a52868cde0bdf0ecf6f002ae36d83130b52fdd20c0bc48b45792c85afca5996c683aa3b798a914c26f251d3a8006248322f7005c7c89579bbdb3769ebc6edaef0a92e5e90251eb41b34b452e1bb311b8864a4a0a3f2c7b3d8a71158253d27391e580bd7358d229c15f8ae3c71e9721a255c6e750aafdbcc56d55ca62c86d9021a24bbc438b73015fd2f6fe51f4a97ab0c2f315419b7a33053a622532176e018cb24a7b64363f380223e4e462e41065756da42b035fc822909816937ec8026e75a2129de9bde4f986038c18c01a968b9c04ed25132175fba8a13e612eedab06e57fd7cee156e5e936911368d7746d0ae556905232a01b701c15933b544a35cb711da09dd9cc29869010461dd089b2f22bf9fe6294b2358e2c4af054c5748b4a1db802536b5fb2e2f1323470e352de02b31bd0e843887a2a133745c5c359c1d9aac145443c59ebb908c75b2d30f3a85abb9fcb03ddc1a2b9513f334cbba3dd08d5b7e3055d9334d3b0d1ca0432adc4f1a74e5f15d67421dddde69e0889d910312f7f6a28e91ce12d3c8cc5bb5e56d73c224727712ba32e365e54de1e2dd56635339eec4ec362cbbd7876655c01d6b6fc3b12d710ac82da95547ce2a1c5703ab0ed2aca43095f3a3bb31539ba7849e1e3a63edac0ad70c86cc445165b3d685d3d0d4971e5586ce089cf62e1b6cb9812ed54e15026b8cf51c65a0968a39b127016ab01cdc771780dd90430f8d961b2115b71b88cd098d639f1397fe0c74942405ef3f0e1880c8c05e260fa2f82ac638e15f78c73915c24e5b1cd531dc76f694ce8b0dce58ca35602ee1fdde8671c2a6aece19a582210493b61c53ec3ae2ee768df09d14e86e987d6c6a979b3c50d8edd061496b2891d78c722ad988ff82f00f33ccef49ebe38079ee2a67ff27e8b9bb0f0ebde3e2b007f427925aeb13a0b83ce237e4bd0691ae633140dd876cff037c37caebc6553867acbc3da06e23dc40baae3dbd1e0852002f758e8ffc1d4c71f3b1a2056caf837817cafc06ce88ceb6089b2e3efa0cd7856c10c531bc59e15df457eb1595f7b71e061c62437377808a749137ef7a5d27027db86a9c0ae49f61a6aaa479f2f5923307f925e5e3918fe611248a3979c94bfa5dc7086e44c04723533cef2d820e4c96194fac9ba4d68ac70ec522a74d55e810dea93db11472466b2b1cf595678bd3075fc7f1d69af5e0701c9f1b740419bda2f0d2915ee064685db5d9263acceb13e65bb974df904c46770bc978d489c92c8acf77b70fedee9dc5b6655be715ce1d91821a90bf337270babd590c67fe6f93329e743355e709cb06716281e8d43419b7eced54649cbdede218d7d9b5654a3cfa8caf5638663801ccd2aca47042e2a36dc8ff3b036c1b5d8d26a3d1686c64101ca3ac443791572fe9ee37996e86ef490d9f59dfc7d2b4dd0dacf5f43e6aaf67a027bd035de6c9c3477a347287faa3326e7713618f36b5886ac943e16126fe779ff492497ee49cff01f2dd116547ba3bc3fcec99f97ef4de0b62bdf32f737147f819280000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "coin", + "source": "0x1f8b08000000000002ffed3d6b53db48b6dfe7577472ab587bae6330848498905a06c80c75279002527b776f6dc9c26e63556cc9579243188affbee79c7ea8d5ea966d70326492a9a92448dda74f9ff7a35bacafafb38b5194b14932988d399ba6c9a768c033968f381b26b37810e65112c33f5396df4c79160e393b48a2386bff24a784d33cc982611a4ef875927eec76fbf09addfec4e0bf59c659960fbadd2c4fa3f86ab7fc90a769925acf9229aed7edde9ef3f1b0c54ee9c73b6b50165dc51c66eaa7151cc27e1f90cf77fd23c442e13808afae527e15e6496aad1a8ef7f5abbb1a48d94d96f349100e0629cf329ed943c55e3ff138d70b1ce14fbf85f160ccef2adba0f148ec208a87897c3d4c231e0f1c1ba50748f2ddda71573ce659944968ebebf22f76843c0066caa7f2ef75b62f76c3922193b464d7a3a83f62202b80ea80e5098be2288fc271f40760ce88eb3d148d0b40bdc70609cfe2bfe56c12e6300bc569c0a7e3e486a70853c80eadd64fe22c674707a7c727c1f1c9dbd360fff0f0ece8fc3c78777cfe6effe2e0b72e9bbd78cef65867b740cf5808100ac7290f0737064240814c22e559e4f7b3a3fdc37f06ef3ffcf2fbf1f96f47876a954df72aa3907673c979bccc3227a717d525b68c25f62571d516601db1ec39481dac0bf2178178a5b014ea60815165bdf38bd3b323ffbe9e3b16959b32d630975e683de706b78db54e929cf138995d8d884c190a4e3f994cc73ce72c4fc3380bfba86d26fce393f30f6fdf1e1f1c1f9d5c04bfecffbe7f7270a460bf30601f84710ce0c15ee56972c3e2247ef6074f13b19009f0f0e8fce2ecc3c1c5f1e94970fa16903ef9d7d1d9697071fa3f47270af04b13300a73382122f5c522979c216c132ac1205aecbf3bfd7072a120bdb220113d514e8769f2078fdbc2801a804133922cca81fe40f2eb281f0dd2f0ba4491b767a7ff2a50ed6c5489309b5ea5e18093a6e5491e8e59369b4ec737a86d9af0836838043ec3ae22e4c004fe45f6bd5de5ee87f7ef7fff67f0e1fdaf67fb8782cdf8e8f4eca26073a753da28ec11bc4508263a9df5f319988fe2edbb1008aa5f80c44de135ac0e4e41eacf7a9e7c24dd6261ac4ccedf8048b32c4f063702410180c8f77a3a0ae33c993025a06f48753222b5703e5ada051f251d80406831a47983396d3df853389e71da5c8b9edd191ac346c978206c17ec70cafbd130ea4b80e817016b340659d28f426424d97b008f265e9b57f4b51ced3ce0f8914f73da2dcb800863a44996ccd23e720f142643328d933e98999c7888a4ad508124cb438a8ffcc6200462da1594d3c35afaad10cc2ebb4c9271f1548a65407bc9baa6d77a7d28ded1230390125ee79c7fc897e6a43b53463e4793d98401e02cba048a107585149b02fa6eff7f830f9dcd1de014fc89f6f4f9c6e6cee6d68b17af36375e6ded3c7fb105ff6fbd7cfe62e3e5f3adcecb173b9b9dcef3eded92b0c6c3e86a968ae0261f8539c20623321691cf251f859fa284d82d94c9c4851d0f457c14f1f140c304a9ca78de1223fb60cd813719b13a1c8f936be132b596266c1aa6f082831b0971b36585cc4aac3ea77505d20ede12fc4082ce4c2e1ad43d8658229d880d8797c92c77ca719b914881218a698b721f448791e00828a554cf8a38e21a0b49630c71499789a0b0db3da7bf5b25a53dbf995c266373dd16c41d33d8ea0d223e4a527058ec134f33dc901c8660db25306f0177fe3944dab6d839ac124ed1401c26e3719822cbce7f3d2c6664b4683d6227b3c9a5b0030320de241c17f1d015078dcee9e7b4307186817562150d594f81ea31feff3304d9dbecb5609f97e1388cc124c06abded8ded9eb4e4b0fd99943c0512bd48944dc7e18dc02514586034b1ddc6990d04c0d6c177b09f7f669bbd66dbd073b13a28d44ecb633ac96a6a3141c3c53f63d000d819f42339edcaf8f975358cae2a3dd902c627518e56f37a042e204b265c395f32b7b42c2c5fb8c928c62dc64e41342d1389de204da6ad8a67100bb8adfd324869778d4674e243aa64faee89d541380d2f23f207298849940a4e4f220c52444a66acf80e1e17333c5ad94fa6371a8905d61aa69c17d13ecd2b2dfa96deaf7cd9cb591a3bb6f80b3cbeef5a2affb93043a53e59d84a2ef47e76398e32f0dce571d27d803b10f9c018d6114618a31a100d0ccba4ed17784f1150bf2172b4261bcecc5c2210c00301bc6167706c4d64bd4d435aeccc13d241f82bcd036bb20dacb9ab414c924f3cc8137b44abec736e2b3e6608f682b33b09c960215513848142a3d4471f07ff8218267ed61f611878054ba631d935f28810d97069e569318aa47039c523b09660dbe89124b01212ed9ecd28415099a82bb0968455c87b49db52dc122eb4099a4c329859c45825fd210db2680b01cdda04dcf36502a9f97570354ec00b04f0e4b589c59bc6df6da0ed329c628d9f2b0bc87d5acc53f4fe95e7e85c8180949965d5e2001bf1f1d4182242a89443701f8b082a2cea074a1f0577902da8ca8a6a4538da6876f5b4db128174310450d7ff96359264684228366d8c930659add858d3ef9ab6f49e195b309d6f720df221526259221b18b97145eee454033302a0f7d714299496af224b345c0189d293867e80ff4559a0765364edf632cd56690e95d9ba5db0460155f41adefcdd986850b22488af8bb443afaa966d235fdb9445f9e8da03cb8d351b11af5128619572cae515826853371205afc018589622d45e839214a90841a308d540dc2789cdf91be8996245b81b7514306c29eff3e813af139379dc34573065c7bfbf0a674c10b5d28eb1b3196e5790c501653297c3e4b23423a10d14ab32b43027dab8701de6d9c35205638b02d29fb249b1742d831e9078ac38e97848c261905b215026f86ce78b11592d5847e6b05c2daa263aa6bc90432ea32f731f2c4dbca9dd083ab6497873a9023ff4fb0f92208252986d6071437553c0d06002d330d76b9a91a4f4fcff00a6265895ed7f949b6b315532eb871916a9c281487454ff8415fd9376091cee4fef4c21223658c663b7328d5c889e65f56810858673aa5a84b64a309afafd1de318b0de3a2740e198378cb165f910f17fbf120fad5302c27ac8921ee5814023958d944a7ec673d60be0879e11214fd1d1cb4642caa93c2b22e39e95df686e3be20d186948c382553fc404825fdf32626073ae1053b1fc56554fa5fedc01fb8aae9419cfc8016fd8464b8526510c93a34110a657332c81352aa5f5665356ef7c9ae38e98bfb206d5883ca25327f64e51cf66970da5868a6e2027685b9ac6fc3bdb9e997249ca4a6e5214fb30709541c112428b02b632c1d569a24e1f0450ec450dc3688c20232afe8be4117e8462a92843150d2336e49c041fdcb2866bb69d40186995cb1bc2d488b2bb5d51f066cf9e49e78684a062bc7c5104e4d0a5c1cde242e5345e2b5e802476699f337c6bf96b3de4de24a1efa3972d671e81c5d48fd154910aa55a8a12d0065b5a6d3367471e9056322a11df8f114a79e43a7b7b6cc35615912b16226ca93729a928daec79f4ba3ed4ddad82cb93800a497be0d1d1c5e50db21ac5526d113b0aaccd040866354c102dcda66afd43961f752caac329aa59e253480ca2295480f2a2924e350fac3762fe43ad1347b04470e765072da7cd6f7e8154b344eed5649c5f4a049cfb7b62305e68bd731350e6984419a60ec180c7603e1bb219eb415d1ef440668a2658b95556c6c116c072c7ad8c4fa9ae7dabad479173b33b3746139e5e718face39f2e19a6863a1a763410cf04785a094ab4e331dacbf158d86a99caf7684c4f448bca373cc32321d4d7ed897aa8e8cfeb75b204cc0bbe81e6976afa81923c45ed7a0aaa60b4f48bb09cf269e1bad04461a32ebed22043dbfb88a28de100fb7519b93c4a10e09a86ace38f815bb1fcb110c5407a66551a6594bb571b08d59d5ca856298e8461831c4cd0cb70ff0647283068615f231585d7248dae228ce5650f9e8e83895801c6438ee7c87da40d358824e8437266459ca6ab6bda2474d82143a6dfecc9c93534721d1731e32303dc9ef9c33309ba18e90e65bd5446dae1218654a78d5f9adc0168df2224afa3325554b16a1e5469e221da868f44269c0a9ddeaa6e51e173b0ef9d8ab311144140d498995b8517e90d6d58b49a82c262dd23c20a14108aa72acda9fa88ca76922bf64915ef83b5edb45a39fda04f0c188d2aec9be03992fa4304689bc9be16d6f113986c1cd976135db608824a61436ec2e84239a24f4f97845a1c061160a3020854e605c7a088af56301d17207c1a53bbcd3c518101f9cc419476bdbbf7a57d68804dec9c4140d5e6f88f2b7ae20271520bba60b0a16cd6ef733a64816536475f2c841cb0388421773b67830fed172d1afdcc3d1ed6f48674f74fda4b4af4d51375bb4c763c54b3c17653b50c932308e129e89fa58e1376a8afb2bb91f32b28943eabb2556de589b318001b2b6b7bc3b3397f390162a6fec85d3bbbf357130e50f3107916f36b61ffa96e7005dd8dd2915fa480ea01e2a90488cbd655d6a98b0991751c4e821116011a9310135ef23e70509663d551d524a3c382f82c328e32c9b34c2adbd2901b58e06fe92226cffbed665b5a288a38cb677831ceb46da96054b569a367d678a4a2a7bce099a779478fdc677426092093a4813a78539cfc8200a0e12d20b01a57681f1c7186bac6a905241358adb152d1169394a70db534e22d0bd9963842500961cfb10f855d84628d1ea4db5a5f653dc6e45ff5309d5d93ae3f7881d26ce956d5037e671c5efc6883f6db2b150e0c854ab261f14c417ecc1c22c92b89d5d7e3dfbd83ae47193cb90b38357dfdf9c52979e12210401a755743e615a9e4c9942a1e966326d92f3d917a507aa675a23c524a17c607658903ae973b5f4edf0faebba10e4eb72ca9840842b5c7ac96985952ba731c1a535aadc960d2c72bddb700b646c0e9b54fc6e165c5653c7d8715aeeca93853729dc890421c1864a29781518b6c58609d1ffccb20cb03d5ba836216d49130a112a92c35c4357c59b7cd6613757a0017a1e43d833677010803a09e38c52f9e547bde548c3354484df6144e0c6075a527054527ecd683ff3601d9997eb5871750e9ca9852a910227b281c34aa710fec7e965b483efe1b2da43323d454c7b1aa153d7ceb7412aeee8bac14f816d786dbaaadd4754817ea8330abded8f43646be8bbe2760b950dfd3a08d5dedaaabe1fdd7ff413a9307988affbbe60aa946281842e52d496fe4728670a9c6486da5e4fe4eb9defd3dbc41e3f4819e7b843ecf2cb7db552890bdf061b1ebafa6396a6796941546b060ef86e9a1284c94379928b9b01d6bf93a93461dec9878188c1c979b343fcad02a379dfce0caf79e1cf0e6ba562292e3acb52aa116f57e7ddbcfc8cba928ddc33f7b645bf3a4e7a9ffa99aaccb60e27c47489d278bb4b617acad821c28ba1a28e0ca8eb6ace467234f7c7d2cf35c976a5015418028cc571c068dabd6d82bf5753cc07beb2897db4828eecbfe139dbf2833abc22b8a3680cee2c0a1719bc440d341a70512a02a63ea9d998b512bb3603f3acc2bea305b06a6b6c56cd9ad3246e56b4ab7da7b7a1059e41885bb9a288b89bdb2ecc9385245e1d8ecdda82aa81d2bd5b4babc2ff03fe542fc954fd907a76341d4ca32225cd5dd32825bbca216c650334c66992a0743548bf25504bcb2c38c2668483784f010afb70f5d34b04af6b0e86af9d3283bf0f08fc47b51a00105d85d3f21c46d332bd077208ee32cb4d5a3eec2050cdf3889b0025883aeb839361f5d759ec740b73889e5cb636d747de324ba0ae06e6d2caa6ed2851ff93bc8c16f8a4b6b73871e183576c7a55bef863480d28df01a19734df072d71eecdb8d55e01bc2b46082f316f16b2b289e1a78d6eed8bf3f531eaad90316c2f4eeaaafc18fa50192a4b6a26aac5636f32a5e2c178d642173960f771a974f712e23923e6dd60f7c77688f7057a5ca042e9cc4328c0643a9ddffb7ce75b402da70b40c256a69fd809ae93c31f7f273392614f2a3d354437aaa52360ff15aa6565209ead7bbf7270a4b4e7e62938f1a7bf5b1eb72276097e78a4f2605e62dd6d9911d0a231a7211d9d89023f7cd0259ba12aeacc41d79e6694d2358cd7b1c81b7c0afd92a8177dcf655fb70bb8e7298a40967e5d99a88656194f81ac96dd3e1f02406b0f3bf6f7ceeb44cce8b679b4d8f5c41030f8fe1c25f5581aa9527f3e552a223eba0fe74674d927db75a15915aa0b2066de30d9896601838d72de996acb9ebdad0ed94886e01eed5398e32b6f2eedd9ed3839865a2fbbbc32a7597d667afd794b05bf768d37476ca3febb35b0bd8deea969ca33c3c96a9e6cfd69daa35d9b23620349bf278e986ab9946173acdd13858f4673b8ef5e4e5487b826ae56e3aa6e80b7ef624b49f5bae74bcc624763636e6d8c342a7bc065017b8aadc685554afc5b69d8453b7bb0d18a63ee306b701d7e70e8a38a6565452cddf7e08d3895a2f5c24366b6c2e2a74369a9eb3ca8d352ab309f02df6d27545025864dd8db817faaf00fe4ee910bbf45c6b7f09d715c4890cd77e38b1d53bb1d5c47a8542a8a34a7382bd39f6dae8a85173dd29fb96a95e8159f458a94761213b0fb4909bf727f3d6834de382266f417c9e7f03c66e13f549f647f1897da0f8df7222ff0c9d0e90aa002f08cd52de08c1dce3798401dd25f80c22bbd1291b493af10fa38d6f7a342c83c88c0ff6545bab0f09307ddfe5f98231e60a2b339d6a1ceab907f6edb9d0f9b2f4026469dbe77049a29441fbe169bf054f2bab2a2b4b76be89c4e2af10dc523d505f871767aa8bc64bbdf23d62fdfa6212fed5257489d88cd6db7870fad931b7597c29c11790624e5917492d80f82b4f50b854deb9b5bc6a7e75cd5c2ad67a598db5485b55f313e252baf0bcb4929af1d75c15f32bead752b925348ed5a85c7143bc61a9daa337e8b5c65b1de7f861aa5769aa4b9325896966e5f48c820a266cbbbe04a7450e4dd6cb6db7ad96e3f592347873db32cbcb7810e7d802fefdea0044b0cd6f4f79b4da38be4669a5ae4dc7270e9eb83e6269ba23471c7befcef20201f67c743a8f9347c59902e2069965bb254f5f1011dfe2286dcaab343852a5131d9ff1a7412ea9517756eb6dae0a88fee0717168bce676fdfd8f63ae39ce63ce33b335c7b6576467f5096757337d154171e9621af3b9eaca7726ac796bc51eade21f45b3d668819411c4563546effbcf336b4e019d1f4b6e432cb9ef13677dae742191fe6e04f97ee235af205d2cb9b190e07f4f82a8ae79fc30adab37adf793e6e50cf223924fffa1452a6f154d85b9b7be96636ccd0709feacf39f9dc54ebb54ae2f3d56dec9af7bac96713fb8b3b0e5af6b24b658823727a457d8dc5aca2fa8d13a2390bffda3941945e3ac516927ca65bf4677b1c692ac11124bd36ceeae1b8ef6696d41ef2b6ed91cff90dbce85fa59d79d4b75deca7de7fb7e0d0abf5623a699f7d94dabddf61c0758f4d34e561160ee656970dc06c9e77e537a7bee6813f8abed0deff9869a6fb4cb228fd151585aaae76bfea671a4c0d601fcacda700c55ff1f1ab06a0d982b33ea9323cbc859671911ee7c3999426ff28b47a6d487123dae6499cf237a7f03985388beb450aab8e8af6493ab1f77abdae527dfbb61d6f3ad6f809a65075b801e1c9ec8b5be1f05c2af078bdfed7bcdd52787a47872e3fb75fab3d7f6a74d1fad02ae449f96542793aa1f2adf4875feeabf3523c9b03a210bca7de983ae23ae7f510e085618c5df20a71ec2a8656d8d1903defdf41f65164a097d820000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "aptos_coin", + "source": "0x1f8b08000000000002ffbd586d6fdb3610fe9e5fc176402a779eddace9cb94a4589a6443803629d6ecc3300c022dd1321149f4482aae1bf8bfef8ed40b454b4e8775f587c4968e77c7bbe79e3b723a9d929b0557241749993192b0392f982294e4bce039cd082d1292b282491e9333c10bf3e02dcd6811b3c9de14d6c3523ee72c21732972b2d07aa9c2e934e57a51ce26b1c8a7b9b8633fc082b4a42933bfa65a32f84679316d9e27222e735668aab928a6bad442729aed558ed1a5162a9a4b9ab39590b761681fc4e8d1fd1e814fa918513a0943a5252fd2a3ee4326a590de33c553d897f7f08ec57a4b522cd1a930bcffc8b2f9985c9b9f9ba3bd466acb3d74ac917f5bcae28c2ee98c675cafc7e43d2f74fb7b7334ac46ad95667944934432a598aa4cce256790862d714c94e2b51426e7348e4559689208c86a213459d03b86c9d5246e3c30d2b12894261757d7d1d9e987d3b797ef2e6f2e2f3e86a47c79484ec8c151a3f27d77316804bc6492d1644d668c1500a28ca5540322b4201ad1a5962cb618a976e25a3c7df7dbc5e9f91fd1f9c5bb8b5f4f6f2ece6b9b3fb636cf6881ce0338935a3d648088b9bf95c624b51b770d55062eafafa2abeb9be897ebdfaf1a5bcfab980178ca5893538cac813beeee96adc93dd97424aa1c7e04b0b056c848e007dd8ac0add04bf671a3f9cdd8086fda5c9db71bd3e21602194350318cb375bd69214dfdc5b480509338a33cb7eff5823571071c29cfecc475fdbcce4f57c6ec4299fdb4fbd022ece4cc71f7064c42643554319376a1327ec4a59450c8640918854a7412a6fafcc0e73d11e405a80d89adc7e3019fb783084821a2c8d610a32c83d82425b201a92a03e101c4a68159f86766bc35092158afd6b96539cb781cd8121b917959382b02bfe4c8be65915148826e99bb991e06c1c8d9b15fec4072f04feac833ea3b31aab08b9f8c6912ccc01104df188882b1cfcc7eaf213902b85b7a6af715ad80aea325951834784067198b54b95c66aeb34163063f9e17e3ce4b4bc26158eaf9eb60f6d80619953c1eed16fc70e34bbc1e93e95300518cfd4891a7d3ce5b80123302b980dd085979ed8ab9f1414a34be347e9382b144353c8208b1dfc159172fe40e22956009aa89ed992b9e65588692dd41b92600bbd842aa9574ed1ae63504d9c63d99b48c017d31d2c24feeb8cb34f74d1ac9c6dd974d68c2209c621db5690fdaafa3a346da4148830abf90ae77165165c96c977a01ada8f789da2267132150d913d3c62ef25ba541f5c7cc7367b06ceb68d45b1c2e5e30f877c991bfbac1fe1aa5e956e6602aa1244dfe71843a76a5de043f0fabec26bdd96693d2a34172c4e6d19bda3974180d0a4d925349217f3d1d762be3d893704f101d51ca9839e9ac523998256821739e969245b568044e44e844cb3743991b3bb1000d8df91e812feec85f9b92eb91c9b4463748756c9c6903c39f621b06dad1a6cdb34f2c2e35ab3c01baa385a2b1d34c5b2048967210922e6377c3e2c1d1525cdd0d304083647ff0faf0f0e5abc3c367af9ebf7af6d38b17072f0f5e74697abf0ef0d8255e1faa4ba178c78a4d13c4d586381273dfe7b1f5d30d69cd955dc9dd54f9d05a771ab9ef4e1f707cc8977a1d8c1a457d3c893d13d655e5832581df0a063f560b26d936009a2915b20c99ab126a0ad54c7ed09a565592a8197c4df4504f0e8690859536d87cd26872cb8cc01026d7a6c830124e3559d99e22a91536435ffb8ae6760dcccb759d3cc49a88b1ca96d10a50eb497725e1e6d716d9a32e046d8c3c7674d57b738339f285219c1b8050ca2209fcb3cd68dc3b22a0d70d724ec8fe4c80a25594666246b35de627f5aa9e2a33ec0c743b546c36ba4e3bfe82d2a99335ee98f8b60875cf7a786431fd0367029b5f2432f3b3d2027fb3c49e5b3c1a2619689103f0adad343dae5a143448ae80ec9e571c7c766afb6172ef5043b0df02d44dab73aa4194e4a5261da444f0e4d8310c9ddc23b6892199ae560eba9eb58f560b0e290b38396ea8286345aa1781637ee476ac5a11bcc6db1450572fb4deb90bc7843b9b720baf5a3d018e797402411dd7d5c40b33b24554a6e6b626d83ebe8f3c9db8254ebeafaf100c38dbafb577cb522da2198d6fbb0e0e9d55ef710cf9666c6cf0ea1eb193ada9c812743b147b8531006c5309c3a8de9e4fcfdde0eca0dd9cae672c82eb12f609c28ff726511bd760070b3bc9abc150df7e71152991434138caa13bf7deab78c5c21374e369ada9826247d1b7a8ae5d680a4964e6f01a906a4597a00ec705af66924ffe78476f81e2004dcbb57b2565ef4e399c60b0695b22746ec2dc86ddd37776b59dadbd6e779ee63869cd3c3c1b554584a8f4e1d29908e0a6c3de7f1ec324f0e6218eedc9657763ff9521f11150a293b81e82f434545551a3b110050b46bda40bbabe1eb9f2397189f5e4c484d4d76fefbeba1e9ab2f3d5e167065df8b6f374f36fc8d7d871b3ffdd9fc892119e11ff1abe95a6692aed6d6434a7b8fff5d1c0f28af0ba9768edf9eeffbc4ddb76b273e1b5fd7ad0ad911bb0a19bc0fafe64b3f70f32c99a0054190000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "aptos_account", + "source": "0x1f8b08000000000002ffb554db6ed430107def57b8455a395204494579c852c4e53310b21c67b2b59ad82bdb11bba0fd777c898d4397087af1c32a9b393373e6cc7146d94d0320ba3752935ed111be4b75df34e105654c4ec2a09f17c89e499f0306c87605e15f30c945d37c72cf5fece30a9ef9b08ff78a83e81e4276204073bd5d0529d072520c48a2e8e16f9eefc47ae833d59ca1a81653400d97028d60ee64a75f3f7b5f5f703fb583ed0ac2a823ea2711faa671319dcc1db987638368d759317431efd19d010cd27c2740a1db48dc4a7fbe42b14d79618d0a765c1b50efd33e3fe04d2837634f7fe1681415ba0785c36e1a34a795c8c844b44474f484d0f4ee6dce9af7f832918583e5603d6ab091458ef23c979358440a9ffe9c2672caa709f41cab48a6c8e77af5d580b602d9e1c00af8b13ad0ba767826d5fca22ebee512f8e16d0e490af8e406c5f95d66fc974fe3ee88365dd384d0761108a6f7e15ec991b44ccf368f4b6e656bf9c4a01d569259657cb8aa9e72daaabdca9ce19a31aae4f022ed18bda96ad76ed10fb7931284d17d89462e8c7b2a9c9fd73e415c70c3adf63f80f45211bfc78d133f77f9d23d41795b264c42648f377e7bc5839bd1c15e6abe9652ce484718d76eb6126d12fbac60324a482cdd2a4b74535519866a0dca5ce250b2a503150c721fdb1cabc8ad4b2b51b556ddefeebfebfbacdf1dea7fe8503fbac5b517eb3a7741545d1b258f24da21f9e2cc7e02320a8e93f24b2793706fec6ffc9e9d2e7e01309455742c070000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "transaction_context", + "source": "0x1f8b08000000000002ff258c310ec2301004fbbc624b68488b02e2117cc032e6422c923beb7c0e20c4df499c95b6d9d5cc24f732127c32c9ae573fd14bf4d975a69eb30f16855d10367a1bbe0d96b46d8b2b5951860d841c3426c3e0f300e9eb148a2ab161a97ed017ae9a43a553b98d3180bdc599d60f0f32b749dc2ad9ed3bcc144cf45c8e9753f36bfe3b17bb28a3000000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "timestamp", + "source": "0x1f8b08000000000002ffcd56dd8eda4614bee7294e55a932ed0ad2aaea85375b05d16d84142022646faaca1aec038c187bc8ccd88444fbee39331e6c6360c346b9882fc0b267cecff7733cfd7e1fe66bae2195492e1036885b0d0c56422e98801d13026221e30d983533a08d54a8e91e21ce95c2ccc0fb8c7f04c353049e41ca632535c6324b74afd3a7e02343cf0d2a161b0d3b6ed66eb3a41fe5736abbd13e5c4a21e48e672b4abbd7a1dbfe2bac3043cd750846d2426e3813fc13ba0d36ab362cddfaa50b5ba85ba890c56ba03234663ad720cb0c67baa2101ddf3bdb1aa9a3a56229eea4da8461151f3e7780ae5c9f59a4f7da601ab124216434eadb6aa9364918a25252dd76dcc3a5e29825a7217c8b7e95ed65009a701068a8700a2b731523aca5482c3a57a1ef4269a3f2d8c0b05c3ca765e3c61258334d84ef7d77f66a460821ffebcf1bf7eab1ae6c28b30295e654d89238950a16687688191ca2326af1a4124b8581f168389b46c3e9e4e17ef66e349d44ff0e86f3e9cc65823bf8fd85bb1a38cca955c76abc66d420e9349356509404e49654652c20c49141d8a369a4ba9f4ce7d1f4edfd6c301f4d5e57196e6b88295c569098925a47a40c0d5b250b9e60d20c369a3c0cde8cfe89e6a3f1fdbbf960fcf610f08f46b163a636baf48963c4c24b6195c1a4579a2cb66567624f98d1bd10989026647ad0b883aef288930954320116c732cf4ccfe5dbe60bc1e3a054541796b9c5df44366f4479239f37686b0d7ed17c95a1ea36486f2b380c19fd2913b536b783756fab10a454d7b322482ea9ed734b5d2fe0b10e90ca022323db296ecaa83e534386efb709715e4ea2969d61b1af9ddf83197ec8b91d5a0f63a296175ce00a3dd2b46f619d53c80d5191e4caaac9e9cdaa40c8558e4db81dccb9cb1c95a3c4011e545d788a2a946faa37146e4badab103cccf5ab4a7d4e53ee719722f9aa2fa259edb7a66ce8ead00da130b06052db6531bdaf135ea4816fa1eb757d20b7d1aee5782169aced0e20a4b97979a1cebf83574fab26933b8ad70cdf6bcaa45ecc97101c5084bb3b7855a411958faac0a4a9660fc964f4c633e90c95e5c4b56f184a93bb4864cccafc694e56270449304cf48e0296f8fc14b86aef6aca6ec0cdf730f4a324626a95a78443703a32ba8dce1f01057d214eab962aa50f942bbc2cadac8a2505cb62bc58d3cbef50527d7b910d68b47e64c99fff23339ac86af0ffb661cecda568295564b790e182b66b8e66d3d9a15669b435155ea3393e9c9c3f97b40a2400a3e682a05b4ef76778f0c80fcff042efe443794d374f35f2ed3d9cc200fd4b5fec6bb93f1d9615f341a5a42a6b79e478d6f0fb3166d3052bd68d7dab29af72629de66a4f2e19bd2126764c259564ea80cd13e0b3e8788aef33fafa0d4e72d231de1f032b7b3f76be00f6f1a1b6a60c0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "voting", + "source": "0x1f8b08000000000002ffed5c7b73db3612ffdf9f02d79b73a554a7d869daebc989a73e476d3293c499d8c95da793e1502424f14c912a1f56dcd4dffd76170009802025d9793439673a539b04b08b7dfcf601d077efdcd96177d8d93cca19fc57cc399bf184677ecc5ea74594ccd8220dcb98c31bbf60819fb0096765ce43e6e76ce967054ba7cc678f8e4ed8cfe905cf123f09f850cd8515439e47b304c617693575728934f3c24f423f4e1320594d95e4f2015bcd53360722d3328e5990264596c60cc711931782c0344e570c96414a19cf9769924713e0769a666ac8325df10ce9057e1c94b15f446922a624415c8634244b97b06ee02ffd49144745c47320cf131664dca74590248e4a73104c9e22ad342e692994c92c8511595acee643a47492fc3d98fb51a2ef0bc4848b1c2d8b3467092f566976cefc18d60291e45260385ba8c3d8e1089fed0fe9b1a915a990902fe3f41295528032ce9374055b0c43e032673d3e9c0dd9dedb7d128aa09f3619ec238d7b8246431d03468bd0e45acd830679902ec811851bf269048af535ab78a1e487c22b3358bcb85c72245bd916c903758dbca520af0cb4046c2f84d6f23298a3dd1d2b455dd66be1e6fcb298a759f43b8d264d7cdbb2a1af4106ab84749ea05e12586816e585b42ec5ea1930c856513157fa118e426cced3bcc84dc3886105a4da0366ca451fc44cefc1f062d4991f04699914c4d87d90a69cc8b381b21ee17f4de92397b88a64633422c3e45e45199c4b3c0289ab8743668d124e902469814ac3f540656194f1a0882f193eee640339ce832c5a16e8977365d19a2bc8b7953ac91c906a4d0e18e56f795016dc141df9ef6f253013927cbe436ae002d7110e4e43d9eba2a067920202579e9346d8aeae6a248cc65bcc4bf411108a93a4d8a03298dcb4968a1ba4485bf97e08801098fb05fbe36f975126ecba88169cb00ef9422f061e166946848409097742ce80fd791a87341c4984ec92e7cad2d4f203b1934bc4d68a2152d405d8f33c0237ca785166893060f4389e144aa395527af80037a5efb0df0c05b55269c3ffc00d4be135ad83dc095fe53eec5a37a87cc983681a7184669391868ad55eea202470c42008d3034040e4e9ee8e549d8f10e64d33a08d084cc68296f06e87c13fd80d84a57034e259966607e6b37489ab8e46ef4e793c1db013faf5ca1a44c1ce9e991719717d4affb75e5e80fb21adeaa96051b071016aa9288ef1b7c7601c31d7c86ac3f368b18cb9b7f097408b7e7ee62f9d230b1fa264b5f019fee65e12d5ef2106d783e1c9137870d5605993aa84ba83f61168f390012c965d63323fc9fd00e5ec918dbe2d24d1bb77efb2e332cbd06a85099147a10da2e6c99cc2141c03510da247204daeb2b0da11693d583d2fd8f8c5cb931727a7474fbdf17fc6c7afce9e9c3cf71e1f9d3ef69e9f9c79cf8ece8e1f3f79fef38895dfdf670fd9fe41c5c90bcd4e25ba4a030d876c1c511c93761696d2e7d17f71ac70f901fdcc13c239746b488020a04d39e42ee4e08404492ade39593e3e7a8e6cfe6becbd1c9f9e3c7d3d7ea438bdb711a71ae2a400574e1a474f5f8e8f1efdd2a0f06d3b0515cd6159be5842c4aeb5a4f9be5b09cf5e9cfd62a94251bcaf198222795a40bc1927e502f6b4846d8171a8ec4ee46df87ea891aa289d9e1d9d8dbd17e3e78f3405ef1db40f3d7d757c3c1e3faa25e0b206ca5efd08c3de84073e9a3817c680b6b800a15054aa313d92f6ca0b54fec2ff2f2433203101f349dac1fa4f474f9e1aeaa8b819bf052fc225fdd02f7c990d42524eb2072d40fc4c43c0f12cee2b4c57697d2313021c2b8342b0217eaede3fd0078ee02d18d32149807e94f8aa987aa9423d65672a5335c20fcf86d514f564a4860e765a963b9da7250852199d74283d87d412104a4f069439f2b73ec2a58c2062b5ba1eb81c1ae454b1443ba342087d66296c3a652b1173458065518124b51c820a8b66ee23e1a22254b98927a3f348461c43d2879624c4104c782cbdfb93b42c4cb29865488d93679a9b7cedc725a75df22cf2e3e877d8e9053dc3820ffcb9806036299543e13f456cc4aae0f34084bc011351ee41f9c3a1cdf2990a040ec9ac40b62289d524238a32100c86102fe7414e76df6a136862141050d1b87c0381547e5b652d949a804d048539442a56e41e05988141b2ca361d4a4406469a142c6e8f0c6ba0d4b3c2e568aae78a569a88dc02e24d0054402f141d700550f785862c9a8ea2c4c3515ef50e84b77fef8781c6b3a2d52a5bcdcafc4cb12a245a93644fa675bc1d34f3393df4705a2612fe5fa405d62a1abd7a8394eb6655201492c84915aedde2e49f6af71e8881927acec935bfdbfb9b421ea20c55e67209dcc867326e17e93907ac04f7062e0f69128177c5d0c020dab9db099f2224d682d60c0605e1d5f26ce84a6200aaccb6a1e7961910aef990f980e707e9829b62c115181441b230d19b256440317859784901450105802f2b9728b33a55c0f7f8ce943b488538cf6de34a52f3b9c1d2bfe7bc8a8e4b3d884e384f1c1019e59e7a386293348d071602d45659614c345db73cdb139d8755946b22d35462c30ebebedad183a2a8527ec226407b5c3ce79756547c050902a5e232242994c2d0b2905d0d88655074fa21aaf935a1090d9e21504243426a54bea1c002633111ca387a5882cae3a0be4b833264a5a8fd9a24d48831573814f30b1ff26cc11aac95617fcccfb81da0a12d3212a31ea060dcb901e27f65ed58d0c01c212f2a6f725387af92e8370c43216e018044ec562fec654306ba64c2e2ef61ab6cefce9dfd7fd65cd58c26504254fd102f0ad7a850b0e44c63acde8aa7f6a215690f8e698cda3dbdd176af1a081e758b9c0bbc9443c8949af3c962bb59782906291eb4e9842cae29b075aed33205e3d813c9278427838694dca2be06d26d1251bb23d8d659ca6621d3944e53611dc2c10e2290f564b1ac65b70df1d56578557fb7582dbfbe4a20cc56e8ecf60acb9aae4565e3d860d979e891c908a4d7795b9693380ae09ca06ee23a51b757c979577469fa1abf31240322060a77842aaa0dc50fb5696e4cd91b18033474947d9784af3a21b2d737577001a5c5451726a98d235df110bca715a1949c2c1e3a20ab7d7d0780752edf82685d044c7ceb58dd00bcf6156bf86b59ebaafa4db5c02a1541c76e1115623de7de8d857617a5697443c1ddd02966930907d034eda10130c2eea13d2780c64ba71df272818fd60ea41fd3a969b9b6e15ed5bff635612da03af18a54111f1852e81fe8de4d9d3efb68a36e22cf22d83b762ca062c366bc9a53cdfd91de19043cd570c0ca909e40f3503d832234b3ce265611749eb160a07a7f682fdda8d469dd3a97524fa96daed6127c4ffce09cd1598291aacaac86badea29351d1a4625e9d83f95a8ba23e09532df93c80534db3e0ede09d2ae40f542aefd465116ccb2c9335669a81961882c7d10210d92e7313ce43b1536c89418a9899eba398b0ff0f07c88e7d1b2902d1a15318681ac183340973d48b382a318c816662fe2b8ba2658aca850e09c843effbd6146523e8cc68f9c8015aecb2c0db1dc2ba5a621ace354cdd31ccd160d2496e97725db7ad70c36c70ab5cae2fdaa37e200f01b5f86e1462ec997f0e765d66dce9025fe7c24564b3d66a9d613f222bfed213d447a39827b362dedb3585d88716c21e1caae329d3681425d0588b42cfcf66e50214d1eb6e81f7752475e42d9314965d79b3389d0078438c79d09ac91cf65cc62201582dafa536b0ba11afecd4e7c069848d61eb9661df603fbd5a4b264dc05daf1932abe46aa0335a67565658ac8edc771a899355db573d03c811409c12151a9959d38bd439610e3d172b3a3646b7ae865662be53b66e3d6d389ebda2e176d6cb6eaf33076b79bb95dfd689bbf5c268d04c4147dc7cef6eaa688b5cf53b332c67f6ba598ae54e954df65ca5eebbf634290a9b39d456125e67016bf5d96e269b984a4baea6edcfcecb5ecb8b165a2266c7763bf0a2c42182abee3c3654d75db410771f1cd72c202f80c05ba8e6651d72cd7f944bcd4a200f2e278e52954d301e47b348265018d18d3628b4b8d4c5333ac393371aa2d9bcd0781d6e9c6a5ae75c02af9bf926f5d6da924d1d259d198536b6aae7edd670753f4fec33178766e2920e5d9113bbedd8a398e261fbdd68db0a72c83f66905573bc91ece0b835198eb09491794367eb2c67bb6e07b53aeaade95de5febac4e1234662585ac644490196de38346a6b4233bca76db7ef8c95e0cc15f40361c7c36f58af3635284b3049d3a85c8197e5bc6d6d153cf4a5ab67eb56ee8c0e5a21bf594cd01a042632d66db577669251336782a785932fab13436e95b00235c177d931ddbb10454488f7b6c4490578127a132056cc7de8ef8310167e72c92a91e03582eac41a204cabb5d4643aad415f1493e455123aa093f7110422e504776184d125d72e23c863332a5d33904f560cb72eb33f0af6199d4012f91a8cb91188f4cd8269137ca816a2ab2860f233ae25bef4d0ca185d1cb6b9b3aa3d6c2a0f5b6faf6c528234ef157daa02e47dc19e92d35f2ac0d112d54d44625f836a08c46c5903df90ae7813ee99cf2b4569bcb958c27d6725770c7225d038baa574d1b854323070ce71df6e34421315952fa5a4bd3e1a54c54157beba4179db7ecdaeefce465d6d56ab03bc698fd5d96bb6bbace679c796d9bf563235c36673785d473522616baf5c9ad24699bc2a4c395e0d0aa4eb3834a96ad36618a34616daa23a4797f9b2b306a0d321758f00d6c4af2d7454a7bc7ca5524f71513ee7f6097df74d693ce416e379eb4d948a602fd26ea4f4f5a37f3f986b9cfd69835a44a683bc04313431427774eb0e6a8d60d61759ee1798deae015df6c71fad48c90e0d8c336aee0ddcc27001695e1d166a5966b335ecda885bf98ab25637999a50ea7e6754010a1ac0c2b06dd5dbad37dfddc1e8db45032ab231a7dee9437647d112cadd82d481d95c02b61dc50828ae833ca8bc5965744ee93b403fab356ee2ae519aa81fa9f1d56634788242599afded85591efc39a1493fde7861dcb2969762395ec6a65ba30d9b5e93f9beff5c7d83de3f9a5427c66e928fbb1ca20b386f009aeb80b3b7bb1d60aaf5baebfde6f8ae1a5ecb3f94883567ada7eeee32bda3a03b67b566b383e9f2ceb662c774555753c2315b5cac6f3bff772de2fea860c79ced4682f69ca7db7dac00f5e91de9334c16b68df6b6baf44f8f9cda322ba50faca3faf0f3cb56952ed20df232ed84c159a5382e1a9be9b77af781d5f78526e4aee686aeb5bffe0a885f78d8067dd3fd7de341cb04794ff10c9e1a9714e5f5c4363acd6b183440f15b2bb636a0ea1661c72586cefb0b1b5f475057bdaabf084043e8fe49e393efc6e5e207ba280e7bdaf7fea6aaeb17551af9d0755dac7501cd560ce9bfd39bf475d59f9de7d547716999b167f8bd4a99e0d752301bf0143a1039f5a1176970ced4c74bd6279ee26f4afcbaff6668f062dd6a7ac8d46d0cbaac81a8d8d3b8572f97653ef7f04696306dabb3c5f63baf45d8b7774cb11b094253d483adde6b1f79ebcdb68e46dcfe9efd3bfe5b7317a0e59458ffc6586cda75e3a6d7dfea305938a4665c20d11ff7deeedffbb6ff460e80b00ccb43f18b5f549619eff9804585471f2f3ec43f6f013bbadf7fb3e6569587659547666005644f1e84e1f23d879baf3dffab6e944a92f277c4464293de8fd6f7cdefd303d7126faeaecdde162cb6f27579ba8c72ad3f8335dd184659d7a83eb93b4dbefa6a7b1f529d8d04ceef04d4dbd785aee53d4d47b12c09bdc57a3460edce24dd03bfe4b92427a1602743b968acda14d4d5e18111013f8267680dba1c92683ae5009bc18e41466820d700b2bddde632378ea3db78e6ee0770cdd6486326281ae981d30c1dc75f8e0e4c9bffbb3b1d8e934559ed0ed89e25fcd7a9fea5b0dc1534a71c08a225d13647bb3469c0d67036406fa5c4df92a4454bf42bd2a96d2794990e5d36582e4314beccb0c91a2b3d12220858d8fb48e2d60e72f7db315a9d856f47ee60e34ac3a8320c2287ddc6ad44738da69579647bcf3e80752a9a7e7bff70ba596ed20dbee28f65a81d79c52a0af82d06df62f02d067fce18dcdcea75a1d8211b7015715c290ec5b5347bf88198f80479a83cb3bd45c2cf1f09e95c195cf3ff0f069b38785358a523e51be0aae8f60c6f73d4db1c55cf51ef6d02cce22f9add42f297979cfeb972c51b63ee4d41f273483ec5f5840f8eac9f3554dde6905f640ef945a574b770f571e1ea6ae77facadb6cef9600000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "staking_config", + "source": "0x1f8b08000000000002ffed5a6d6fdb3812fede5fc1c3a23dfb60384e5fee83db2c2e687d45b06d5238690bdca2206889b6b595441d49d9c92efadf7786942c4a9664398d932eb04191c636392fcfcc3c33a4757474443e48b10a7cae885e72e289781e2c52c974206232179228cdbe06f182b0d82792af99f4d5a348f869c8094bb450742e59c4d7427e1d8fb3b5d44a217f3c22f0932a0e42fcf1984b29e4cb479b37b7b7df28cd23ca7c5f72a5b8cad6ce65c041f9d6f2058fb90af25547e0ca25e8e72414ded734217eee85c7e2586832e3e4772e85590c062a4d26ff9b4c2fe8bb8bd7bf7cfc40df7c9c9e5e9d5d9c8f49faefe7e4841cbfdc889d1ab70988e3c4e7b188829869806687e0e9e4f3e9f4cd2505b913fa66727ef1feecfcf4ea629a6b785a68b84cb817cc03ee1bb839a88a179c048a04f18a85813f24efd935895265b42d24075324048cc5048c71359f9d7f3a7d77f6865e5e9dfe3201d5e76f27b9be6785be2b08f54a688c6b22d6202a883d100a41098328d024e1d2e3b1666044ae741de8651093de68405e8cbed4a9fc74717576fe967eb8f83c99d2b3f3d7d3c9e9e584be3b7b7f76959bf0dc09d62774cce0a8b82e271ee622d3a0320c51b58245000d5a6092f43f955420ccf3441aeba191adb44c3d6d7201fc7b6d5371c914a8486e06c497221990affc264b4f6b0e3925ab8d3d31e73e9820b26080252160a34137448445a80a3f05cbd80cca00fefc4d003468daca756ae82a389b1336c7a8e15a047e6bb92931a6cd07a0596a22604f7c437822bce580b062f93f55661b7aa3c09250ac5df35cc520ee6603a5e491580196732922abc83513722988d2881ad9266683268c20f78988c39b02a34894211a9253b03d6472c165b6aab0e237ee69eedf0340fcdab3d12c0c1b54d00964b9161ca6236b9186be75748605a952044f486343043599b91f15f9678064d78d404aeea552224d5aa2a2395151c53db58dfae7250765b2f00dfc90a0323431b7b9770409bae2603f8420a3c5c218b3926eb6831a4dbd2532cc98cc84084bdaaeac5f68fd068445b0e210ed5413bee232837b084b01d23ca47e804dc427b31b034dbeb5ca99a588ff1770e4d72c4a423e20a3e16874fc18f805fe87bffa26c34cae24d00d808c403814f1f1881cc12ff333743035ea28aadb82bbf8883a966c037d81513679f218130ba3c44da56b1656d8525950c1a4c6e2074a259c79cb0cad32c6c8ec0a78c6833ec7005190025eae501d03f89502c473a6015362bece12cdd46d5120500c085322346c0dc02610656841ac8d49aed6986b439601b826c0359588d8473195c4c29606bdc0b7564195055e906018c121647c1eab141b13d141c4b7fd0269a9695d4ec380783dee0f8c646834618aee153b2db4d4404bf346444d237282f4ade81c26501e780bf843f1a00fa5a44fd25918783d3b37f4c93c8d416d80f804bff35e51179581823c51c122e672d0890fefacc4bb97e7f7677937a8fb4e6bacce64e3316427979a56d0eb555ef7b34eefa606a6ea9c05611e2d32034a29d5811236a991d4a3405586828c114cf662fb801740c57c234ea59e21fbc25d0b2aa792ff3f0d6086b0d1ea95e23a2887d235dcbafa8f2265daa0263f93d1a0b4d20cbce37136c351e884690475da6b1f0ffb85909db6b4c413cd214f9eb42e797502b35c479b3b4c790d96e3c441b5a866c8a032a2fd51b2a31ca2f2476eb80695d8b4155e796d73dd0d1ae33de8940983ae312a167eebbf7459ce329861ae05d7bdfeb88215f34c3eab4608ff35832201f716a198b1f05569d9cfbdea00ddaf32ec94eb54c6645d1d3deca86e4072a610eed7184d9bf1edd9ba06c22dd9d5b77ce77861d70d9b2535d86d27105bf29849479b496d586769851d1aadeb2143224dba04992d1f5638257fb7442dade66699bb757c35846807af220e3881a45a44b0c4336d1f4615bece66d35e1a8740a876f287bf41200eb51bb5d8997dc9d6183d04c157fd065c1aaaa919223ce66dc5afbd2a5b41d91cbc1b0cc4cf4dfddd326aa5e226356fba75dd16bf7c26b3c4fab8d6dc1626d813d11649551b3f26d801ed7905c6313cdc54cf2dd9d884ab5fe7c73aecb376c282a13bc9ce5a28e414a9832c80d365cc620f0e1d7004150a4664f803fb38e1201bfc56cbe2386036bd2df6d80ba42d90d2a4ae5b1f7860ebef66d3ef1882ee6a140981782bd76b27a444f2344af54ea22f0c2a0b2bd317882ebd6edee59a8bbbdcd72f5b52b191ee7eb8546ca3ae7d5213e899763e1774c8c97c1edc2dd70ca63b86d1ca2568df4d943b38011c3a7b770070d201fdf66c2d6e337eb8042d7ad5fee9d8789eac7edc70a6bc1feeac3dfab45978e0a3d8e1b3b9706b93bbc55b9df695e0386945ab2df36bc79a1f26f9db06aa3d6ba1ebcdc883e67b87e3feae65f773e43f7485b47978b20b8352be6336759acd6c16d44c91fd9aa65c9ea65e5506238c53f98df60e5df39d5ebf7c5ff0d3af1a8aa99a5200c516a45fdc5202e970aa4408707b76a6a665ac556fab806cfd74a805e7d6f5c9d6ed0fde0b9b7f73162a9ebf3876d3a8fe3cb02d0aee97cdaf919331dd06b85a59f5729c3e5bb7cbecdcded746517562aa55545f3d7b544e9e92f573fe89c56ed4b2a13ce29b0d231ba7861dbb86312b02643c6b93e1b6c01383eff36ecbcb9d2f73b0656f2b9758cd2feaabcd7eeb8c5536ba3e7efa2cabad9f7ee5d789b99fa678d99d4ade63103c282fe1633b1f5dbf00ef9fb556626de2d334863b9fa590504ff0d612bf9a342a724bf6a8cca6cab2824c253e7d68a7b3ec3984d73b386183c2834160d3f910ae9768cc09f7f1e8819c6da9bf0300d0cec71b3c46dfd75f77c3737c4b0ec8a703695bb50bc9addb74f736db48850f0f0c3e8245a159652fef1719a7851e1498e3db10a816169c3b8664cfb9ea5ef079ba0fbbe6a5e4cc0b778d51fbcc784fa03cff5e16ae4ba0e6e3b545a9eb71f95663f25f06b64848f8ea1b8e55b03e811533682ffe8f83e38bca80933d93850e9ae71f6737090ccbe66bc2ec8c8ccf610c1dd029de017da95ecf14e73e0adf4752139dbf1fbbd9e7b19bbf9f99d8e799896f8ffe04274a73f6c92e0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "stake", + "source": "0x1f8b08000000000002ffed7d69771bd791e877ff8a8ee78c0cd83084959b259d6124c6e6441675443acebc77725a0da041760ca2f1d080688ea3fffeaaeaee5b77030429da114f6291c0dd6f55dddaebe9d75f7f117d1dfd2d99659364952fa359364dc7b7e3597a849f77dbd1db65ba48966994441f64a3793e49a3225d45eb4594cc27d13899cda26295fc921e1d65f36c9541cbff4d63d90187eab5a3b3f9388d966932b98d56793449177991ad58bfa801c35e251fd268ba9e4f8a28298aec729e4ea2d12dcc8c4db2f9254cb9fc90c118d93c4a7f1d5f25f34b680f1df39b79ba2caeb205ac64918cb259b6ba6db670567d65c96412abc9be8e6fb2d5550c1da20fd039cbe745944da9034c3b5de6d7d1ea2ab5a76ee2a0fd76f4521bf79f7936577b8df15c700267fc26ee1a1bd3c0c97895c176d5a1423f18973605fb87134fa77015d4289be3b4d86b9efeba8ae0e0c6576dfc68d0165797d2455c2630fa32bd499693a21d5df0f5a7d14d06cb4dd6abfc3a5965b8c5db689446b37cfc0bec152e110f3189a6d9aff0e764bd8446f93c6ae04ee0fc2f73d8c03c81cb6be22438af39d4329da737d03381a5fdbac858775adfb01d1dafa0d36db4807daf5a78c2b80db5eb7c912ee9979b64be2af084d60bda0e361bc3a5a4f3625d44bfa4b711025ebabac997bf3c9dae67330242b8d3655a1469d1c20eb7707d73fbda97f90ac68be558318e8587c5bf67f3c57ce818be89c5f0b11cbe1d9d67d7d92c59e20ac7fc92e0571a83e6a669d517c6d29f86d74d379dcfe114f5ebf6ddf55e5b4353d8271cfbff5ba7c58ace6c8e7789bdb225bff2849dfb2abb4edbd10ff94d0a97d8325a1050d0d4a3749c5fe307ababc932b9494633f8e32a1550073dc6eb25dcf28a4006e085ae392510cb0a5acc8866bcce613d4901cd0065e05fdc06832ade510017ed681fa063ba4a97301cd08cf965cb820d1c378535518bc52c1b672b58ec2c453261b6e4908ad74ec8ca6e965a9a9889d3427b0686f22426cb7c51c01666f90d0d7c9db1d3853d4e3860dde4eb19e017ccb34caf012108dab16d0a909433a856777560df5532bb496e0be82bf1df59fc658e4b5f5d2df3f5e5152c2c8525f5beed470922358d7a08e73567c44e1fb4807b1b5f494c2a3c270153c4e27b1aaadb291d6b9222f905b498441f72bc21ff90aa594ccdda5f7cfdf48beb7cb206f84916abbc88a7cbe43a45d0870e74d4bf7d11c1cfba40ca34393a4a97cb7cf99df959be4008393afaed3c9d4d5bd119fdf9d16a44cf83ddf30320903e1c5b037d359a15dd5effa0ebfd127063be92139ee05f3f001d98a51fede6da7ed80763b8b5a3a363fcfd25fc5ad67e3cced7f355490b36165f058ed68a7e04aaf952be6965cb41448723be5e94b4296e01acae15552b6bcade3d249bd3ec52aeea9c7dfc923e85e5d000d3658658e08c3142a4ffaeb4c9253c1d455694375aa66c159c76f0599f3e7d1abd665405203bcb271190a2e22a5f22bcaeae1285c26d6a8f1479159dbc3e7bf9d7f8e2f4c793f8e2ec2c3effe1ecddc551b4de1b44cf230e1c38f0cf9c1402ab03046d06848153024e3170aa15d24ff6861a33fc7c7af1c3ab77c73fc76fce2ee2e3d7afcf7e3e7925a6e8a929148160a749532dd6a359565c5923feedf8f5e9abe38bb377f1cbb3377f39fd5e8cd657a3bd81cee99c930e5ca1e0354c06431ff5fce2f8afec14608962c8811af222cfa3ebf5789b017f38fdfe0731e2508d78cc50004f2f99314650672be17f0b00002432f2436382e3d7ef4e8e5ffd4f7cfcf2e2f46f27b13c1631d59e772abac2c0887845ce30fb6a9897c9fc2b41f2a359025dfce3bc3e3ef70c74a01fe62ae12c09f2ae690a4cee75f26b76bdbe16f0e539cb93bfbf3c3979751eff78fc7731e661e9712ed3cb0c707c89ef53611c2e10f909318ade137d77f2fde9f9c5c93b05a9dd8e0e5c11d2a60239936cce39d762456c5a2ed906c634178b749c4d3358c022cf67d66103fc9ebe390710890592c8e9baeebe2679ca6eef4abcf8cbecf26aa57846c5ed3b977af6f6e49d7e155d0df31caa81ec8a201abecb3069c6ebb3371203bb7d0f42134784eb267c41a18a58960532479ce001df05d3c1bf2be4e0387b681fd6db3300aaef4fde9c9c9f9e2be08acf4f2ee2973f1cbff9fec4a62e5d0d7b4fe774f71a234ab4658cfca83ecfe91b1a397efbd39f5f9fbe8cff7af23f72b4a13b1ae72dafe97e1aeb629dac5102e834dbbe3119101fff78f6d31b4564f77c24107920811678d133e0b6577e1288dba76b387ef7fd891c5543b5bfe5c84cc271dfc09d66f3316006bc7057800f6c06004d3905493e741182c3154c9c36f5d9c5e99befe1367e3e79179fbe79091873ae50f3f5e98fa76a731a769ed351211228400646171964c6392e96f9876cc2114548041e22f0f6ecec75fceaece49c1e9493bf03a2cae7a4a33d86da69026ac285a7f3f5753bfa3925068f737680af30ef02596af816481abe96390ae63f22892bd68b05bca080e90669d74effe2f8e2a7f3f8edc99b5778288c125b0f68a08fd9b6f75d9df14fdf98bdfaa5bdecd6039d55a0eb26ee9e93dd027414243c75f78e8ee043904e575f31f093e20e75e2ecfd285b01832907bc5aad16c5d1d3a79740fed6a33648504f8973f976968c0afeeb385fa64f810d1a3dbd0626fee918c8562abe63c33d2d96e3a7b36cd45e16fff1bad7d1760734df42faf3d3ff23b7b6371cf6f7b4ed292611c9183e590b00a714656aa51d61ba1a12d680e99b703975b504f03345126c484a8aa2c8c719c9018504e7b69cf487e403935932949e00894153848f82d29e1097ce910c751e8cb0d30acd1961b1f97a39e602f115904a266211392ee48c4cb820099b1e05b17c5451b88f7cb15aaec7abe80c0f403b20240540055bf03ddc0f1749f0077727b8e32381912dfafaa33aea9304f048adfc8a1e5ab97742fbb788d1624bf2d839c2738556aace51687de0b560c74cfa98b9a3233a923d4031773ab5def7d9ac88a48eabc5550837409de143798170534c7c4542c098ad984da396d3a3c1eda1998ec15421f846130c8231decfa04db0941a3804509a16530f599d3de3cbaf342816acc75c4d063fc7da80c1e1b4c1e07c08a20c88044af0417b48e404959726d7792fd7360181668c6a10b9853bdd9b3e9c7b71fdf28b73b53523aed7248a21952cee1d2c53c66c71650b926303631512715cd59014d6a50f283f671f1e91e0fc4c0ae42f5a7a4713bc5a0e18c9b6a261f970425ae17b46a5e994b494e2a8146531c0b1dea893b4feb835d6cb24d518e86f360355d8b8a0a7c498f96299302da27c0025ab9ddb8a5b5463b68dce57248720b9a6a6b22b80169cf12403fd268d295f871cd87958f84cbe0b848c38026d979354dc7d3ed567f26990497f8ffde56b672cee0cd59cfa137495cfe890edb781ef53a8fd89354328915ae9ac50038b2d7ade8cf263456d19dcef2cbdd40f579ff40156cfe717cabbd0e251b1f9811889149821446cf19cc387403e14b202c994e6a3b6864aae412866231ee9bab667efb8ec2af9d8974264a5561a28ebea4cef50e7e9ea8c7f6ff795a4d6dbf17832a1edd8bd960217d392ceef6423ff181e43847f1c6af852b4fb6b7a6b0f55cb66e11dfb27eaf986753c9e4ffec2bb1d8b5ef65442808a9906df3be8296fc3046b7b04d73ee61de4bfa199bc7ab8407b980900c7321bad61dfdcc2e51de6956cf68eb572ce8edec3926bfc891a78af503c1425bd85e6d0dbdf6391f00ef21adb850ee3a34fe4cbe6d39cf1b393c850d21972257f5e158631cda36488c7f942b0c52db28a68efae825b502440eba388a9db9fad0fb41d4a9014f0e46f86541cb48bc410ac60e8eb059070323bc1f101a39c7ec872906027e994c8470eaa70a984031221c771a13e38dfe97c92fe1a99d657543b38264910da60a845ce5e61e20b49dd2bc5797ce7344e097fd49566388df6b46ab725319a6e6b79cdde3694c565f7967687fafdfbafef142f1d2fafecdef0642c6186564ccc6d4cccadc509709dbf0d26ce7e907618abd457ff5f961abfad33c11e93b960c22dc61d4c9c6b93c5953834c96467848c823116bc9f4720b1c702ee369f030dbd89195b0be2d998d96401842517469d186bb14ca7708657d6f92b76061fe3af8a728c8353f2f0b40ab78af1557a0d6cdcfac000de634ba428e423ecd15b296e589db1c20b63f5268abcb5b5ef74234c7b0957aa89000d66fd60b334db25fce8b6b392eed498b41de4a6abe778c94f69456a7857b0c31ffa2eb6f0a2db332fe2c21920ba49c87aad2fda31df1b53602bef1c1a6e490e5e29b933f472406807233ace2754c9cc9741e2dd4bf8ed9d543d30865101bdcda5332d25b7d922490683a3f020910e0e4b1398e5da5e6a4bf340358e850e30479619d3114ff8bef9f040a833d093ac9399bcd0b7e9920826ea29711e3fa52bd6634460781362d471e64532b3859c6992cd80e1f57d6d2e2238b5b9450f7e952fdfbbe30ace97e6c5bd6ea3b11212b5c5116f3726093db38964be3d5f233d0d7c6daec860b5b75f0eb345c4a42c09dea68f33bfeb94e1c9fcecfbdd4ebc2ef77553a3a5b9dc7a12c1dd565f932bc4e5d76c8aa3d665fe70d83a6d6d32e40835773b842a050c2eb3ac8db93cafb8b40b4ae117a0b6dfba10d62ab0c696baee4c11989c5742145c49edce734a45627052bf6477a77bc367fd5dba5a2f19dfa1bbe809ed99e6b9c28c8dabe8bd3ef07b8b4120d7407445bb418d363969713969997e85a6cc1a837173f3743d47b739a13e40986e78f7d464a6ad644c4e3b85a60356873102d12cbf892fc1a296cc9ec9162f8c119b6d078b4a8e0bc4ca84d83171708fe2b4e4aa76736eb354b86ec6e82706f6c36d4ff23ba5189a460d7dcc67cf23e98376743487c10bf4db9a148d66535b0afe74e45f1fa37456a4d6d7faa8df0607556394dcaed23aeb9e0b4c7a32af216adc5ca5e46b6a6a03a4b04ffec7f9aaa95f3e820fce85b64a3e329a2f71f406ebd592a6849625b6b41c61a9c91789da07e60a3cbbf54207350b424303494f64fca7590d1e4ca345205a173a142c348cfb637e8c7084eb5463f51b4fd4146dbee1d6a6fde4516ddcd33cfcedfb7b56d0f40360e11814c965ca7ba39a2e04dbd4c37443a960dea6a95bb12f54eff8a2616b6a9a268e0b77dc0c9413f975da78022ab9895a70e3893157db01721d621c4a50e15862d3892dd6e32842365ed2ce966283d0d68723fc5ccac968d03da616e534541c8ef58feb383cca27f92a660cfe0b802a110aa0e302d3c4685678bf0b80175bf8b44c6f67686c367c225b3571885c1d9f5762aa8639700a7fce4195ed6ed0e320c04228984a8d4c83e1e31558e92cee790870a37ffd2baad3da062e1b1af1483832b167ea79906cd6642e3821fdce99c606855d4de8d070736a63b26f02ab28c7b94e3dae44585e797485835ef59844cb801b847dfedb4e586b6bce924d865d07eaed4ef47f906dd996fc927de9de9a88a8ef49ef8f7acec03ee0eb49ac4fd7903d8ea22796095fdb97da846cdfd6872923de1aa146ab97cbee567021d46d432e841b1343676fb5b36fc09abb6473f3f5f588218d52f8128165cadd482a77a58d447c223c6f2f019be7f621d57869c4383129d58b86cfeaa733e04dcf29e9fae4d07bb3506d0aa07a4f0207a9ab955d2e4e9da826b405e78169983aece888cdd6f02fa7659b3a7529c0dba5ed53cbb7fcab68dbfaf9661d20ffaae026cb0aa0668dc27293a60f8cfcbf37eb80bd79c66cd2300beec506ef99f23ddafadd963359dbd1a17adab80a51e7ac4fa5e78e15adc87d25d1bb59f372d54d4dec0e1a2ca2ab4977a1fc801a768457f484390aeb2c871dab767494c03f4bd0f49b9d1baef4a20c5060168e57b9dd24c8f5f94db19d968f4b702d3f4747e9f56275dbb0644bbfb1b2a2b16d3f0d34f7992c3bbe2696c9516bf371b303f3932fbf29ccb3e88f1cb4352813c2024522f3f07b6ee1fc9e59385bd1cd5506466754b5a14e2d6c4e140e9da8b95f89201e9ce4cfe96d8ef1f16240d0c9e5731618c1da6a0657345b3e1d2195d14daf41b826856daca2416361f60c8279ab8e657447b85079b37e63ee6f728970652574c162ec343fce4b5299c9d0034e32f00098c72cb594436264ce6285be40e46dc0c4459bc43247521e2e9d802e8e22c3413529e2bf782024600d8bad5a669797303f7661167a9d2d95cea2cca89e49b2c6d7a63c39e4d8680f474d6ab2127e03fcad81452c6f2d2ac77dc4688a86c9ca2948b0bd247927c756425dc34657db8193b452eaadb278cc560d0158db07db01fdd70350fc08c3cfa149544d9b6480ac056d8081f661e35ea083c3b88508228adabeab895e441d5b40969ea5e24c7c1db513fca8cdc384ebb1306513ffff9c87cf50e612fc24cea7ce35e002ed8e7f7a2e61c55ea3ee392b9629dbea2bab189f00ce37b82d93f239587b7b827ba129d588a914749abbd498619c8398f50cefc0b0e653b81f786011fc30ddcb9dfc23eb98ab9b6650c4cbab74fc0b239c2ad2934727b1e04d5ae4b7f03fb548160f482ea8d132bf5ca7df527694d52a81b1346f327a6efee4283c8deb7f72bd06caccf32c1c1db145909333bac8c5a3db555ab0a4388b7cd170d858632c1acf73a8da500dcfd74d0562cd16b3c4614622da7e9c2c2fd7d7b0d18627e6b56920bd4dfb3874f89e53f6cda6f4af82dc5551b7cd8899866916226894ddcb83235562ba878d689280963f51b86ba16b5d8cd1caaec80d4c6ffa18554e5e7c9a1fc5ab1f71bde1ffa6cb5c571b5630ea1b75520c7bad6e1b36f7b885586cbe1b8a621cb5d9d889fcb0da1a8d31e2915cd4dbd60e4ac23a04393d22ef5afc30beaa17e4c181a9157cb56acce1447f7807750341c2239a6121dee18211226567e18917f10f5e163a5232412090c43bc7663125e1496b469878d7100a3609cfe60b3df10e5d1285121edd1f93e21dbf243c253c7e2058c57f3fbeb895926bb0a358bc8306025ac2c37ac25bbc039745ba84470fc4bd38337c2c790bec98b8df2c172af341f328244e7e5d2d0131b9cb3fa91b459e2c39a811e11e623ef1b54dd960b154e1376c5613348ff69243829bee5b8d9bc6553cb3dabc68785e68c1c038a2fc2b9e8451336200120253f89e7779cf73bcf15c4a85fa025947961d89a59ea1787c542fcd893907f53c17d1e5646e7ca376503c1d64c941b522cd6e629b4deca3d17933d9cdbdeb572920607e5b6ac499b036dacaeaad03b9a72a608cc18cf85c2dd059df31f3d44f0408caec835e139b9da3c111820cf1cf3d5fafef762d3d82b56d5d62f4f38c2e4b2d994d041fd23cd93a7307d2f569b4910c764164e16c18639b7b6d969cbb903f2930cd976874bb3bb16fc35aa7df38587d43a10bd1a14e0738c3a0f85d4d87b01804bd1a4e6174a15ab0000282f2a7b21956edfac28d6008fd04b44780a7f0c31065f6a478b840575ad5a6f2f098e68be64450fce648acfa41b8f2ac7e16eeb7fabecc6f3f6a9e661b128880a3412d3a616b72c2ba125a7b289afcf7493eacdd945211abedfdde51e076d4025da781101da971639b3b8bdab4c14f699a5e6cb716c491ddfad43dddc90498926bc693c0e1b14c75924153fc0a2c451801e40203f0af54b92eb06bbaf9bba9d83f3da42b113804df4c3b21a4045d4321b92baed76efa2f866e43f094a6070a33d248c6925b94b5d06b9d2965b69f05aa9630ccd1c109cf56ea61022dd0499bd2dcd45970c30796dbef14f0c74c5766bfa526b030d343d80d8ef6e251c4299b450da5a89eb4cfd0b9c9442494ce04a5a30f22f7f8076fca3d4a88e43a78dade8f6d4f3070ec3a49b2308b512a13304b14379d134ac26fc9ce608f2b7d51b5acd8300bed1266b9e109906e237feae6767dbf6ba28db57daf3185609a2c311bb348d204cc019a3cd7050bff759c51c9404962d81cd405f314dd6e122069b33c5f14edbb7875577a5147fffa97a58fbc47af71aeaad2fd1e6201758d523b1b274b6e9e013813cafe97a81c3df29647e938c124c946fa5f147d890262067dd4cb9641dd19dedb4d56f0fc5efc4943fb8bc89a45b9be545a3279e5b6e7344bf65ae47a9eadb9917d7c972c3c993f0bdbdf5a5ea20502bf79622aaed3e5a549a42cbedbbe799b8679dd6c6b8e1d1cd322ac8db825b2423292dce4b28a9e019b8565b18cd29c3978e269d3685a4fb50ea5dc871ca1c4e7bcae96ee21e2c638cf9e9b0b2ea1eb4e266183a8bb7293a5eb2e159a6c1dba29b89811de9b8a4b666037fb6b03c188d29906f84227d4c04aa6e7f083b6727f076ce1a362041de345881f34882b3f6d8d0b0b8f538f19f31fe28e941a1bf35ca80b06bb094b56b862be694b41fb013478d20fbee9d4cc6bc815a2d93c90187367345ad0872f5ce4413271b7d03622111b718c064e1acc4c863e83c4f3cb7cc8dcb5835c147416928bc70d276486c5c88c79a86561339eac108b9ad308a069b6f8ebcddfdcecfa3ac51c42293cb31a47e9cc6911073ef4cf297b87273966889fa73c9d2e3a6104d861f694f390e0b905060a732631a354e2eab80521f870aa683287f3d19ec9e0dbe84c5cfe3af86d96a58f44c0326a02993743c7764fc6068f043390fa6a0d59312b941b1aa3bc297f3f55eaf12527721f0e8fe1b68ed75145ba817a793e68a03a8e4915d2aee3d2529792de0b9d2b791a31aead447b5cc224e925030cfe48ccca5d59caddf6e50440dbe2292c69d2706a7738eca1e6bd33cdcb45c68a5801a170b72103633b8c599c1882ef7ec78e643e5c3049c0433b92899e1587cef59bee5d9491df90474739050ebb8f58543890ba681b5347b5835ff5cd9512ef9f54a138eeb4c2a2c0302ba15564cd26e7dca84d2107784c8546d37d62bc43d76b39cbec88d06f903ca99edbe86762ff0722f60e74b8d4de69122451bec1bc20e8aec3053d77216e9be04abcc3f941bc9460d6f5462ba59f9bb8c69904ac6672b56de86b85d770907af847ab72320e53980d28b65643d3f6f493c55247eb15d3c1a3c6d5eb6f51cbf74a77fc376672fdaf7e77da9ad0d999ca1acf83c9aa84ea697295269a57bf0996f3405db0e3861c3d132236cbd6942b672fa9c1d607a02950f0676b702b9c3876bdf2bd0662e83f99ea489f4206fe7a95c496067a67ce36ee1519af64493eafb2565138b757f44d40538e80a1253013955fd14a89cdcad50c5eb7de521aed771d3689932fa5e336a4d7391f3fadf478ed971df206845496ddd5836647b7e579379e06fd2f15b174bda4cbfc7efc91f475f8cba02dddabcdf40118e530b61c8c99da306496a9a9d5dca4f05e40dbe9f135cfc050b89c2733e537e1416423cf812cee4c7a642b595dc0168df52a454967011609955816d57bdffbe236b48486a776b2962b6e8114a62f51af5d29bb79011f12be66484fd9a76671cba6a8a3cccceb723e69f82475832ff73bba4fe9a992325e3991be95e67a631c2dbbff8d5ebf48851b6b758ca2463acb2e33ce5c28270352e5c2c2ddca4f2c629d5fa8a8eeaed0511d3dc7481ec62eb26c9bc1edc1b8f23220fa1438f9c012a05607944090fc7f74fad6fec4c222018299f3d36babe7756e2d0b8297ce55e617f326ee1209bb6ad2b75011dd002dabc3cae86d1b9c1c08bbf4567675c92218c2f37d18d25f3c8fac055718d279bde4e6ce2df4a26eb2036435ddadda767520bf7b8cfe69d3f58c51c0ebf8c8b438123a9e273ea7973a497036d277c8a05211d80faa6316dbffa43245ce1d628155911d467d8c2a5e86df1995134552c50abdda9566efcd4fcc192ea695a87c4eb3747eb9baaaf4e8424ebebc8b9542d58300ee32000dfc854c4bae2450ebd750adf3852ed6c5553c020461f6cd72a732ccfeb224cc30744d06c4b5b467a2157d6d835685ef4c205eb054700906269af4dc9fefdd8c27aaad7de1b184f7a7746113fcd1dc64ac63e3ae86ada89ede453a23c9b334129d32e75a344151212c5e968a272567d5ab17f8463a2a12ffaa58f298687b350942cc55be5c7d3bce96e3754685b2b85b898420e4703a519147372977844064e0f5024d8753e1bcfcdc4d9cc2822c43fe9a3ff13cfedc810bf36b876bceaa7aa5b284333b402a4ac88fb03065113e1cbaa87b6b850affca6439cb50249357c4a488d532991754a3acfdd02aa69d688d449d042bc92a773ba9e35e59e67752c7f55379b0986b29a7b56e8073b90edf0d9fb654f576018a2d1d1655dd898ddd51447035a3103272e5ab222a498aac88ae08d328130f65c0f71f288c858928cc674aee2fe4c1681d8003b53c0ed913ea42d39acec4e1bb33d435ce05b268d2d2881787ccbb3babe753e9bd7127e0e591c4bbec5a8570c11dee50469f5ca26206181c964450afc2cd70b6306a643375964c466732fba3740afa2fbb28b10c0e402bd9ada4665123f820297981def6e8365d35ddaacaa85a6255f8f40516ab35bec0ae8329114baef7ab7a0acd47fa6e0a88e8c91333f564c864f0a2dc26e1cb3c5e91125ca45900bd5be5336365fd2e7392746b7798f397c414b0bc9b02f912e017e2caf82d5fa10bd3350ba8a418523063a864a4f8257d2ef35a2d1210bd08afce3e7bbbebf370d7ef7cf9e38468e82ea153aa748b5f9e9dbe3907e12ffef9f4e28757ef8e7fae10bd7c89494a19026fea13f3b1f65488da9229d00a43592751c61e584f530d964c01acfdce6d686090e4c6b6305cd81a4ed279c3aceb04699e139c2794f02a89a6a131e24a78b3a8ce2c29566eb1091c092821924b5a5d5ba68e35a83bf9ea1757f97a368179403b0ffb5b2c902016400151722d749f313931d5f845894016944f66aeeeff6550cb7f27bb9b275dceae95fcee1b5e57adbb139b1cd79f3c9c11eeb3d5c267b5d87d90aa6331948864ebdfa44bc82f19302e66a77c6d6948af93db11ecdb188225388415df2198b4a2b851785a27c051e8208b9b641133bad770935856ab25c51a8c408fb2757ce724e87b95f21813a7728f157d22a35bf4f067ab9a71c18da92af279c9de8a7462cfcb4b1eb7a337600723c24bed19ce4f38b70af695498bff6e4c258834269162eeb7b8429eaa9c69cd1931cd0a7b62cbdae0816cce1e366a9a89f07cb010b3c51cd21e9d04ea62e5237caa806f5c3293b73d3b6a55ffb92ec8ab983f4d2878206118a5f82045c535904c7bc225fa92e20930ab22c225935878141abd162c5818957f93743905b2db421d1cc3bb9b84e9e8881c8b54d8a0a44228224f7d7b46aad020348b3a7a9880eb3b8917f6ae9b1e16a97a98e735da7c6b4f655e953750b8eeec1d6b2c0dc5bce39a66215e56c46bf85d007be396c031120798246f23525715976f15380a445f3c71676e563c2eca6ceca9dfe4b8396f4b2a3ddb2ba1963695f46d7d63a358b9a0f2faf8bce42c36b25229d6dd3c3e9bdcbba24f286ba2ff8475c93b98a4d1156402856b5d74ab96893e9a1f35bf2bc90b2e4b292ed7d226e2da5f6b974fd3dc77c6b3f5045865cdb3881059be754841991484741ccd0e6c063eb8a37461fe48a835b21295c889a52f922bf9e81eaff5f22de8956b4654926ab3b2909b97b4bbff927325113eeaaef5a2450d59d9092701ee3e03ed51db5b5204a4b4116a9a001b97f90c23d41a4d0b26e0f4c72229073125c01887ebd9702f0b6d39b15a045f582a73729f11d97a06bad717adc8a872c4da64633d56075ad5af1da5de22ae9ce4cbe741d42a39498a152fa60a025b68b9f3950b03101724aee0bc8e3edb75b202f0e52aec1c2dc6d6f3464e7ade558b6a41ed928a54e5124979d1ab905b0490fb528f089c572b986579809897c9350eec2192c961b295882bbfce0a4ad0d3c0fc476fb2d99f49b7dc2c973bcc299a3e15285085d85ac973ff73680de6b0b43f0037d9225285378d2a0fca2b64160003e8f8255b40ab5b133e105219a9449a08721b5eff0879568bd493ae07ce2aa51c0a85e0937444c344006835264c9335b3dd81d9035cb80caae74c9e99d7eee3470dd8702a9f21bcd90fb5051f2dcf6558c76c504c6f0d349de9f537f826ea3a7c6948df3c35b958fa2800f601f2a36de0e60a5a0000c3614e7d876833790c16bfb62ac885260202681d96296b3ce43d86abd9b9976817a7332ed0f9b2ecf2f0072f6c6ab672d99f0b51c22811fa5242886479dbb6de2c46a62532b99acb6e3b52e9c6239ea39c3286c94c9314285bb3626d23c028e1cb03562c392d6782b4b7b6d78ecea6d36c9c91c218bf9513193652950d0bd762b4b3aca9144fa67bd80a45b2ae79fdca972d0493b9a437fc6805dfc65e76e94d6e542ad6ecef3849bf4d5e93d6fa759ed2f1486754ee362a905798de0ac77afed8e65c8382ea046465591272dcbc9cb3ec5644ff794ebaee742947526b1e584a7cefc13859f50afd5846a9c778ed3d6cb56a1c3bc84ce5f39892c1e33d34fc8a6c6fa1b23227768d53686d5d2b7d735fcc4d9ca577c9f81859149739be26125494457be292006453d204e09f8b1db3db289ca211579db94f4d157fe517ae9d072703aa5ff5dcb8954aab75229945d739efae4461ab74a9f62eb499d787eb924eef162c267368f82e6f6211ce876950607d4e93180b8b9ce95a70877b2cb1a7eff21a5dbdc8a7bbc563eef2eeb91887066b161e343b4e1af5f45a9586023b15ab7a422732771231f361902988f273c7c739e886d53301969914db72506c7fe1d79e3a633fb70bedd9a915ade88af84e2120c1a8523dd4759b5054ed60dfa505f99b28a1b5c042b705212d0339873ed213d980c757262261da93a75a021d91f25b4b37528d8f2e93bd63c28b63e8e611c54a786ed685098b9faed749a9e1ad909e4e79eb12a57d35e1c1b8dda05e3a2c30d47c507c2e71ce844484cab4e53b089331cf8ec7c3b850647de22eeace9670055c37eeb9ef2212c3b5821e6b088909f9486a82c7b060e619a044fcf995b1acdc7e59659cf13c10426a75b7d736c3c0ccf0329f140bfb810eeb346881e2db6377473a4db2ea328981ebc429e1d13fc909d6d94c59b5401716dc7d56636e2d9b9bd1e59beaa3f35b640336152f0d6b79a06f53138da331388517f043365927b31a45b1f1c7a7da71eaf79146c05221388d3efa807ebdca41219b8db9fb158ab38921dc71b74f642e6d63073102ccac314a03829f995493cfea0bf9db29e940dc2acd48f12c9c92c28764e5d92dbc46ac928c17e57c482d9d5dc51343d98e3c201dca829649a834ee5ee976743dd0c4ab07626b78eab0782a474ca1eb7016a66413873c654d2dc1ec366073f1eaaf343b8bc6e507f890a3e88957f6af9b6bcde21da327e7ec03ae5828499e564f35b1750d951287b52ade61a37462a8d37634126121ad4497eae73b6cb6131f45bf5edc5d895741ee8ec75e9a2d8602a4f6b4b429b22ddc884a8fc8cbb422fdaf7892ce7378fa5911ee906082eda979c3fcde117bd8c0d207db2d366919fb03a15a66d9e1c0f9bbadac53b50b9f6a6710fc463f0f3b024a6f2bb7687df04de59e2ba3cb1edfe63d854f4c15382a6f514e1751f79add748b1208469844fd9a0ccdc04a2d25bcb0b75bb12f4277cf022c8d6c60a551313c22c62650e41721523c61135646a36e922b642bcac2528233d4ac6e51e972e3874635e286371448d91e884b715d874205684b312b58ead65c847fec8d23284c42b04134e5cb64365ecf8403896074d8308abd188b56b13951c34a8ca647557f5145453ccd2c3262b5d0a945c9573a21d19a35e977d325e4c2d933622808bec021021e36b8229a7df3b56c8ab3c09fbafaeb7a3d5b658b59962e9b7606fc492ebf1d334404710185361e201721532ad243271ff28c25c40072403eab8c38a07c8ca922e8960cdfd7b6f71584d39405251bfae548891136603ccdc61741b6c39537f559b593c77943b7e24c657324ee2c48937cb3bc7023e51b0df7109efa96c8fc99f706cd7237d68efadaa99f92cde5e62d431fd639d05deb40ce784ff7f09e2ef4bd75c2687d2cde2b8c2b7bc86998234671ac08d5c78a755220f04a015ea6bf2a10d08e2df4f2804a42562175ce2b15226e7ac7569819f23240514daeb736e8f95121bc2bf29506f0e441e34f4c89c77b0d1e8b695b0ce1ea2c05d88b0bc296fafd584f925c4c496429377ff09e4d6faca439ac8e9054e190ac49cf2e5e343e7439867077c18b17207bf5eccff453e3ea713777d2875e30ac4569c43e745bead37cc13fece9dece1fedd55a6eeb1f60757c6552223d056d1cac1c1f7edd9955f394b490a7aebdf2436d8b24f91d9902ee0754eeb7592283e7b42c9f3a49d485e7de77e4c39735cbdc7dfc4646f1ab18080bc3349af66186d4e5c6d1e9fa72aebce0ea09a1d0b074014ded13bc0bdb2de28ee9d64263e30f59634da8d3c66b5958a4d42fde974ab888eb7a2f2dc054f76d6971bf6ffac0d25bc97fb55295beb41bec42ea1c867e0b0e8bb6415d26cee247df78a84be9005b7774c40b1b224b53ccc954bcfe1c230fe78ae35d5ecc02cb4c9d6fc3a79f29e91eca31eb61ef7613fc04f612eb58b5a99c12ad4a85ef0f060c0652c0f4b63b183cc06636814adb8ee7c9f68610d73b9d67cfabad495f975e35e8bc3b1e734b38ffdcd9054625bc3dfbf9e45d7cfae6e5bb93e3735541f1f5e98fa71725f2b6f36ed78943d682b87f0b95a30869842b334bbe3d3b7b1dbf3a3b398f3172ebe4efa7e71756b9e6fff8bfc0a2af62d4dffc833e408f760bb78e8ed807483ebeb31a15ab093ca0aa624f69bd9def027362d646e0facfde9c9fbc39ffe91c5331c65dbd7e0920caaf5f1e24c3c1e8b0d73b38980c46c9b0b3df9ff493612f3de88cc79d4e921e4e47a371773c1e8e06fdfe68b0d739381ced1f7406e3fe41b2bf37ed74a6e3bdc1fe606fbcbf77304cd3bddec174dc9b7460c8c371af7738f8f2bb7aab7b7bf6d6b3bae470b237ee4ebbbdfdceb437e90e8683f1c16172d04f069dc3c3e9411796ba3719ef4f46c3e1f0b03b19ec25c920dd1b8f9374ffe0f060d4eb0f3abdc351b2df19f6a6dd83fde130dd9b26f09fd17e3fedf587d3ee209d8e07692f1d41c371d21b1d4c877ba364b277383ddc1b4ec7ddee687fd41ba6a3eef8709874f6a607fdc9643ae9f4fa69321ec09ca3bde1416fef706f3c4d934368dadb9f0ec6e970048da6e9a4f3e52697d373b7df1f0c6069fdfdd17872d039dceb1f0c7a9dbdb43b4a0fc7079d51da3f38ec4f27fb30d7c1de7e020207ac717000d377877053bd83d10456394ea683eee1a00b2dbb7b93c1642fd9eb1ca69d5127e96f7239eeea0e3b87002bfdfd8364321c77f7a7c9f4e070ba9fc00a019a0e8046747afbe924e91ef4bac3f1fe3e1cf761773f191c0cfae3092c079637e84d93416fd04bfb7b937432ea0c06fd5e02978250b6dfef0e3bc978349d76c6c3497fdaef0d47b0bb51ef601fb6bf3fd8ef1f1eecef1d2678edbdc160efe0703c4d0ec7c3fe301926b0cb7d00e534edf53a879dc93081dd1e1c24a383496f3add3be8a48787ddb4e2724ede9ebdfc217ef5d3bbe38bd3b3378cdf781eed75ca7bbd3e7bf9d79fdec62fffe7e5eb93f8fc04cef0d5b9e8dbdfeb047b1b351a644a7150fac4d8b061130f556de337ad8e85d32f1eaf0bb067dbdd5b44c1f13ff88f6fc92d8a1084267ad34ec7d60a8252610e5ac80c5f3d697a9cb2878fde3cd041a30f9d95ed5cae949941dbdb1c89d89ae61ee83f22f5b418ae239682c2482eec282f2cf3342b3e60b409e7ea60f184015588d43b6dae2fb1d97ceb99d6352b1a9068da7a5c22fe19837d20a6e849d0f28be385611b616e50dd4749239ba5f3c1b5c9d558506a7c693a3e9a5f1989a12db391e7eacc26e19b2bb140c97bab67a50a0b67d6ad85938637462095b19c7b523f0234453111fe032ebb1ed028c7aa7f2c8675a985472123b2fb81ee31bf8dc5da7401487ce6d00cd35101b83238cb424bf8c6f3fa8b887fe2ac55e65cd096e272d8c659f6c06afac136806d1b35d3f6d5d13ede8bd24ca9c81a8e3eac94c7b4b65b3b59709d9dea291b993b66ad9c9428defc89c326e8e1f820cbf41218f0149e8350564864c3fd1642d1d7d33360a433d250dab3b45cc8a862e56da8c2ea65b26e7b5992a90d4ebfb54de250fdd23d4964d51afd6d3e6ec4985023a58f74a573cff3eb35f9313fa5d8cdda6d3f9bbc216852989648ff7e47e7b98390a7520491cd6c1411c072c444d33859354abb3bc82107c0b764954a5493cf80b3c200b6f8cad934b4b2cd9638d9b225b896edb0ee7ca0bf6b5a226b8f92c3835eda4a1c00ff680d1c842c7b1e4f91266d9e8a93f3cc2841d49e487ed108e6e828433f7eb7a1ac7695ecafed14e9a96aca3f79e1b08dec11709d2a8dcbb56c1176745e168c31b0e32dc22b6d96874e2bf4b3fdecc243bad1070127664fdc4299525e28e68f7467fba05b86ce137abd9903568740c618b79ab98db9de6e9edab8a32fbff4b7f515c70d36b65c17bd3bfce83867eb7f574495a14f1498565dde3540b6cd432ac657e975eaac0a0b6a3931c128de3ae9702c6a6c038a3daa9336ae5051dfd95c37b734983bb96e37103fb655e1a8021b6bae8222388c457867dd664e57d5ec1cb947656db4f9d8dc945efa3c9dc305a4c5b682de12eea9079b7a0a166a32f92e93c46fc293ab179e9d0ce51a574c61a715394cb2cd9b6f9be5333c4e59d668d3a258b3931bee5a12675b51ab33e000a924da63542180f9088e364278647920c8c3127554fe6c4b35c456611634bca845778f12a52c4b926c54275b9203a315b1399b246f0ae66bf261b64dcfe136fecb21f17a10f47f757e05ab49f31f7c8cf4d705ec0af55a30e77a09c20f464380c037c1585b680b4acdc3e63ffc5984e962648672cd1d3f992b9e34cea6312b4f85c005aaa8989768dc84350b894d9f52b0d94c9b14960d355e9a54c9d36456a4fc1f4fc5342a8429f390b093450d1f4fd0c25385e275b6bfa827291c1e76ba75610b204267f9bb12a2f44f7bec53b02eed10ceacdcb406b4cdf3d57d011c1add4abeed3d6e800cda37861b98378475c38c5bff0179b17caec7efc9d8d6820a12f04c5cfeec2e548502592296a6f03ac9e6d6487aad886ae4898525862d1cffebafab07a3f778e4aa5563632d784a5925638e79898bdcccb4aa55c050de3aab74b3d5f68cd53e14aee3b49b60fbc3be240f8cd9bfdba7c480651f245352d0245bf10c2f04d3988c1120395b7d5544e511e8f55faa20aa7dfa77ea13432ed54cf2d770f90cd5bf57a8d64a98f07284c30e33b0b5505907cbb9ccfd5502ff669437875ecb141f3c16d5e684daf16296daba861da73c869345b75421ce1e7cf63ffacd83b0885e84b580a194824ec6d9c1821bd2b793fe726445f89cfabf60bc025e0a53cc48c826dc7f504cff14dca9c4f5cf5ce97d894916a72778a7edb92f0faa53f671bbe072980fd4fdb65746b261b7cc8eb18f32a48dbbcdc78ca5b8fcfb7991fd1886c6a1558effecf85d2c03fd7b4902795f8a831a920f3e3f89087e9eeb4554befac0f2f9f01ae28157f48ec65ce161ccb211f02750f73cf2d861312cc62fa27683db84be85ce8032539a709819a52af0bd6dc7b0b25a34bce221e351cd579d633a7c82cc08f1223c1d1e7aeb90301b28372630ca78e90cb1dafb18763b1dcf1132dd2ee89011d4746f0fff091e2080f4aab908d712c760aba3feedf8e3f3633b3a5f24099c08ce4c66be6d9b5c150b7ecba75197b8294ac70d443dd7223727d2aa441e004ee202ecdce9e8de4ef8e3b527eb3058b9fb6649d58156d4dfea3c7b9dae60c53ca729984cce611a1b43002d52f54179716aa33684cc8f208a42e8735a49119c529d2e43ea83c97ab024f7cec0c9dafdc93c5f5f5e911326d1aa050e3d117503bcc91b389252514152d838283dcd9685c04755a5d4ac4eca343d6ca8c448714589a0556955f74d2508344ab3dae9a1c96ea7fc4aa749419e27948d45a483f09138ed88bda0ac61cf4d2a9006298c1f209494b222a7630939ee6a37b9d19e71ad9696f0353b652007942a8c27e8f0146ff3af6027683ab8b71768187c814439cc8255a6b47297f0240629830ab5695951bb5cf6db9cfaa3ccb7b725c6c2fd0ebdd7eb5d6df7eeab3d4468dadf7eb541da1aa02ec9252a9f112e57569ef29903bd3965a820f6fb6fd5407c1f48bf43c438b837c4387c28a9c0637d24dd9b6013c40e3c3e6c9fa5884dcd8f46d91f891d3cf50a150117c514851188153587b657c96c8acc0cef8398178d6e75f59cf0f2a7065ee9611b6c8a9e1a5cef23925f7065ae0cf3dfdef4b0acf811961d16dc2f9b53f6dcdc45d37faf9928c6c9eb4808bb18bf36a29c2a7322f15cbcf8e6c371ddbd7bbc90e85b2bac6d5b265f0a4bc6abf9589499ddfe162e1da8ce2438939a4c3b48fd6135990f4e7145b4fbb0f39fa138f722e25a5d9479a9b48225f0de9f8ddee0133751a35a047f1b3d6aad37a3cb9364b37a2e9aa780a158ed7d55183a1872882b188fc6136b13b0b56bd1be7a3a562fe52a771d7049349249567498eb9c489614a5739582355c32d9da17935e97f4bab658ed20afd1b474ffbd8afdf79a0f479a36f7eb21bd3372db4ef4d01f92c0dcb3038f2999bf417b7c570362032fbd15278adcaa968d4bd9d24d87930caeadde31d1b1fc0f98fad757243ea4d9eed5e40d639d19a94244cff01b7348bd721e49543815bc927ee7558e411beaf47aba46f377ccecd4f12b542428c6caebff36ec0e9cde636475ba8f8c966de072e8e71b026e8764975b56512ecc3221122b85af8a99bef04255bd629c0cf106fbdc6ee82cb3b107a3d03ea3d5917143ec3408c618eb7307afc607334307c905d9fa8b7f671d93c783cb006e5419106cfb0a41171550bea919dc166776a8f9d9527fe17b9b0d24be4ac1e04706f9201e63b2ee5f74658b5857a00a833f6b9d3f2bdc73bf498eb9c2787cb8afaf41a081fdcf6e6b3abc94c70aefe084455d7757ad5679b6487b472968302729fb44594a83d556d96e8b7bba8ccebd10b55d704c1b734a31264fe1262f266017bf77caf83bd205f19798cfa65504ad2a457657cfa39d90dced95ad15bae85a0377ef6be05e3730b0ce372106118449f6288da6390215635be7e9766ef47f10b2f299863c267d72ed981017aab70b07193e18cfef402673078a17c9124fe50ecac9c7058dcc9988d5e4406ef03f1f5e98df01a0fdc43ce784c599158e37fc021f9d17ab1879bbc80fcffb521eedb1732f3b11076334d35c0e51fdca8ae288b09761376a40af6f648502d115b674cb130a30df5a7802c00ac296f1bbf1ace985c4625ef77a226b3e005d1fe568dc573e9b0babe0d5366e79c321fbbfcb60ec167afb9f8c06a3794878a0612c0d670ff0b990852d306dc4f8774f991f245ee051d2c68e936c9e39df719d12d12d32288b8a156e3df9fbc6f4ee5dfda03df499bf60e8a3cbc8aa6ec002da4aca084e9fdbf7e30be3fac1f44adfa96e67bb83e82877f06eddfb56ef89f7a96a601ae90837dc3455eaf55f8fae692d0d395f6bfe70ecf1c2a946f4cc916b35b9feba9ab322432752e62ba07cf983e1647c707d620609e41a01d04f4c9b2e40dc8b1775ffaef7dbbb274624facb7a3e61b110685b30eb413e04c750f31cba9d7e40e0d70297aeb81af2978c38a01cf4e79c87b582a10bc3d90424a80eeebe7d3fead4c1a70abbdfdb462ea3005b541890aa20f900c327a399d01f88249458c32286f3fdcc1d6c1d4dc88edb88b423e11eed960c434500bc2ee3d3c92364970518f53a9d4fc6594aae9283ca3859c4a35b2b8dc3bf9d69ef94eb8f79184784711a9da8914d6614578c0f19ab45356992f2a0d369ef8a27f5074d96c3a456412bc4b15854b8fc319274f621de17ffd6b03a33953c16000a4ce075f2ab881194f236e327c81f9f155ebaa5fa123c7585ecac94715dfdae7c513d3de3acee282290a289a4e00873c7ea6caef472073b67d425f9df61e8b70c2a42fdf3b611b03bf66eba83c00b6a611e551bc82ef3f935bbf36b6678ab5c62f08a564fdcc9ed525777f760c6b072d59f494d1438959620c41f0df25c4d7ce771c4486c6795ea6c8686da41f898cc40d2279debfc8ca35be3e86a9931858f06b9ea1d93b710806681d49b30a2066c9722c1a733473195106cb6584fa7d918ab4d691a20ae17c5c077c9da82d10a295bccc4cccf00b99d8929651ce3987b76b24c2a7a6e2fa17c628c651e5da7296b031cadacf9f5d92ef5a8ed52e625fa1c171912e9f3fa157fedfbb6343d52a398d223f5b6069a61a732c1c43c07d0985fa64b19ac2f15ade67da9864984267caf86edee7af5ce6ead635b8456857c9445e1b9d11aebc4822a992adc2522f67a07af81f1dd638fb1dae15b617b1d0380fe9c52dc23c01a4343ed6a31ba2ffae7ba5809b2c232d57c307874bab3bbb8e607d3db79c2ccebd8991e9d85502d6c6be7633b083e6c8c418f7674c44ec757739e21883bae6f4649eee8447e579a6aca5edd3a8aa81319a4e2cf8badc8eac31c853a82be95991c6c601fb0a29c662169a153dd6c4d7e15fc696f299713bcbf623dfa27c88a22f3819569a17d67236ff7bed216b8a6da817573a75c0b888f834c5edbb20d481589c4e8a848fd08164e2947a0b025736ae973722e8dc085f2894ddaf7c04e767576b26bb9d1a28114932c012432a773c1506a192da48198add1e1efbee2fa20ce22f2329cf050547818d4ff7047bbfd0b307c1167f82c66d54aeb16bda1bc8fa9f5ced03b84044d698827d07ebc9addea6a637d4ebf945dec4c275e331dd66667b7e3b88a7b60cb980b130550896446049c9240305dd2288d39a3fb9963fbccb1fdbb716c4136a53e21dc1599ba8380184e61cb098087878ace84546b54d8c31329c4a3ce77ca191c78b08d9c96fa8c9c84d44b27b2c195dcb3aa63b730d97b2c49503c999726393c0d1807c34ac361fea5cf59971e5794cc0eb3d73fd2e747cfe2c4b8151f613ad9248d816b41dd41b6fcc092ad7ce0a63f12aeb5588fa93e0d2c3d5be95f301f4bca9aee05befab9f287f755634dffb4cf3eed0f86a5e44606e3aacaa62cb51bae9faee121a88af96d5f7efbc9498ec92f75ebe602ea06cdfd5ba5133287e8d71da21f204895848f28405dcab74de0d63d669cdb6488fe6649eb50f9d1ab8c95be5beea7aa14761e60dc0ddfd5adc77975769da72a94a74153c2b29aa7a46b250b1d68f4e0adcf9713a0be5cb72812f8d0871b68e8ba7542c737498015d6a69a488c129b5502b82a3d44682856ee9c1e07bb94bb315fdb5395dd779deec86ddc1ede9ef7e07af5c660bfb4adf2e696792cb8bbde36bbebd65959cfb33bed4207f5c608efae5b961cbe1b2d7304a64255588f7e496fdb46be289e5c44fbac6f97c564a3c4aa4c3b0c5249385a56a5fb9efec1dbb3b7d61b54c692dd8dae19ec4cbfca28d39386f8e934a54b9fddca401baa3cad955d69ef965ab946973d1f7c5880ba591618b75843a7590ea3c12092beefa8584ed5bb1e547fb31447fbf7764ca587d4f71fd26e56e0a5a78212285404c61bb011d765a25bd797f80933688388b158cc321442c89e22abe53ce03b7fb0c9fbd72d0b67dc29fe29bc3b3461fec274ed20e20bbc81964d98e2c995d58667e905fc40b50a262403a5189e368ba7629841fe47dc6d5ef07dfaac060b28346e6c722ab77389317e58dc1ee08aec27ed2d998a3ae6c3ad7155b2601b313dfd3a4ccfa340b45e89f3330b35c0e03aa12066796279b124feac840d9624cf771e85e755b7764ab407f34f9da4b3f4120b7f498b1659b17214e33198ea0fe86efae9846a423e9261a3962fe7a13c75b83b8aab19afb49bd0cd3d76b21e913b399dfb5ce856983154d5786bbb35ecd8ade32c4fe4842da62623a74c8cb26e5aab5dc0aded2c38421fcc27e9d5adbba1d388ba76127deebb20ba314ea58ceef151265f16e0fa96a93f244edd121d90baaa4dcfb7e31476bb0fe26828ca859f0283d46f42b162d50b0fd42f9bd1238e56b8e7d217c10fd5bef40722440d665f1b016a4f684c1e95d6ad95422270d41e403e5b60220c6e0a28d245b2a4149d5c56b404ce9a92a409ce1b0a90ae581f56813072fca211c09e90245e8f1be8959dd47a31c1e399a72b7a0551e987819e730c14e20b312a2252f3983727b5b9681ecbe6e1031c7dd9fd12ffdbfbf2c18f4a2e59ac12cf8aada75fa7bfbb4d3640ef4bd7efec25a80fe6eb85766e0c2396e9655600d7ed8ddad416c15a4f00f98b6ca537364f93a193eac63bf89eb95664d3b7074f697052ca3bf92beec07e5631e6b829b25d674e7d0cf5c0efc03d7125bec93ed90fbb2cbb62a66151290751fcc3338ef8195b2d59892bc1f7705bf34ea2db1f3cd8715051f889868f75fcfa03c2db2edcc7640fe2707c590bca1944ee14f2fb20424c0d7c8f54e8772ec379a9d0e6e4a1c422f9e75b2a99485e5f2c9739ab5fa18a394815175ce3986a91a3af17a81327eb2512c0efd9c5edcc2bd005ef182b0f2fe7c9ecce3e7ce8ed78cf447b4bd74313534348e043599fbb44cd76c2d7c3eb36c13d3e7cdf0dd87703df7743f6dd9061621935104a1ccbcaf5293d44bc9b2dfd76f888680f211ed3db6dec52d2abd5cd91c0fab5ba39f6d841ad6e03bbdbb056b76185a38ae795fee3789b6c32c4e0ee430c2b5e984a432d03a0ed34598c5c8821b8edbf537b7a74701bec7afa6edd6e03d5ad6be9102abd76baf6aa2bbd847a760f5f944d46a642e65e49790434d7989d1dd0de7607b45fb75b4f75eb852b913bddbaaa5b9f9903eb1d2e2000274bbb04a2ce7687d4ed6e774addde76c7d4edd7ed3754fd90ead80a1d66992e6ec09ac06c64ad285b7d55c01c8356af35acefc9eba246c9e8431cbde6d8d5b46ae383c08b1e6e79d17b5b5ef4fea70e48d0f31df164da4b4c6e24b99b78844592fe0d2bb296b1259fd671d8901731a7bc329d2bffd54d2bfc54c42bec38baa047921dbc6b8b650eb25d3233c555f665ccbe4c0979c849547909a6d78bd5edb3f5dee0452378a85de1a657a55bf759d96d67bff0cd6d3c49afc624629f8b75711563fac4c693eb75f0605aee826c83ab7b94f902b5074747457e6d3a1ad8fdb91144270a68adc2b8f971d170d71258e4a605b8650985792e2d7e8673e5249ba0670fe908041c15547310633b2808858f51d43619d6707beaeec479b853b2f3493ace262cff190bf271d0dcc29ea2c485c5a9f87b475fcfcff87937fc74f16b97b85e8eab02e5e7f93c6d34eb60aa1d686b2403e9c9ac099f345fae88ddd00906dc60867b4d66b202cb649d2246d9a8732f8e90f52842c7240a0fe5b7550a2322eb009a03f0a86238b67895630675e044e2518e49f8ff3d1209ee4a83beb3fa8ab11380509fa8d5a39bc62dcb49fc93532e702b010db32b3abeba9c2735500f74199cf2e97198f038516e1ab265ed8629dc8abcdabbbdc3789e33bd47825d835e7a182b9d3892412617b7b45d42a4324ea70248c4de6a42857e14e9af313b30a0fa167f7b974b084cd1f2c25d99dae9c1cdbf7fa9e505c03c7e1eb3fd7f7b9bee701bb75cc3b70933256933329757f22e1269862959966a52687504d0c1826211108ab5f07de663b5b3c42d630a5f3f3ac258758063feb77adbca8cb3febd598ec71e242f1bb3bca0a7df79a79657ae5344341aa5e3645dd82973b868a8f6a6bed3e7b5ef61bb9c28f7ceb07d46d3cf68fa18d0f4d4834ebb3ea42a0f65cf166bb829df81d860ad314a8a28754dbe74c3dc8d3799c1d54e6e5956c962a784a58c4008ddfd38998dd7b304f99346d3f244e0e9e1af29d1c9732cf5d23179fff9fa3aa6fc284501b27c2c0564acf27378e8b65dc14d99cd7af690625dbcd2f07ed9f7f1040e1f209293c5fdfd7d7f5bb903b1d93436bf6a182e7bfab64d67bed07edd56d64ecd06fa1ec2dfe8bb938d4c3d0b90d322c3ac07efd96ae3ec7a01ac7a56a4ef49c1213e961f4ed2693667c96c58b5f8e2c830b359a3c091350c20f8dabc9fa7c10537a169103a9efa8ec8b30eb58ab245944ed408c2cbd7be45348d48a719060262d6790cf8c4228298961f300f13ab718200b83b83af80105ca7c0f9b7545b7c177823747ea39ce2b29d109e12205e6b56d2974a4eb4ed2016ea8f088b9973e1ed5ba10c0c6c3b5a403d970ec407d6084b82b1bbfb875dc9ebe453ac9eb49e93348335868d69f55959da400772ac917b6d4c46c5040a5a23484b0b5691f07d08cbde63df51caba3bb64f1b599f533b4b16f45025e2018c9fda34eaf0b01e91eabaa35a64aadf1d748787bddaa4aaeb2c954296cdcc53249d494899ebe003f7bf9ccef4a28e7f7c7a1706143cfddefefec1a073c08e35a0198d919f331e457c0e0bc3e88e023d568706fd0175006b3659473406d8a7370ca688c2f16ca55b0cca9f67be512a93bc00e9d19457f0d7e5ea4acf7b82b329759d6d83c950cad772e812a637b2e8198eab3ffece369c642bb805a6c40a4ede8a326d7e6248a791e261da5ea4fc468dd7363457f8e53330a459ab3464967688173197f1d15a15b4c85035a93efe581b7834858d029007c87b78ceabc500ee8d58d6a3112b5186e4b94575afd11f0ce3d885be0e3e039de0b7425fa72e4a11919aa8503f7ed34c3fae75cce7f13cbd29d175f98f9b2b1419c542114c51323d30e54804e6b534494a95dc3a8a40f1d6d2e4a4922fcdac22a54d82e3f840c3cb6a9350696be865976044df8c855bc3eb6c2c131f804098a99a8ee752f0d059ef88cf8d836cf9a6f52fcc3c9c7a4b137dc28bb3477d6e5d66cb3fbd7f89beabaeb750b36778b9fe199e7b81ac55b6acf20d6c73d676dfea4db867efffa655bebc8d91dfb626fc1e2880f14c31a340057d70de088d60b854d08c7a354fdfbe0d3fb0955e8ecbd6dc570cb2275f9af5512baaea2421eae317ff1f1e9b7fd755b40100", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "state_storage", + "source": "0x1f8b08000000000002ffbd564d6fe33610bde7574c2e5d1bf026dba2e8c16e8a1a85915e160962ef16e885a0a4914484225d7ec47103fff70e294b9614e5637b5823882d72f8e6cd9be18c2a9d7989c0b74e5b961b5ee14e9bfbf9dc3aee9059a70d2f109ecece803ede8e59eeadc38af12c33682dda456b6a5d369fa331da2ceaf3b911a8b2e71089d4e9fde2559302155a615f3732986a958bc21bee845647afb4661dacd69be566c5d69b9bbbe5f58a7d59d3ff39f85f7e862bf8b4e81a5e2fd7ec7679b7fcbcdaacee1a931f7b26abdb9b3ffe647fafee6e9afd9f8eceac333e75f0c506d94a6ee9c4763f83cce8ed0c829c414c387e04096723c2ac5d4bf60ebb6b871af7f2f21236a5b0407f7e9b5172287e07ae4448b0104aa802740ec8d312f456a7e50c0ce61253177682d931972d9a8f1479eed0c47dc92932f7a8024c78de1a7c10da5bc00017fca6baaa8423cf17dd50d7a152d635f829ec7bdc3f8f37220de28d34e6b560e311d7e1da106e9360e094fec273c39543da529aa86b484baec83f4a8bbb120d12039e9f22ceb58122a484cbd4cb582217cd666bb4de622a7241369222102e2450908b20c951b2e7b2876762964a9fd14a8b552b37e2b63983ca095248e1a3ab8d2fe0e3478a1a8142e64173ad7000a7651633c615880cb99c41e26b465f2bc8345af5c11122d5072942f7c2ec8127da07f1a4e63d7e81d59687fb4345603bb5900b732a06725473eb66fd9adbdbe6e4cb097f31b95b9f48914eea8b3c85dc53304a38c1a5f81727c38b0d3f58512834d30ef4b0edcce79cbe8c6383c343b0e9a285a80f9c4fda85f039c747619dfdf55959ff36f97d0835eb9d8c9d8e6848833cdbb31a6732d677a6edb9f7b2e9cafd7f89f4fada28854a3f20737a28d96ce48e3ff53dd617fb539f4737fb83039dee3738d4e981839d43fb74780fe75e853e7d5f622f57b9564ce18ec5893739f5c329f0f41f4fbdc0beaab544776c425790d0d5d63b56489d70c92aefde55b227e1440e350138bfaa412fe2e3744cac7a8bbcc6efc5884143ab40c77a2f0f2cee30ade49e71c722008bcd3374cf4987d1e16ded9a0130794db017731fe4a39ec7da9e372ae31b776df17636be31133d4aad901d5917c3b9f8173741bc796cd6a48197a1bd3b6f14b57d9a1a09b7f483e64c1c543cbe8b11237810b883126546951cf65ac0af9fe398eacca458a1406b69e9d57d1c58346d2d4fc3fcb261327e08d349ee210bb42b6adfd689b445a4f20a339468e44657dda9728269c660ed2bc19487d7c648e211531f4d24dfa3394dacd3cce7048cb6ec4646278f135dd1987dc05835df5c90c7c6b0383b9cfd07d46d04301e0b0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "chain_status", + "source": "0x1f8b08000000000002ffad55c16edb300cbde72bd8cb600341820dc30ece366c87a0eb61edb0f49e28121d0b71a44c94d37545ff7d94ac3aaedb0cddb0a227997ce47b8f64a6d3295c579a606755532348ab10bc054184ce83af8407cdff04ae31469b0d68031b3448fc94ad16589745d1062fd3f32a07eb40941edd68caf027a2ed1e9df08cb8ca27dc0212827008c85f8dd7a2ae6f4169e200e981bcf048604b6e08816ec9e36e028b3d4a5d6a1962c7b1942ee15411a0464a4445e3c0add9edbdb68640ac6dc3f4cc41382d8ce71a0774b1caa6b66b51b7a5410a036b849d50180bdd545a56e0b0ac5126958e9d412588a3d1b43589ca26b0d146075efa17aac928c92df6ded2b274628737d66d8b4256429b6528da10dc8d80ff1a7a26aeadb4144ab9a018cdba50f2aa28d039eb66a3f8583a8d463d8548bea4a8c0eaab70dbc0dec2be59d79a2a48bc423e8b9f32263181bc6b98fb79fb36372a6507f25bbc85bbfb2330db0bebdaca6da417a6c9d8a07a04ef3c8296760b2fd91d0ff3cbabebe5d5b7f9f7cfd71797e70534efdec207783d7b19f2c3e49dc03d9f5fce17178b07d4370325a8f5f50124f02ad943aa827f21308a24b356df1cca860dc76e0d96fc980d458757a437065d9ebc8d420eacec8677903c04cb671dc48ea776e9ed3062fcd49dbbfb94d673e70bd66c41e85f86a508fe2be4eddd698361a53e07d4206d6ff5e35af46588f499750ac8f202d6d6d63d9e67f893f799de0f7bfa987d1a32fbe70ebb599ab4574d538711f7930bf0fac3eaacdfe90a04cf3747ef9d3d68850a4a3e603c2807346cad4c3ce3b821c5495d717e572b20c40bcae7ab74f8a3e1031666c7c4b06399e7e4ea813c11ecbfea950efa71d9b2b028a9b9fc849fc32b9af5e7b6fd78963d663186787b8a22dcd45aab78cb307bbcc8f98b8630b5fce7917bfcdb73aac1eef35fb6773ffa0df8fb79a121070000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "reconfiguration", + "source": "0x1f8b08000000000002ffd5595b6fdb36147ecfaf603b20b331d7e9b66e0f4e1334cda50d9a4b91a61d8a61506889b28948a4c74b5cb7cd7fdf39a42453b2e5385b0aac7e4862e9f0dc2fdf61b6b6b6c85b3bccb81e334d6229523eb28a1a2e05e122952af77fc35fe486663ca1462add235424846b6de19062f563ec8609a337b680b39144cf443c5652f0cfacc13e1e533182f3c8da8c59c0bebf91cbc4668cd089913a4a15cdd954aaebc1a029ebcb06818fd58c68930c064c29a9b6ab67feb87f834a6dd7a9351f0906e40dfa401c8d6369c3730b14dad06bb6fabd61a0825474b4926ea60dcb239a248a69cdf40a52c373066cf3c90a1af02d17110ab7ba3030559c41d0166d740f46f2862941455c28d9463dcc647cbd9a0422a499d056473e56aba9471422148f19c6fb0e4a2698e67a351158a121310a9b31070f31f29060d4100c38cd5c9a7b0d5d821aaa0ca144b0296113198f7bd5d1293763f7bcb52efae472cc35540201be92c434cb1868557178bcb4381ebbf7da281b1b72c6a68728d6eb39a69a244a4e7a04738615098e1fa7db80d8df9f79056fe726be9659a26be54a87d21ae2928fc8b459a2a1f8fd9a7a28fe9acd02b1ce85289a089b0f996ad5a724be84f4449919d5a629b84fce4536ab2a1f042e6f1efd8a2372891a441156c012c9a5074502ad03bb4a4b67aa2c705f07fef760e08ebf76a79fd782b2bbe0f08b06e3846b3ac4c8f314328d634fd4d2aa181c11c756696245c21439e143452fa434fd300207fe709367158a40ee25b4c9ab5ac4aee6a2300f21f2989fae95faf0bbb398f0861cee9f9f1d1dbf7a7fb177797c7ee61c4876c8cfdb15fb3d72d5d0e25fb02ff9fe52e37b2a139ecebceafb7442873ce366765572050fa62953183f9fb450af824cc105ecd384c58625a1a0d3f383e3a38fd1fededbbd97c727c7971f4b99bf0632e78aba9e4530693c47e19a3a484bfa21d7e3b30f7b27c707d1cb93f3fd37d1e5f1e961c9f6d943b07df51e7e1c9d5f44871f0ecf2e4bd6bf059dcad7866f2189555c8c48d1f3fa15cd7c56b7e5419fec83eb24f21a3254565e03bfe1ccf74a52f54a520c373fcb1d3d850e2946503cce2888cbab50fc0445c71ddf79bb24b5e80a6e3838e333eb343b31d9f4e3b51bf492e69083e103bf94891a879bccba8593bc13883f44b821d0ed62e70b68d2916b48912be6080aa7d3bdea1109c0424db9660e61b877e061f1a341df607b182130492aee9ef5a34ee11b1c3a261a599e44827d3251ac98ef40d00b3bde3eb0c19b13c97441ef2ed98142e811874b06832273dc5c669d96cce876b72b757298ca9191cf6ba1deed54ef9dca7599bddacbfd256829fc144dfc696fe1cd8ac6bb84ba6ca595df5c405c28c6cb3aea82a7ea2c6fab6f8533821ef856f11bec10907fb1b30a663864d5041096e290c4639a2dce9da08342c7a98eeab1b45952150b40a9c40d0e99a619178cfca1b861ef98717558387162d54422e682aa29ce0bb05485d5e6d12d2fe462a51413a2e9d16f5d36cdbc6e06940937b73addb61cad8d8c25a9d994d96b1b675f6e49779d5082893667ffbf007a4fdd237e34fedb72b0a6d5210fda16cb003f7ab808b70772c7473f55327fbe9c6a77adee58ab6d7472abf2033294320b7cf6887de2dae856f12f9ac29ab9f7ceed02c1d239df052c4ec145dcdf27a756bbc151cc68b4bf5c443c25f17b6bfbc09c1bc83a418ab4b569d0f34012210d4924e4eb0cb025680620b3c0050e24e2eb142631a082640e9c81a8136e811077d8f2fc3110fdf52ba9f648e8d6721ae53c565016a05f820430b89e22557b42751bf344316395a81edd06d99941057a2e504029e4cf50422e4ea3512687348b726b9a23ee457b2f73ccac42b0e80612b05b694a1d3c2cf7275dbe2bf8c50e867e32232ce70670a85b0a011a39986f14159ac6f30ee58584f2cafdf0fc0d644e4ca1430dc2d74f1ca67766945b1177c2d50cf4144f60b09999879af5637b05fea4d6485cfa30274149b098d0145028981468e7f75f3441b7d9da23d33187350f741d590a470d73b831144bc88753a201907b7e203214828b759ea3474b0d9a82428da61c4e3b148669835bb386bdcaa886409fbdfdbaf18714140d99e55899681e01b572095fa460cbed6c8d93856b2d17558094e058bc20c0daf4962e3a3391f032b799e11340cc0b8bbe62aeb693c7a4748ef73e8eaa506eab9e4b13ca55752df77782c2eab782b67bd42ae8b48f8175375bd81421a8136b3c82c6a658b54ca2a112718a02b8318a0f9148b1295549102fc7663040cc5c62f44e50ccb5fb314756aadf5936de6ab6efae65fa5de87bbeee85c36f1dced078427d961e7606939dc5473fe1e25dbf8a805b4a48110f9b9b78b916bd4d6898358e0e7dd72174fd5aa915f937f56ae0f05e0b10f7a3cd8db456f7e0d4c625f7ce29571b06770e82f678b42858c6a8c8bd6fa39463dec41887ae2191ab5a2cae8af26e20d9b21d060b7b39e413503436d0dda1180b1cebabd14d89942b6d2a912b5a8943b1986005df051f3ada7560c9838ef3aab4178a0611c8e6e69aa508c4f746b84beaf47b2e4a08ff11fe2f05a0108c327dcd27daa509de5f945dbb422a3ffc8974118ea3bf9a1533bfd68960998a90b0ba11f96f0baa6772df1b8ee2a2ea3bb9d9286c5cef466355188265611e8735cab3b66494d26e37fe01b205e376eb1b0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "governance_proposal", + "source": "0x1f8b08000000000002ff9552bd6ac33010def314075d1268e33d9d4a0a5d0b6da752c2453ed522b2ce9ca48410f2ee95ecfc98d8d056d88b74dfaf5414053c93368e2054042fbc2571e814bd0a37ecd1a66d0cb033d6c29a207a2a013d3428015803bb0755a171f07d01c27a0f4f4d607fe59a4f8aa2c83fbc57c643fa3c25060c045ab86e956f205073196d32c5805b362528232a5a1428a921579253fb6428ec88dc008bae84b7809b247ca2c13cb1d28235ed58368bc5d5efaa39273d4c202d2d26f10f11ddc615f73869c77d90a8c2587155eac90716ba8732edc1e1d821720f4ba19c3e1b150a511ce0188590e728a94058a24b65db9c19145a9bae61d8734bdfc4b5356adac598818e0e54ab76093a9d2dc6c4baf8798d1d1edbd35e840f4f3a5ad02c83fed3a5a97340a0ba097bb8949c1f8f30ebf92f665bd8df2d0f22f6edde7d06f26195fbfbeac9f6e5da81ffaadd7a3c691e273fa1989b6756030000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "aptos_governance", + "source": "0x1f8b08000000000002ffed3d7b73dbc6f1fffb5320eefc14d261684a8e33f9519626aacd389e3896c79693c9743a08441c45d420c0e22159cde8bb7777ef817b82a4e4244d1b4feb48c0dddededebe770f7ef8e0c1bde84174b26ecafa7979c9aa2229e62caad8ba62352b9a3a6a962c2a8bcfe7cb242ba28b6e48b9a05734332a58735556efc7d10f65931517d1babc625594d5d13cc9e76d9e342c8dce931afe2e0b9c866bcedbaa821522b62ee7cb4febe8529f2aa0afab725dd6f87b85ef5905e3ce93f97b1c5837c97b185196f9387a5144499a664d5616a3680183b3266aca685eb64533c2c510583701a0e4e5fc7dbb06c4595ae3d07316254d94b3a46ea2045fc30a49ad2191e0acb4ad125c640c3011ec8b06df5e6629e34317659e975788dd02fe3bc521fbe3e8b5d80592a388e615037a4489821b9d5f239d729c661dc474ca47c772ec383ad3c8e2a5062eaab6b54c2e1961b6ca8a6cd5ae3a8af20915fb679b552c1d47a78b8538e479b95a97051d3ee25bb7e7f5bcca804000ef29a1f35a6033bbc4036c4aa2700598747b22bc81525152a4ddd32cad9174d101718aa4089e2c32464712da6656993c01ec94b22abb042e5a54e58ab6e5638659325f6a0f70095cb32cf26b3ce616d910b6225765385c61c83e24f3060696407d71ca0fefadcab4cde1c8f070e24595ac1872fb74ca1f6842f1cbbd08fec00ab07e3a9db2aa2aab43f359b946b2580febeca260f6c8baa9606bd3e92f6f59be18456fe9d751d4368baf6e0eefa9b11c09be1e9e879a40a7f32dd03f673787bee175b65ae72c5e25eb6e117af47db2f6cf6892f39ca9c167f89b8b8a4ea03989a0061ef7f9345927e7599e35d723210d3127407c9535cb78ae5e3b4868a0e76556f4bcee0e45c98ec2a2932fc9c87d0b556c5e168bec42887ecf48e2b90defe108630eaf6fe075ddb0550c2a0db470cdea9ea1fc0112633a25e5f1b49f2e4db66280c76add33864b9d38d7870f1f92cea9d76c9e2d32901d4db4d212145f51365ccfd4ed6291cd33d4097c0caa605bdb1150a000e8d9d98b576fdf7df3cd8ba72f66afcee2d76f4e5f9fbe9dbd89df9e9d7c379b46ed975f4447d1fea186056800c151a80c705dd401a07c817bc8c6908d90c6c387b1befaabd3b3f8d9ece5ecf9c9d9ec59fcc3e9d9ec8d5cf5e070d7bd93c16045d95e2c41a9ae408fa25a1256c6470769d282f42032c42f4f9f7ef7eeb5c4ebd116782dc16c25392c97a2ba6385a3f0883670d8de233979f96676f2ec2722c733b9ec175b2cbb6a613aa8d7755235f2042e933c4b9306765ab3c6243d2ef0e2d5f3f8f5e98f1dd91f77ebbc5626831399ef871b6a108a32bf44a3f563929181c05d01634b9ad6fa5a9caf4e5ec678de6f666f4f5ffe70f2d797b3f8a7d9995cf74b737fea889094b8389151ae1a5d9b7bf1c00776d2a07fd541ff9e3509102441c6e0e6118c135f81380898b75982453c78fc6504c6b83236f2fdecece4d9c9d909f2c4c9d98bd357f1d9e929fcf2eab95ce9ff3d2bc11e96b75ae5db93b7df3a2bec4f0cb50087b34a9af952b83fc455ac00378303cb0a61c1e1a498f0454a70a2d679364769c8c8d7fa1ed4314953f1a95224eb75096c849e1c82ab91e6630d4b45731092b359fcf6ddd3a7b3d9b38e61f7352c1527ad244992064ce9790b08bc67d7b50ed725f177b39fa6d1259b03133f69bf3a06d8e7f725a0589ee2fd431f0c2260ef7c3c9bfb1aaa6f611477d72c4399018141a684f2aba3b648e910bdae397885804953812f4490c18f68e78d66f5deb01a1cbc9adb586272a083f05d680237c66087eb69e7113c11e6c8b5e2c7239a7ad36de4a96e316b2356e8d018a15640971a25f8392b408dd7e42ea24f888eda3ae581c3b5a1b2e68003405c30705bd5823406a6db810cf7dc0274e0587a0800ce72cc19376e96b0e76599a7c05afb075f8dd418e939c7d2a38e4919120776a304141937c4359bd7da10413281d91bf034aaf43bc6cf645eaec13f4a013a108a18433b215c2a46bd3b8de4b1a897527dc559ea2e85c4e2eb507cc0bd763dcaa9b9436c19149f2131a8ca033f09d92529a9e52977199fa88d8ea27358e1d846f09d58886377b5cc0021f681cd5b5299188dac1b526cace60a83d04bd6188b7186e9a4616caa2bf89f3c39b226d7eba4c62804bc2c588809f1b31703a27c98339c828c98fd0bf468b602ed05b251d67cc5155b51f8a113e544603493e0be9538dbe4e19bd1a50d0f4e531cae8c917b5f47172038959493ac00ff070218923a74a67d72d72f1402ac8ba21589c6146c00ca5a98f1c4131e1e778cc9055ab8bfdef9ef6804974b7b36729077124692fa609b461183a34202c1f9ea4126e52708e1d4a0852fc64572f845518abf47106f21a5f847311fd907dd7a78664b5ba2b38e8c1437728f499906d91f8c47e206e48796a8b3eda8e2db1db9e8bb120b7c80586810031868e63607150c323c2555b2e53ef544166747d876a54c8ec10e0e4ff66cfbb7361c646bb9b5c40c12ec5098d30b614ec18112e653db71d6d410078f4db743787064daa32e04271f2c892e20ed52c873e133d7ed39b871d1a22d3819e2ce6d18a86dd8b165b4c7478d6c674380f63186023b75f307346a088e11d1b40e3a399ae9b4626b08a1e13f55d3211963eab302b52d070dac5d0c85cb867fb24534f8847dc8eaa67e1258fc78f0b50d60a821447c0333e3a6b4171a85f6f38be9a3e9891caed17a9cb5c130ba191eaae56fb4cde4e08f6980c159dd5bb510369490c7ba8a2ff2f21c354edbecb0d3b106ef503bd30e61c074a00d1a591c31d23012686bccffa200e718a2cc7f49fe6d30ae409ee589e90ed131098a4c029ad2229d4fb298895850ad81d010b6b5b56830f9b03f943eb9e56680549015461bb3869c256275cee609e65bb2e6d35a21005c4bf94695d1bc5c7150285799dadd2e12f59b29a1e1366265e1db274b7c39ccb85d803cb1ea899ba83bf6ccdf418884c76f0a9f6f9723533c3d14354704e8d90dbad90d51e1859988863c3095652dd8157f089e43d01f732868eec4efa48597705db60d0b187e5c186ee7d5f5c0db8aaa6668e29c3d3a1522af0d480c76851ef2f1cd75a47fefd1d4b6a36f62e08446446ebf0f23e3ed31d7417357df81e322f3733c9d85da4ff7880b1e4663acad96b4c207c7fa0b8ed132ee1c9dff509de5f11538f7f6cadfc7d06f685e1d2a6146a8c7be72d43c86b5634d07e4d8470358c7f7b80f8cef50008cef711f98c0b901a4c01b8b645c576ca0133fb05e3a89ea18c6025cd5f8749721b5e4fdf0e5c73ebd682a3637503075c07696642b6bd2c7ecc6a09b6e8ee93c69f27bc19ad8076830e4e9d4a0c068fb338e661bf61d0751f723e8231c21082ae257c2d0b7640f868143fb75a91858d489119dea934a0ec90afacf5d00fe73e7cc7e0de622595929094820caae0199534348f44aa47ac9bae81934a800c8d85bcfbfc8a2ca48ad48168be7e0209125937d842e951a105759d340cb56b773cc082fda1ce6713c65002f0e0824b1baa663b21ca8812789e3c6a77d79896d52354eb560c3303fa4dbda2d54a08a3704fea04af92e29f8c22771b918c8519ac6e426ee9301b7b353e4f294e5ec027324948fa9061d7986d1d191b3d428a21e88e9342ba8181827d545bb021c07bef2eb50b79646318e7a5db8d9f0b6ec709e1379ddf3128a08c9aa0bcbb636bebb195e0a9769ff3095fcb0235d9952d78a4e2097b086ae36411d1f6d6f4a4dc310a4784fb97d68d8899dce006bdc407428736fd140251b7a589595a97938a21f2ca642ee51a41a15c02d87f3a9b10b23059b74e8616d8c853eac336e4960ae01eab32d1da46d4e87cb00afea731ba9f3fff1910f9fdb1c8e5efb0f1f8dd4eac0eda2d2ae2957a94fc67e7aa962e8911356ca570347738d4c2d65a10325deab84fac1a204dbe0a09054814ed64c011887aecc0499b3152f7782227f3cf93f693a9ab201f4b1048c6d58fc99e82f8cb0cfa5d6d7c4542c2a22698a641999b814aa2125b5af81d4a03b96158b9cf6f13065e2a76850b1ab04e3424cff6675dd022b8373070683fa1289b817b0c8823163611c7ede5600355960cf099f0305aba2e6f59721d4b65a734db124a04983db22cfdeb3fc5af5e92560e1fe81cd8bab359a3e6c6a405ae8cb0ab288bc15e58bc21245b3950b53be67c0e87cfe51c43b86f8af4f54e3d0b12d5f7484717784a4f58d6880f7b3a1901610cb823766c0c0f4a81c91d5715daed8602f88979317ed76a1107f20c171c5dd07edd08005d4432efb2cda270ebd2cb334aac046a4483e12cb7a6c8aead67ba76d19783e8c0e70a59e3cab562151a199d3ee69aa20c7b81a6f6d4365bef5f6c3d9ab59991ad3bb09c2eb8916471efcfb94633fc503d0a44ef2ebc95f3782f426d88231a43f81676ecb577d74e3488d7b468197e8cdf6738ce9debaefface7fc309f4c69ee8e6ff204a8c6640f2b3b6af9fb961d33b802949ee062a8e9f8f6c33b02b8ebb79f6e10266a0e6a839e88194a0eba7877393c8b58477bfcf4e43eee4b01b8bdccd5b9f15752bfa27781fa634c6690907c41f767127b5f3686ddbf6d6518f54822e3ec13528b7d14de79062ec6838d2fa6c7eb9b78d2c7885ed6683bff889c829632b56025ecb60cfdcd49852cf230db3e1969ea2d1a239d4362a56c4821a699d4d0b8ec05f6999758ac60d0ed5e39a15f3bc4de1a818d9cb187d9c4beab7944fb2423c13018c664ca94e271a55f291751743c853d7491b0288be4486015796f39e24d15c3bd0fb79708f437de113d02130d1c2fb0a6160fc98a67c9e789e15c2ddfc20eea578d992d366db580f0beccbb26a3e9f67d5bcc5a6a1852623bcc5d450736387b18c758fa349af9c1a9db5be885a5ea4b96328d719f1f1162199747090669e11144c79eb7d8e5ba38be3f00f16b4492ae01178776bba0e7d4e1b5bad9beba0ebd6ef0c06bd079dd1cc379ad5fb3dfc2cad1a18f4aeb4c2a2897bd7b0b4a323253c07d346eee442698d4b61da06e9eb7a517e49e35d0f0121a39777122d0ce2ecb58e823dd8760c07748b656b66ccd3b9e44f0efc8bdd7852ec9d671702267e1ed86edb66af4cc3762b4c6d47f6244dbd2da32a1d9e68296abd66ab3c5f6c74a5f612d1be9a6775e376ada29e367a56e9561f6f3ad5f30e7a7b2af56e49b0dea5bb79083069d4b298df68ca32ca41d9b168c0c61763d1370ae6e1a24a52560f9d4af03604dcfd5890d51554d1f5eb53310148bd9a86ee0790cea00ba422a7c27d53ed18c511e1c944ab366f3228e2f30ce5d89012a3bc2f1c3ff4b4067bd606c64b1112ece9bc658b4ec51a4831795308a6bfdd5dbbe445117543e677d117d2146faf337a1c9a9eeb3b43c7fe98652a7383e6cb3b6dd06e5f232b143a61ddc25818ba61f11b7e70a6d2d06fc562971af9cb8b24cba52bb9b62e4b697307f8bbb8974686087d76cabb16a55a9552b0d73e89168ce408f028d4b7399cca1ed25dc2e150b3a6ceb5da710aacee748615a3961ee3d4022609b9876f4a0db0f73f740f12c1430aa353c086efec31161ee2f7a3780b0be773922555213f2bf5c62d28bba5c71cbc2d370cfb39aef20fb4a56e6f0184741e6ea7bd2d0436686d1d0c3fc20d000eeda482c647df94157d8f417678315002a5ded1c56b9f10de725fa333ed60cda10e4397ecd52531d1ebeee134057f106ad6fa48dd9e9dfc194d6bfa3d6b36f02946348546c583a2e1c4bea9440926c06a0d0574b4db1eb7a7ee3a6c9d101ee1f8941ab670582e09d6b86275c51522cb26062a17176859cdabdedc0085270cf63ce30743cb050fcff7954d063ca5318ae29195fd18392996a1c05884cabc6f45a7845b4af99175dff6f09c4a2dca785015fa5c257208aeba0d283ed680f70a32fbba7026b34efc6321e6d2029a71b97864252aae65454d26896a869d2c0d96dbe64b46698ecc6908d132ce43ca536595bd38e7366e82792a4adc472ff8782b610dd88519506965bea1cfec2cd567ce41758a226279cd7cf94b7e84b2024e49ac30870ffd61972670b21b9eb6b222268d38d351d268f2615f6f2af57d28461157dcdd34854fd8d52ebfe1f93ac32ecec6763e859658a9f8b04c8c0b37846cbae97018b8464199fbce22c8b2651085b1711962cff2330eedfb78fe2f6768372a0cd7c4d305d553ef37da90c21d4ac30d97cf3c0e88fcb649ce8a8b6639d8c38f9ab8eb83697d7284d7d47be283f0adf8a1b730d2b72ef9e4bbac69dc9177c211adc7c2d3f7ed21d460538ca10a6df4159881f7bafa70e4b69cdd16aebcc23e743b3f243cf95ce7b2bffc0d028d26c656bebf9bdfb4e19b3dd487d93e02502be46952d6fd6bd039078f4618aff092167f76f0088292a2ec1e3dfae2f1f0effe2c1261c795624f93ba5d2feccaaaf61b858afb4a6264bed9ad58186af30b4650e1ba22984a48828badef3964de937b841fd5a6e067b98bcd01379d2fa66e213b8d3cadb3b47cb96e2161877da79cf9ac32b3d135d1db0fd1616bf9df4e9d548ddca1c3e1fcfefd9e07fab6b0daac93cb87807a0da2345185371384a4b21f823a0302b0002fc22edd9da2b9d5aa2ed4feb624f30cea2f1d99b90251773ba7db237596e2f71464bc0f6c7b253c29c814602e905206b009edfb2a62554a1e1465e7d2689d7bf26a080fd1f0450c7e444c62bf3f813ff4d76412eaeabb65a2ca473ee7125134b963caca1c6b9d05a68555e4ef04f9bdd9669b1a1b729f77897ae5b61ff83c1437689d50cb802daf136beb3287a5739b9988941f713a52f925e0e81e874a596fdfb9725884996b37f63d506e9fef9800d71cfcf6a7f3c9d669653aa351f4c88c9f7f5f3b0b29e9d897c98ab3452cfbf563790f36becc923f2df39f96f9bfcc326fb60677339abdb6647bdd7cbbfcfae4a3ebd8c9a63cfde40fa084f73fa612e62d08fb9a0ae64f0e4c0dfc97bf81fb07b20cb8607d88d2b9400950c2658a7e144003c6f96293be86dc5bcc9bf662b395f20e9a58ec20f4e2e08fa786c58ed44f07baacfdcaeab15f05fa74a2ae059ea9864cfa762e0f049a65854e7fc1d31e634b03aacdfa90142f7b14e8ada6fff12587a7e5d28cbe565734b1d149c4ea3f05eb7f4fb028917e10299ee0c7548b1ac8b5282a60c2acb74bfa8e52294a05b5a7417c1ba007c380841fdc41c2b57ca1fe6d299d6f76f8a244cf955e2d28d80b47057b01b1d95c6170b29dfa8bd037b2378cea3e771d06a47d0a5a7ce95a5decd25b87345713cf9f1c4cf05c308d5191fe13ce2612bc2726975f6e1102297eef5c550f1f389fc1ba1b3825c27784d345007704a402014b2d745fa9b23edc323604522f00779f7eea56747d65f032c12a415282fe46c1e20fe9b95e3eee3e24e5a64838140eca5011a18fba79047097ee639bb224fbda3a5f87bff7d34fd74e4fd6a465953720caba4cbfe1c7f3505854ed4aeab513278bc3dd265876808da22d79f64e00bdcc7b27883a175bf6429c98d183e07294b38c9d9c18e0cd593ceb117e10a5a12a25905e57605bf0bf75c7628d9f08173c90aca8158097d1e95fa0702e95888fb19d97cd927a6be517053873e2bf31011c44df8bc47f0fa32583cead90beaa7561c32453d7183ee8bc1bbe3ddcf6e03108dd9e2240efabfd892d9c8185b46487066e3fbcd2fe6d57ea72223adee11df52fc347a670cc55791dcb81facd643539344932953e493ebb6544d1ebeedfe2bb571b5d8a2dbee8711bc3b4d7637935dbe0bae560490eba7c32b91ea15def792dcb01fcffd1c456001fe3eb1b3231d3fbb1aa234262129e16fc38d511a1be1f9ee9ffc8d611ec36988057650f1e9c6e1d7a3e065979742b5e8cdb22699b6559c1f14266905f32c155060e3f45b2cdef766c69b01107b923fba8493adb702adedcfb3726d3794ba96a0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "block", + "source": "0x1f8b08000000000002ffcd596d6fdbb6137fdf4fc161406003aef3d0fd873f9c2658db194db0352992ac03360c9a22d1361149f448ca4ed6e5bbef8ea424927a70baaec0f22691441e8f77bffbdd43f6f7f7c9cd8a4992f3b4cc2849e982155492984825ca44c12f2e58b1246a45494e559cc62a267ca19f6f339edc91b8484941b7f6896e68a1e4f4999517af1597d142c439dd7271379b99551f9f11f8292505f9e96c4685e0e2d87fb7a1896abde46bc578d1bc34e28d0c3c7836fb784db3c584ccf1e90c54cbe8e3f1b360bda34e9c24bc2cd471ff0a41135e2cd8b21471d7d9ce4aa9e23b3afc5dd1080d1a2f07d73d4845f3284e5341a5a47260a9623905b1f9dade7121180577b4d62d29389549bb6a1f9c7ebde26596925b4a58f15c3e1409d932b522afd13d5754f25224948852aa0a08ac402f47da7f5321b520fbc9dfb48a25b9a30fd6c7d57967942d57aa424e520a010e3298a9d7adf49a1929bffd66e26dbe816b9235158ca3c66a4b6941e89a272b005ab54e3f47ac50546ce2ac43884103d9aea8a016a6e6cea8101a1295ab810c2180cb72a6144d6b39b505222360e602ede505dd6a53e877a7cde9e53a45cffb1a764af849af9ce3c273bbce15f6b8d37f9e0a4ff59fbf09fd970abe9ee8d8a78e1fe1cb6a462c2e27bee503830b88aa3478d7e9deb5a01bc64b69cdbae18ac2df4c41f8cf88e18097e5ff4fdd0d7ccd25151d8a2c6296d134aa5680a9539650d9c8f9f69b531f1397c5f364158369b4ffd3b2a63a4b6d4a3f2c1918c6aa5f6fc71d51ce1201470143a4d2b998e32763538b23045f01dc6a348c3302c49b080a2e4fa7ae43fa6030e01b9ea5d16008a0f37b17380adfc0858b32bfa5c28b872a62520ed9a1e070a53f4ab8402b98ad99cc75c02e00c0f9c54fefa28bf9cfd1eb1f2fdffc10cd3fcc2f6eaea3ef2fe7d7d1c5e54df4eed5cd9b33fbed6c7efef6ec462b464ec8e171add5ab02000c3ab3b40600d98231e061c352301f99dfafc1cb606354a95ea3388608befaf08e7001c98ac489027f122d2c062b7aaa9e5f7c78f5e3f9f7d1fbabcbf797d7f3ab4a95a34615ed16521991247181e680530e3c49bfccaf2ea3f9fb4bb8dbf9c5cdfc0ae456c25e1cbbe6460c805abcc81e504a126700e20a8b6f0d711bc9ebf23663c9c890fc982c4a340a530c6ef2271d85a44ff6245b16544c026aac416b103b764014661ec88ff04ba828901d9e353eae45980d5f8dface24a7e40034c2843f9b599746b15896394068d465b5f1d89a0b7f72bea191e22fbd94733aaabf6b157ce526de473f577df4beb9247530697d0aa3a7ef8aed9dedb461eb8ed94c8725be8c565d49a465e9b6f0e1ecd27f506faed971e663fd64ddee908791a9e38d7a6132ad97bc69631de338167571f00a8f274bf0b428e222a10d5dc21fc0e79260cd03a12057b0f9f6a1d9f4b6d963ea4f376e74bc741bab765d03a4de687a1aa18ec1f07f940cc2a81771ff62b0b555f9cc30cba8a5f348548a9f905b0ee2b6d132e3b768b3528551f85dbfa628b09da250a877cad4ffdeec1f5c0662da16706e635b034cc2260406b0ef417d0f2e191e3d146e7ea0f466f18f1da698745c813c4e0662ed8aaa5214419c619967eb9116f69754856a6bcc8f4d5eda0958cfff3b7d1ffa689f1c1ee89f56254b95df5d2e204fb7ea8aa957a008a034acd8e26c1b3f487c94b00532e92d5d605d44ef6952aaaa9853222e24a67dc8cc68a0d8158996312e0676c9f8b2a40d0636f98c8461ff9945f0bf56be7e72e15cf78a5aa3a7b21416c9d079e9de17ab1d2c6e0454cc9022ddaa052886df356cfce1dd7437cf6df2d1de267769070e7b6d9a2f573618242d13233c2641110858a9cf244c49e8fe35802e58563572a38263f70ca0ba97e3698b3cbd98ade59e9c90ef3639863dc017cefeeb2fa2fb7b6053195964da68aa2bc951b53bc8989686c18c3993120c19a5b460341db5cacdb117f01e7bbab0a0f74079661602899d1774e4502d5b905a11f2957f8d7150f1f40a953ca7237b61e48dfa8e66657353e7e0c7ce04528535e8b0f8cc24d2163835e51ac8b51caf8b1d2a467b1d6bc32a2cb470f01d84fa8db16f3ae481c0cd8806ff956600ff555560f65e661278a837cc279daef4dff6708abfa8a395adc962e2bab7be2966d2c05c18cb1337630eda7e125a3ba081f7544014e7ba94930947865ac5d0b5997ecee4e0b462fba6dcd44ccf10c2585406dc0fcfd8d00bb65c52a1bfba273a5b99d99ac5b26a6a7142a0db4ae30c739a437126506c69b06e748f70e6c7a4629066fd589bf4b9c6c1bb373084e167d1d87c148c2501f92e278dbc6a0e19a17628794e5a7bf1a651f036c21da331393de9f2a79fdc435a691dd0bcf0a8eab155d4bcb5c540d74ca1ab9ea96e6d5434ebbe5441e368e10e7820160c023549e034dce0c06aaddf98239aa8aa2b8fce48c2b2a369de9d9e6d66e26b60e61886d5cce730d7514d3d5001d792b2763c0673206b5a534ceb4b8b413a9a149f2b7dba762f39c6dc1b1ed0458dbdddcda7ce9bc6ad32bbbb6b085a7357e92e3eeb024a4c7e0729ba27d0527e37c74ccd1c081061986acbb22c28abec089fa400e9444165045488ef44d57043ebfb40164c48551f19c4a13dcb079f95db02a0c1df132ac42f92ea5168a519947b50c51cdc1fec48407eeb0600eeebe5863393b76ba80268ba8146d39ea951e73cc9b6071d5f0686504f28fb11b36bf5301a77edaeba0fb72a6cafdbd18a0c9cd0514b1c3c6d7ef4f5af70151561d5ff5b48f5cd983382d41ae1c25135d9fa07734e776a6aa4f46fee52321cc9203e432c7b7700f06070c24df41d3b6708ed01ee9343b01ef2997f2644f6b9b1d540a439b6d80b27a7e4b083c73f6f0c00dc7e3821078edc5d23b9b656475f42aba3e6b69feaeb49e500c35387472facf7bffe95daff4a44185158fdc4a028942d3cc589dac1fdff6020f2e2d3b11295455caa15fc6bfe4f902df5ff02f5110303cc709051c78ffbe1bf02b6dda0a8e2f6a876dae3b3bf019336f3d3ce200000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "chain_id", + "source": "0x1f8b08000000000002ff6d92416fdb300c85eff9153c0d311038d7c11d860ddba5a70d5befae62d136515bcc242a5956e4bf8f929d3475eb4b20f9f9e37b8fd96eb7f0d02334bd210764c15210725da4d063801dca11d1e96ddba247279330c01acbaedc8060108702c65910c58c89a21747f64f45b9da2afd8743a071cf5e8c7eee79d0630061d87b3c24a278e382698458b9e4049d450b2d7b607731d67a1ed58c1a03fc8b4d1455b0d3b1ac53fd34e8a1576ec31695cc07b26adfe8d98902d0676010f689615ef226e76d74f378b5458e84cc40ff30bfeb341d49b91ad946b56ef6c2a16ebd193165acaa0caa15f4bc027d627847134e4170ac8db51e43c070b7cadad693667d2befd061a08b2a888f8dc0b734e7de426f023ce1691e971eb215c48ff9789e3e996a1f4ed09861d0a66ccca9676e79d5fc8cbb41f79c37371572ff1d1ec93e02b77a49691d41d7d620445d8acfc2df39ccd74b16985365e83e019bf514ac48bdded4b95e06850f813a5dcd668e50dc845a565655467fbcd40bc8125adc5d11231fb0165e2a36d72a9fd3fecfc5b2b95f28d1bbd7a52cfbb8499b53eabf645da40c609a3f91d4f3cb94aba11d7bcfc7ba1b7867864ff3fbcfeb2fcb0825d9d9d379f51f65ef5b52a0030000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "util", + "source": "0x1f8b08000000000002ff7d51bb6ec3300cdcfd1537264011af851364efd2c99d13d9a21ba2b664489403b7c8bf577ec469da221a0402e41def8e699ae24db866e95105530a5be3113c69143de444a89c6ae86cdd071aab434d7e934c05542bd61f967e96854884af04f1558ec9e8bf23a5d5b47d38f1aefcc197271a566c9371348d225f9570478b468885264f8e55cd9f510ba46f09f9e60ab801ad5034a2247eec6f04da9287b182360894e95146e7e2141b416c1ff3e3062f1506c1431efe175cecb2e1878ee807351b520e9daa033d816540123b38f26d5cc1c594f62c89a095a8a1e8ef0cb15ff8edd9909e8cb5a1a8b95c4dd9ad619650629cb63914bd90dfe5fbd55864e8a814eb76e179bfce90cf694e1c2348691d550df15fc1ff22e7b1f9b4d3f1ee01ebb173492ec937c00dcb3251020000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "code", + "source": "0x1f8b08000000000002ffad5a6d73db3612feee5f817c71c49eacbc34497374ec39c5761d4fe3c4632793e9dcdcd01009494c28822548db6aeaff7ebb782101905494b499ceb82481ddc5be3ebbd0a3478fc887652ac88a2775c688a88b82979520f33a8fab94e7344bab352959462b96908a9398278cac684e176cc5f26ab2a377d2a2e2229a9774c56e79f9250ce5c2af3b04fed502285749188aaa4cf345185ec9bffbee475696bcf4de89749133ffe50d8b2b5cd9bcedf0aeab34db1ffe2cd6a262ab882649c98460c25f2ab9c4bc58d359c6229aafc3709aaf3d297881fa09c3f7f2af9606d4b9f78ffc33d48e508b17f52c4bc5125466b8a0d5182968fc05ec00e659a4a0da35a115a9e0fd22bd6139d1c79bc82df0b98e2b72a1765c9a0d4b2ac817b61ec3775eb231494a5e68a319467a8b20692e2a9a65e006920d388dc301ff69814448948d5ee9cde7aca209ade8e1582ebd6f8f61be90392f09350426649a6564b6ae1899657c069c4a3c6501dcc0e75002416654b017cff6f87c6ff1675a142cd9c3f5a2e7b40d0f3cedf041df817f103e57473382342b72f81a12e5b863671f5aa22e1625054b153c4be3f53015bd2e52eb42f2513d5fc8c72ed9bc5ecd582924bd740536a8ac58c5d3cc18185a134d506b8213c1ca1b584a85f4059eefc54b9ae660915280a34e3c26406f9eb22c21b729aa1c42a0aef88a56690cb6068f12320413a003c9218ec1dcf33a332cbb07531287a47ef1ac7b1cc1eb32662449c1452aa524f312dd4b3e361e204583ff629e2b738210b335085bc2de599d66095802b7386cc4923e7dfe0269331a2f816892dea4494d33cd670c3b281c05929cdebe22342b9674c6f491c784e689a1a3be2f407fed5115a1489d62d8254c7042ae4ce7b0726c4e78ce6fd804749ca1cf83a627e4543930a9d85dd5f2311b9b60aa5f1e76d9406290aa544e61472928abdf09f5d286eeb97cf662d4f078c3b34498483a668515ed093cf9910e2b3c02bf4260cfebaa860886e3b11c9db059d0bc0989caa3af20d11efa49628aac589eb01c620b6a50932748a132a3ca493a1df5640090ca0ffe31c1046fa5001ac7bcce41db9accd8cf6a919d0206f3189df11a4431410a36a7ae05b464aed2b74e4d4c13de26315da97043af1a139d24f5c20939591550d8d339c979458a9243944006f19c7cd8f534ed152da45fc77c55c85a9a90d747575b528f60f730873ebfb19cafdf733af5e59889b84c67980f732f4bdbd670f2b06d0c74928e494cf6ae5ffaecb4bf61d2aa20690892d405ac05f0641c02cd2520d9564b3802c42e662113bbca9b4187a0510eb62e9b828ae9d72eb992a1cc8ce4e4fcfdf1c7b727d1bbe9f94974f4767af546665f72401edf3dd96f453ba2391ac3e800d491ae56758510c7b0b1a97ebc38bd9c1e9f4467e7e71f3f4c5fbf3d69a93eed524df86daee91a620f85e64567a9049196d63d1e9f4ea6bf9d5c4617efdf9e1dfddef2f9b9870fcb58c5daf082645e915b2aac44a0b3acc090e93997d6d6f9d9d5d5d9bbd396d9b37ddb699a6c0339016a23b29e2102113cbb51381850a1c5d48970cde9627af4dbf4f4243a3eb9e8b27bbe3f90de6275d025bdc163de32fa05dcc0755c870b521fd0df8bfd0d293427d7b49ca55549cbf5755bac6a214fca2d253a28cfe23abd7c7df6e1727af97bf4eefd87e80add6f7a7c7c797275d58af08b25c2a725933e0d9d0587b2acba0bd54f98f3c9b0c8b94c270041b4e3c44b167f412800758ddf22ce416cd0d095568010037ae81620f5521a8de7805fe02c354614c24b1366b7cb14a00140cafc618585be6489e20c2b4b1578fab4a6c826ec8665bc80af200528a3002da4183848563a47098692a1cc561c707546d758062065a39fa0df289003b468066b9375435f261a89af244e538cd599b00bf32063d4186d1478f0d14a50cefbaf265d3dbef7d3953109edd5b8d623a8104e8e5845eb514b242652376aad547641b19b82b4df30a02467b736601dd1c00acfe694b2d784afb34072683263a3b931ba85d62ae82937b136ac2875a2efd7d293412db5d5d747abb23f69d32902481dc733d6c2f36f08dcecff7e999f6e94d96b4e4032144b691182e92c270b065d36cdc6ea4cce3234ace5ab10340b58841dc10c4c814794392aef391f50881497c83b6ac547f392affcfe071293f70a3431e33cb31480fb265ac45707b06362d5154b0167396418985efc692171bbd73c059145aae31ca54d9b0d237f604076d51c62dc40412877d8e534ef0de9d0ef39831d852dffa853f0e54effdd9ecb9f498421065359459e30be70c17e43024aa34cd69079955c4043918bf87ce4886eed0290367a20034ebcf2c43b1ce1fe20b0c454fdc30d43133a14c7fed9befac380ff1a25fdef3e68e8dd139609e63150ebc3b0a8c5329a0199d12e840678024c886ea3054c046816c19b01792786736b178b6107b2e9222eacb6c299a3285d3e6cc71d2aed619355aa82a9016ed7d112853eed4655562c1b2d5801a3f144a4bf8f7c2fc3f71d0f1bcb12dae0e8164e1f06dbf8dd66a7f9e79c654b27813120b60ea3c0f6110d22cc480c0b8e90417c03f19ab4c826c50909f7a073b35516aac85e2c251e935d5c1af43069fd0127006068002e733056251cf5a99a1029647f00c9b48aec572343dfded300fb03f263beed92cbc04f0f1a156632499bf8141e6b9889b03b580dabbc0f08d9dc57ee58c7fd0e300a6add2825af90946f77dc0da3034b2a75c4511b9ca92598712ed83241ad918303a923f9e0d3ee0e9c800deef45efe8b3cd9ef6c546ee0b426c855bb01fcb16d1774f71bf5a5eea7de44d6f28bb98c1af03ba6b9396c5c529e5a90997b162f22a67248e7d47a39cb6065db2fff24dd4caab4a33af7854bfb639160f76a46ccae13ab327ce092556fdd9ca194d6eb283fb9fe81be6ffb086e0c348befad1a2d19198143eabb647fd43890d4e9b7f954aaf7917eafb3856d37957bc7a62f537f02bfc25cc92e4a906b2fbf5f4b0845e56802c6da90960d12d62d8a416a7aea8e150aa07f2ea85c3421af594ca167691841bb11d72540b40a81330c7a34acc65459dd417da1881ac02d84427a4d9dca194b64ea44ac4f851e4100fc508048c2fe9553ae1a79fda21501a3d1103c8a5a92cee067b8846d0b9f7a4be798e045501822668ce4ed40e74262d4235aa0e4f1ec48deb00cfa20e1ddf358230a55976e2de4ad0084a922693b11c9981a33970c065c60219842310c143ad4faa2850cc496d8ba278b39d1004926527861b70318a027dbf8ad1910ef6a53a8a1e1a11dba0a9d3e18193e5ef837107d4397a3d78c1db9e52d6018a6b9acedd0ee2e6abc671c75075281959c8d341b5b0e32206bab10ef43f09da2397398c02bbbc8dc748f3d20c1c8166cacc956cdf58afdae45bf03c28c7a3ac5c91031f3ca9165feb15fb96d1658bd3df5e03f6fbce67c0fbe5dd6fccce985949a26987092231b15610a7a61ba8cf99e2cb4ea2b0210076cb7a1e315e4bf1d0f7a52d4ce07aa12fe3756f730f22eca99b161e30cc8b8cc68a144bd9667b89efc0deb4b0f1e7201cb05bb98acb3bd0bce70ff67571c4ba4cf5d912cc5057d000e092aa4e74be3f8e0e71e0866dcd938a4428c0f0e24bdb189533d688b54bb32eacec9831ed278c4cf5de078ff83beab06d49d210c362a381b841bd7a611c01112000e188942b55ea60b74787cc43220ef2cbb9779ad373b5d8da985ba8f6b6fb448bf936fdd27e2851f362cd253f0e19bfd434f5782fb825e9feeed216079d7439046d7458d5b0cf5a7b06ba26ff982c64b2010a339bc4a467d03fba0a7454985a929ec0e9b5596184d3b1cfa7cbec76f9a360132709ad76c93dba13e9adf7a1cb83de3e6e36e15cbb297ed1a6cd7b09cf43494669f5421ec9d5300e68329623594084056997f7a5253877b7f4e40cb182a4d07892ab06f6ffbd8ebe4fdab3c803dd3d5235ec31f27d0b71a905923c7a1dcd4fb11ff3542f603a6c3de6eaa172a6d854d3af743412f8d1e8d76b4ea8a84fa1dbe9b18d2f4562ad26a32de2b67016e4e1b6fdcbb5119c3d756c120d1fe2ff7fd3a33a18098be7f85bc2ddad982dc76d5c8e85332fed1c4d63b64f04b1adc54916642dddea3119308e5745e464dec54bfb434b38215ade225133ab2e6202b0e479b1ffd7c022804573c0d4759f31475e86421e503b0b36f640b2ed4451cf4ae099ba779ffc5b6fcb158626e35633c869ab78fd5211a7ed8f2cb42a87ae1b65d5317880091013152c08cb27b63373cab9560f8a87eac344f1775a9ee8881c2b5e9e732766ddd350c9710fcdb54eceef5871ad51e90ff3c217ffdd53e3d759e7e769e9e394fcfe1a94bed85b3e617e7e9a5f3f46fe7e9c963df474e99c23b0a923bbf59113dbf86416d747aa10198d20c0834fcf6d0893786f5e6c93fda566d04d5031715ee88c82f683ece5623ce8170dce989799bbcaffe77e06b37ac1d248117aa8badf6172819a789f90553de2cef4cbb1a767a98d3c9bcecae60f8abbcc8ff3d99364fbb72065928eb9def8c877e5303fab8dff93feac803229e2c0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "consensus_config", + "source": "0x1f8b08000000000002ffb554efcbd33010febebfe2fc323a999b828864af43993f18e81411bf9634bd75616d3293cb5eeacbfe77d3a6edb64c110403a525777d9ebbe7c9653e9fc3272e15f9c702ed108456169575b6f9daca02b6dab481acd4622f763e7106df42621396162c69833948057c34f7805f31c49ce124b59a02573954bc860cc11d724e3e39abc1684db351a5735722f003699b6e0daff05e9b3d63431d6947f43002bf9c45cf973386c668b3b8de3ba2a06673d8bd4135d7a52dfe9c696b4b58a53ccf0d5a8bb643dd1a89be9b9bf402155ad96759324e10acfa1e56a1851db7b0c7ba6ba559a11a06a1f23bf772396d63a780d3a8d9687d30fa28732f9b56d05ad0ab9fd58416b841c0ea403578afa43af252e6a30ede12bc5b6fbebff9b87e9bae3e6fdeaf3f30702f9ec32b78b638937c715929ed0ec31988eb0e64b336fbd0648a24e83081ad539e5192f49c3f31897581b195854233fd4da7930b1d62b519e3fe65288d006382c96280083f3c4a02016325aa8276c938104f60094fa7d09e1ac63a8d526e0a57a1a224926872815be923a6a463e6e98d4a0fbd29a7eeef2b13fd9c08ae9a1110bc2cc30468f524b859780ea3b81208a4bb193947e391b4974eb40e58a4840ba19da2bf48cec50f27bdc6b7d5ff831781f13f7a300097485d3ba9c1ad3fbce3ca1164da43dda745a9335ea67ee72eea6a99bc8e0fcc2cc09c6b7e7c85db4787b0376f83de2eef0b1959146820ba44c06a685be1be67503ac760b5ad956806b699a8fedabb32b05911d6e50d85c9708e4ea35f0b36eff1a9050000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "gas_schedule", + "source": "0x1f8b08000000000002ffe5554d6fd34010bde7570c17e4a0d0808410da96888a46a552690f295cadf5eed85ed5de35fb916050ff3be38f04db697be08a2f9636b36fdebcf7325e2e9770972b07a591a14090982a8d0e9cb74178075c4b28d1e7463af00694565ef142fd42f03942c6a952e4d85c5dc02e572207a984e79e2072b38332887cb6a41eca8330ceb720f81345f0085fcd16c1e81649a3df197b7f32eb79f0ca1b17a79697d89c3346ade27d2bf83d037a8243e22919436b8d3d1d9fd1004a678c6ddaf7e4c72d0adfdc389c1eb5b3288c4e55162cf7cae8d3a72b5ded3c963197d2a273e89e290d5e158ca5d6947152fba6b4ad4dad4292f978642427d4be6ad93a855059b35512e5487c68f1805b042c2b5f83b1e4d5969c92ed651ac679585fdd7c3fbfbeba882fcf37f1e6f397f5c5b7eb3583f0fe1d7c84b77d9fce79b8e46eadbdad216fda905a64b03055bd00694dd53bd03cf75833e8545e1c0ea9738bdb9d3c4c91377bda0d38013c018d4440a163d0f975b6e7b41aa236badceaa206c18b826491a1a102bd78276d4d15924289a8137a0e69d083244753e1e1a5539946bb8061e8e2a430c9814af8b09a0f984e43c018a797f5f1047bda6b7e7a80e82ebc88ba068c15a8339f472f8f38cc61056f16d0869eb1dee598db2c942458f4a8c9f379ef6ea718dcdd5edc4624e79c01418b7b50e9384fb4119acc281a4bfbc3cd92feb1b13767030b57d39116f037e0d131f97ee28761a89b665c43827b0f130ab07e2d72ae3464d4d36aae0536bb23549296cb88ebd0e2d65a873e1e36fe7783b9f81114393acaec7fe77a817e24142d8bc4108f5d9c11315ec465f0e3487c7a7ae05713a467c332a67f83140dca002d852c430b931d0dce40ab0a2725411b895dac5cadc5fe33d3c5473e929fe699000ebf02181d82fb30fb036261c3a935070000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "version", + "source": "0x1f8b08000000000002ffcd56db4e2347107de72b2a5a098d23cb5ebcd126b2611592450951b0236e0f5945adf64c79dc61dcedf4057010ff9eeae9b9db109076a5b584404df5a953754e557b381cc21917d2d28f01bb44b8456d849220dd6a8e1a164ae7c7f34cc537f192c2067b2b95b80c81afad326ca1f90aef94be198fcbab0f7b401f67108c4dc663d45ae949fbcc8854221d56a75b601a63251722759a5b029d3c1d6936c6e28af124d1680c9a0275a105ca643b3c4589469451c66a175bb82ea82fb9811bdc1425f8cf8affadf418dcfbeffaf9d963ebde05dae2eacf7ccde7221376538394c143eaf2c51a63b1109804c46e9f57ce589823a41ab945df732e21765aa3b49dd8418e49dda11b27a7d3ebe3df4f3fb2b3e3df66e7ecfae4fce2743665d3abb39f4ece73d6700407938ac5711c2b4788c2805416b8b34ba5c5bfc4ca2a2276839498fe4742cb145b89a6b34b767c75f9ebecfcf4cf938f25f46852573893d906629e658496382d640a45af0755cc1f6e9e09b3c4e0b5b2eb41e910b5f6117114d4ebc1c249105258c133a21975d584fde0a47e19c48a5ee5047b0d1dbb2e198f39fdd2967520bb297a4585b917d42d32abba21fdaa9087d22e1d36f0d89b5428d4865fc46d6164a8508017dac4b5934814df503058996000975e213a5577067cf3fc50424ad4b4e432467f2951202cb5582b972e9b89a9d356ab0cd42217e0090a83ffaf78a7f11fca321bbebf5a2764e8a077dbf9c49343c6758ad5596d94bcc898668066a2f0d47cb3abdca66b8086456f72cf50c7cae64745550db3d443dda39aff71823c518b58551f1cf24d84f7c25873b8abe60f51c0243b056731b52813f67a7dc897df78bc46bd12c65f65094ada025167a07a4d9f6524b7ca1216fa7504dfeecf15e1dcb13453739e1d162c3e443f76cd3ac8af4cb62aa8d10e43f11533216f69b412463ab815f52f7a76a56cd10ca34b1c5b0cd9cad96758d6fc8ac92f0b2dd8371d3bc5b09cac16a9774ae75d00a3202f805b42902ac1601bb391b1b78bb79dcb2d98b44de63f1dace6a383d1b6959b0b8e3c48aeb63488f4c6f8bf245ad39e4d9f3a561a298d514ec7c4ac30461fee96225e123f020ce6aa00872558bfca4bd587129a0f74a8a2bd1e19bdd6ccdf8f7c5e56e5ad9cffa285d8badb416a4857ae8676c00b37c39b4f39cd8e31c8015b5ef96bf77cfbebac35e4dd97a1acf899f96e3c2cfb5b1beea0b73d46af1b4338a2b7b70f6f1b404dc6db29479f25e5a8e6feda6ef7a1ada60fe918e0857ab45d64a2baaedd3af51b2ba16ddde6ffbf3235774ddefe9303d3d2be3b355f81f49a5699a285507c0da190b7f707a37785e26f3ee13d7d85a53dca165c647e437222e8d7458214fc6ef4fdfb1f462fb68793f5774f6696ca6501f7154669f3fd12466929d64e572bf6b8f7b8f71f54ee5ed9470d0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "transaction_fee", + "source": "0x1f8b08000000000002ff8d524b6e833010dde714b38a4042c9a6ea02a2a86d0ed0450f601933502bc6a6fe24421177aff984101aa2cec6a3d1f3bc796fa654991308b4b2ca905cd312cf4a1fe3d86a2a0d65962b497244b8acc087330fa04c7119c7972f1479041f4ecb03ad68ca05b775932c7feb0bfde7f7363ff8f409ded4c6624968966934064db2eab0b9e628b3bff002251a6e92a7a0a9ca13153ca36d3a7436563b66619c6d94c5d1c0373570c47af0a58dd42b278c56f1cc83ddd8601f75e0a66fbfdd6e3b244c86006fb5012e012b2e54e170d3412b970ace825e4508b9933d9b47079431e5a48d6130266a7bc4e05e5f42a0ecc7715f5cd0709bbddf42df53ab7232723062da18c8a2bba2e7bb2fac53a5b53a9342a8948add43f27df036db46b8b93a78eb162673c73ea5a88151213083cc692e0b1836bd6895b14a23b99d1bb9f204f37b80b5e185441dfd6799e1c4bff96dfaebf68fb664c630671cf4b551aa1312abe688686977e388d0848349cdea177c4478fcce030000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "transaction_validation", + "source": "0x1f8b08000000000002ffdd595973db36107ecfaf40fb904aa9e25889afd051a68ca4269ac6a26bc969329d0c06262109b57814007db4e3ffde054f88042539c74c523dd83c167b7ed803f4432f5e524422190a3ce3c4a7d721bfb42cc94920882b5918e02bb2641e5197e8df07087eb1a04848cfb228e7213f5e7d26d83ca0d58757d4953a654d5efac00d596059b6baeec3e51a7a7741588099b78ea5eb867120d731592f43dc0a497d4c3c8f5321a858432a994f85247eb48e4673e98cd2e30709e98c331a7875ea390da86022a37af2e4099a2e98408b70e909c48259c8fd3424724124ba66cb25baa02862ee25f5501ca18b5b7843d1bb132443e412780db7052f37e41c428212373e161175d98cb928e2e1329cc7a03ca8442396decce220d15a24cb85e431ac9c96d6bc2bf1b120025dd2db0c27eae727004b9c68a1cc959deadb00ccb6500a9217f1d1cb9240b89c4512e78aada1cc586d43192f25c3043cbc15630826c7b9331ae8eed230b9e024894eecf7f8fc60cf4271f7e911eaa1eed1dedec1e1dedeeee1b3c3dde7fbfbdd83eebe1ed7d29388deb8947a1041260582a0852e9170e7931b342742933174cea7d8f915bfb62720e7600fc41c683c4ff340263b54ec0078a8c22487fd4823c213ae612c017ea19f0025843f3c23077cc133260a76a96f9160814b15f56dc2c92751046c7286cb5b05359ffc1572053bd80e125c273a099880bee0c6fc28e4920452d12bd982fa70c75c81c259fa20d9793b9abda767ce5be7f5f9100f47e377f6dbd100dbfdbe733e9e62fb7cfa06ff36fc90bba1bbbbdb3d36ae9c0c7f3f1f8efb433c3e3f79353cc353c7c1cedb81b6f0e9f60bc7c33fb485cfcc0b731d07ce7082c7ce140fdf8f26536ddd9e795ddf8645a7f607155e3c189e3a9391be6adfbc6a7a668f27767f3a72c620e8747436d46d3b302f7a650f70ff8d3d1ae3914e7db8bd275e8d5e6b0b8f9a16f69df1c03efba04235c1f66070369c4cc02ba9834e4693137bda7fa3317aaec1d909005c2a8901dcbc98b3608eb2fca820c4022619e4a07f72e020483261cc5d2a10e4c904ca1984534845f1c592b9ad34f5b6557ed378b48a8d5fcdc9e8615adbbebbecd4d6f271b5a8419d847f5ce28ab5adca7d3b0b476acc15c532ac92741a8a4229bc56107ea9b23091a6465dfc68ee497e5c5d630a8991eb3a8aa610ac92d55d5fbebf6b1feb854141ace0e486be1f0625ce04a0908233aae892370116f4ef9842d6c541ec5f2822d81fab1424868ca9b267e20d0cd5d70c14450b35040c622e35f0811a93bc8f612708c37b7a13319eca50dd4e8522efc7e0f1511d7429c47e68adb8afe8992c2b08afc152c8199e68b5d10b93bc55d72775cab25890e000133e8f7d70426b6d326c973cb2e8e8ba151640eb25418b5eaf30aab3853c3d8fb6f5cdb2a450e734e4a6d1861c97861bf65fba1571386b3d4c5f1ab4cb9a5968b96f98900213d9aa336d6fa3a8b926b50d3257a365849af252a11af8cd4062d4f39ec16caaf9ab115d6f40cbb09d803269d214e6b2aecda81a744a101e0c86cc696b63356c1b955238c85c5553a3e2c4ca6b9307b7885655c8cb5e93fcfb86a3a19132db0de5fbcfd3bedd7dfad142fd05752fd38945b5799a5d3f09942b85327d61be71a16b2de6968c991bc3e802bd63857c0739aa83bd666ae4ac704ada841005f45a8d458936dd8f3bf7f760efab7a103aca66e4a8ec5c192001352b391d3daae7f10d3049e76d06e924338bd339a417caa9f7a298c25f7e891d6cea68cdf958597b419644c5af976998dd6fd0a96e6cce07a06f7060e753f5aed7f64a4ff1a56a7bdaa87e9b35bddacea496764c96752ac6745615efd475ed185b8042a376d5ff95aeefffea7ff5c399ad70d4b258dfea7f5311d27beaaf14ad74f5c6a0a58d26e1b73815a3cd42397df664dda2524a12096d7129f37bdda935477e3e1c2ae50ca4e1aa4b05a4fbd47796b5a4c15c2e543fdc14ab8dfdde4656b508263dbf51b3fb97f7ad4e3b1ada57e52006ced82d0bdaf582c1f95b8b419f6a54b05d19b2158b9228731ab07c947be5020e80c3eb750eee20a655d40db3484dd6678e2275638c31dbcaa25a9c9b2d5b79986cfb06b19ba71e83476adcbfc8e053699fd44f8187a19f51b77c7ca7e76375a436ac9eeeab2e9943a22633a90623bd3957af44ecc2799a98c54b388aa337d48de10879a760d74f0fe7b2af0eb607e73a9417c93f3f24d1ced632f7d5523dde2ed77f6a2e2d9e43abeb436e82a3c484a2f1c8a2c6503593062ecd78d78eeadb953e37e123c06fbdbae2e8b149cc56536e391214f3ed23d42a8495436f6ffba957b7a2a96daff4d798f82ac6863925576575b9da280de722195c3479ea3b8284a971e56382729224c9d78becd3070c101e4d4ea3d55c13a82f657281ae7c9d0f2cf44234234c215887bdbba42488a39d6d8628c388a20c682bb898fd729f9386edc7a78a2c502ce6c955a24ea74197cac03e0a5c409c61caaeed5f807b465a3bb548cccf27a5bb07ff01aec21ac86a1e0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "genesis", + "source": "0x1f8b08000000000002ffb55add6fdb38127fcf5fc1e680ac8df3391ffdd8d6ed16bb97ed2dfa707b0f2dee6551b0b444dbdcc8a42052717c45fef79ba1288aa23e2263778dc048c4e17066f89b4f65afd232e384e54669ba29d89e1f5471b75a6db9e45a68f2ed8cc0a7d49c6893ae56f73c31aa787be69f7636b2edb6e05b065474c390f8f87684d83e489490abd5b74f3cdb2cc84ff8e8169e3c3eb96fabee7921994cf808e93a53c9ddc87ab2634252918e9184f2fd5b4873cb72b6169930c75121934495d28c32969a4b5da209e4466c4748b74c539dec38ded60859c12b4e65c18c507284521b76c79f581772fbb46446ec3910eff3319a82490d680091e886f38994f72c13e9043d0ca71a80c6b6638c012a7a9c538504e4576a87706d8a3231e4bf9520aab80d8d4b764c9344e5c705490b953b57c18f3a485e5096a605d77a45dc2f8b663de785f59061927b654659d8eba36c8f085b91f2d58b66a941555eaeeff871452aaf7d57be7edf50e585521b0a3fb9d21a588342fd84921bb44f2d0bd7fd649b32cba85429a713363c56e6bdbcbc24bfb840a30dcfc9f58a7c94c208b0f7ffdc0d117f43c43914613205250b4ef63678690277612f6f7956492289f05c665ec2d085fa75a8630118f475f3d4f1a20e4183d6ae3ca59f33cf55b2a3103a7801a8a67b91144af34447ccf670d6bedc537bbbf11a7b185c03b72f8b02dd15a35d99d3d46194f61cc2b24c1d6ae702106a6e28682eb7c075ad5416b23db022d51478754f6c9668caa502d1915b44063046a9727500340b99149c694e33b117216ae781ef0024020898dd200c96e4f30e70033f96c861e3b0e3000c7d0438ed4148adca22018420646ab41c449691350f4f4c799ea9234f89518ead23225c1a51f0ec08e697106052b23e02dcfe6191429a04640f90ca921b0187ecd87d253d38205105b89bb81719df721d9e6b940d45064facd5f2eb193764164529eaa81671f8a25a6c31e8242c9f931f6a6610d4c0e270430d1dd80430c8d39ad3ecc788d3fcedc05dd426ae706ebd6ee86a1aacd572040e7931a0d3dc055dfcf4a781161b4f8b9f219e8b16d5fa5c2785c80d85e097a96dc9cfe3f50a2323eb656604052048439fe2c573112f842a62ec130e24294f806361154b7bf10546377010c127768b0d8063968f4a24cc94b025c0c9e0452c488c8951b8b575ca4b436a8c05f2f947ee0c4d4a99822a15821a315be8ef436d9d5400e42ed0ba47ef7ffbf1eae10664bf7a786ebf5fd8ef97f6fb95fdfede7ebfb6df6fec37fbf2b675a200b657cda3c30e7c96cc9e552701fc34e5fbdc1c671763a2cde7df5a5040c66ed14bbd5ae52aa76b96dc79f96717fb725ce7c035a300e16fee4f0808eeb8e8b0e9786a42942b5ac8006c42f6687841fe4eae9bc7505b9f0da7d9291165d1d9169c5aa7f3698ca22220e053e5e389012edcd454d77f34aeb5ca866829ac1ada4be345439b76b86688793665c1f04a5830b4a946ea855614edade9a6dd64b8258a5d1f002910550f105d199494d65348d3d042a6834caecb3ccfa0e65f83b34a6520e5b335040961ec6aa2f67b488c98d57f2fb521471ec6e44e6f1cca4cbbcb53a05475a7019b4a4007ad49d9d6d7bd139dca910742447de7a9ee609bf489a70f95d26def6a7ac25365f1fd2c44384039fe49778819c30ac3d3a7580cb53637add6c64e39ecd5f5f52cb4998bc405e08a5c543174be8a4611effce4e47d504edb1cb12e0b8931778191c2f894100c5f02138d9683b662b1b1c495d3234268854e819e84a7d601601907ce2a8d34c2d05ac659a708f1d2f79551ed11432dde3f41f5a7c443f3605858f6969fc0ac47c8daa45d21eb9550c85af01821ff91d05924105cb15682e8610079d03e57fd0abfe1f681ee8508d67fd43738143684a889cac02e7cc206b6cda8343bda3b359847b06a6feca9317c87d1a60c10e57714caba2c1e8e2d5452e52110a37274c9b2d9459bcb6248f079bba2ab4d8ff5c514070ba50b1ca40e6f5e2bd802711aefa70b818ea8017023047cc2db2e735bd23bf9884fb344f32aabe0aa1bab2cfdd6cff0b0213db743a7735f5f2f2c8660a38022bb6556cfe0275f4bcf90166ca7e78415d8f42630c84941207bf257cb5a7ff51b3fb064174a0988d24da945207e6a08bcd8449b9de580dd2fe6526c86c136706aae640a991e3b6024f890debc7c79fdc69f0093ab4c24961e84f81a8fb4f4d7c60cff823a22c384ccdb52ed31fdea9c2762730c0d5897a59ec14c43b830c79ceb4b5d2497d1f8ea1202c9b200c3e03d08a361086c2d0bbfda9917c19997f6e278aebfb64f231bc1b3545bf332e75a24c706a8ce6bd5e4c22a81bde011271b9e526d88ef02fc11c13531b804b9c57877fb09461458b614053b3691c3b964e002de527a30c72c1a733643bcfe61e8fb383a449d143e925087360c835628e3726b76b38b6671dee9c104791731084fac8f68aebfe1be06c0a943c81dcaf99e56caa21cf65d0cc531cf60d91af0f6b172035ee06649db147075b7556d89b0f4b4f57c456c005cdf69928acd062021b12754fb8ad1b2dd346d482854345526cf7e20432247a60b87d2132d101d1619e1714c633bdb9ea4aef5b4faa831dd5be3f211c5c9c54547f1695c627d7b2cf8b4d55a07744d16db0c6bab5666706d23a9e6fe75f06cf8b71854890b3a0a01056811943e336b92defebeda83e9aa9bd5064c1a2e846f25e65d7da2c16e5547e63072b6f7fcbb72f9a695ffda3a759aedaab1a556a25917d38756a9d3bdf150e031baf8fa175351d4268c6ceeb471c54f93e420c3cd06fd7354ccd6c58c10c609758cb6e74dd114adca3c45ad7c3a850215f3a57d45e473d95fac66e755d418f1c81bac29fa227ca30989af5dbd526438874c198705bef433549e853a8ebd2181a0eafa1e8c14b60943ffd650b21c601f83b725fc3ba83952257955ab81d0387f890ad2f0d826892e7bebe4b4126bb0890b15758683425ff203b57dfdac5b2163999b31ace5b08d8642c8fd6b4253dba0a9dd43ca653adc3207313b7cd95b35fa231cda42fded37acfaa982deed8b7de08a55274a99cfc28386267b0fe75757e70b34a99d2863ff49eab1548bf005bc8b44b2cf1f3e7dfef8eb2f95e4e4e3cf2da2ab45c4fcfa267a1f71bd18db703dfa27bc05e7a7d03f0fb8cfbba6fbe26fce1ab26b33f724e8c4c0090bf36ce6332c7f80a4063d5fcfebab05b99eb8135e179c44fdfc24ea172751bf3c89fad549d4df9f44fdfa24ea372751b380faf1ecf1ecffdb2b458d7e240000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "managed_coin", + "source": "0x1f8b08000000000002ffed585b6fdb36147ecfaf386b81ce0684daeeb2a250936249da020196ad5803eca128145aa26d2112a991541db7c87fdfe1451229d96e836640b1d62f86a8733fdfb95093c9042e08234b9a9df19c412e615ee78502c5a124d71408c8bcac0a0a6b525cab95e0f572057c016a4541734828795617f4f1c104459d2b483953449fcb54e49592b0e135acf3a2004669a6e5e62c573929f28f348232672a42958245a004617241058a407e2bf07403b5ca9136674bd489e6a5b5109429a736420333fa8116bcd28c84412a28511434295f33230b08cbf09da050502981cc79ad8c66f3422bc7b71599a31e9553191d58d9402ac565b210a4a46b2eaee3b8b4914a8cd04f0780bf5a52902a8b63a904daf83c3ca44270d13b93f992513c6c4f076ab4f838fef496168b084ed1bcb3c6ba4d04af05a51fa97f72819e74cfb74ef264e2fee09536423687ee7f022769ca6b8cc18a48603c88008c7450263a44e3c78601b32a15bcfae3cfe4ece4cdc9e9f9efe797e7afdec6503f3d8463980d74be240a91a3449daa5ad0a1f2335f1b12f05aa43a3e5c07714f6e1eb7122e11802d23265bf322be3833d024ce39b522ca035c66f170a5917bb9a9e89595670d0d8c3aaa5684295e4243fac204ea9a6e5ce2f54f9b97a079712f4b472d53d4d22e4cde2c753f87dbe8750c2c7598df3eed6d3ff46fea7991a7b0a859aa724cdb20f67fe76a9509b2c608c31529759cae7449f7428316a3fb572e92575d3e7265a3565945588c62a3d599b79d79a3d6152722864716fb9d9356bb81913d1c23f13f758e890d21d2c5bca0aa1198902c13083f2b358ef5231678c21723473176c034baa4a442fdd499a57ff426974a1e05996f3d7831f2158da3905357551c33ae9205d264a37e7178f4be19dafea0d68e61ce51d63a59167c4e8a2fb3a52750f1c4a4e6186cef58bb147bd970ec918bf9f8792bc0b268fe919313c1a3a0e81a9c3ba6db0e4be76d69617b5f0f20844f27babbc169c1d3eb748583a1abe08ba6ca75f184e936f3624e9ba2c6f06277efa0689478f4576d27d881ccae03dc0d9f0c7b720c1f688a761cd5cfbcf2949b72ce8bedef329ae6252924e2fa9957d01c8de022917555159b18b3ce8b06f421bc474dbc23af6b446d4718b769deef96e75a085d3baae2b8568b6723ede278cf7beb688fa2f1303c0d3ddc0eff927fa089e21d1cb7c3fd5320b88d4770eac52634c3c5a93bbd1d02f7ccae090d68a58f5a8dc98c565ce67a80d012e1836b4b266dedfd2c9ba8ee009bd67f379835a263702dec4787bc870e19c8d3394e7466b09d34e5a31f4736c0fd8ed7d65abf4d3a5c8c9a944581e81d38d33b0de9b615b39498d686db362908c3339cbf1e02718bc1cdd0835a04eb6e6a77e8c4cdd76c702c2ba8f096a3bfa8814806f9c208c2ed9de12a8e28968a08030f5a19b39c24d933003bacdea0f7035dd02562838ae1946931eeb7361bc0dd4cfde0350bcd254500065bccc3770acf12ce8acdfb70b9e695de799eef211b6cdb64b9449b886e5c0ba29bf96617bb5b135fe3bde88233bd0936c65ad291cbef31fc36bd21b3598ad7930ccf7346b455f67c3e9d47faf292342baa399d8ddf6f8fb13181b20c7ba6feeb6ad3ea8a61d04b3a85c3979edee6e51d9a8a55b9a7a73cb214bddaf32cdac7eb91790286e972e6c7f6a2d7b8832d46245e12fa4de0ee72fa667f9d515b1cf69231f6850ff0e80ffa64f8bad31288f43aaab727b4e0ed2d0a3e6bd8c6e70f340f18a6078357172f7b67b369f88c3543fd36df1f366e9391e6529d785735dfd4710453dfa15e2bf1287b216818b6920ed0ba952ac465703fdba538f24b25825fa79e8efd7c7dd04518cf9d4173b3c397e6831f8e8f51354ab88b8001eab514cc293ce98f68bbe5b5c3d43e06491baab5edd9a45bf292620a0cd778bb910d35bdc14f43a98677dda835663ded9b652d69be236dc9f5fd07f8106df8e5ab03fc04a51cded193cfb51494e87b662ee73b717738ddb6087e71141cca027ce06a9d7c0d4682ac77c2da783d09f7857b1bc10fdfd19b0a6f75f89d6f41f2023f5f8df08ba1c07590675af0f4e6e9743add39b0358fd906ef7f5447ffcdacfe0666ede7f681ffddec0dabcf8dd8d28ed866acc22c32d3737007f9b6e69e47d79b7bb3e9f41bae51f3c1eb478dfea8d1efa04677efa65d8d6e5d1282e29e75e57c7bf02ffae44bf03a1c0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "resource_account", + "source": "0x1f8b08000000000002ffe55a6d6fdcb811fe7ebf8297007b5a40b7b1f3722864c7a8eb1848d03809625fdbeba1d0ca12d74b582baa12657b6bf8bf77664891d4cbae9d3a1704e87e3076c5d1cc705e9e190efdecd93376c82a5ecba64a394bd254368562a2664dcd33a6245b254572c12d49cd4491f192c31fa0930b9614f62d4d9ab1f3354bf0fd6af6c333e07fb60476a92c54228a9ad5fc8a5749ce1a2572a104302421971cde10c5c540979aad64c5195f2c78aac415279ec4f7e953f6b9253e6c899dc6b9f8772332a1d6ac9432afed6b872ce357ec5ad44b1407f4a0e988d485ac60175d2621bb964d9ec1d34b9eaf5926995a72a0cc73790dcc22e2bf3b6347154f14f06205bfb6d6d1db9bb79262f33c8a52a28efb0bf399b11c2dd7288af89be590d50a0c43cfd9bc161705afe23429e7b035055b03e923b28eb41b78350fc17319aba46a99b34bbe0673900cfc993655853eb616491a785c2891264ac882c8c9466525af44067e1f12e800783e636ff802a412dff7ad493f8145c1b95993f39f807b9681bae4c0734d58272bb0a1d6adef1fcdf805985a16b5aa9a14f464aa4a8a3a49497899a497180565739eb7aef696d1bb637c8d97acad875ba6bc00f3d68a97e06b227b3963ef8a6d9b9b8b42a858ff9cb345539016214b933c4737a94a405a0c4280fc4912ae97225d8267819ca8aff8d0efce9fa35bfb69d483c6e1f39d9b1d08099b6510ddb94c2fd11602d37ca137fa6ac6fe0e1cd059b8a4033c9502b68222bbd9a2d5cd6592e9784acae41c737e4d9a029bd4f899f6d06a52f10b01b6ad8888429c8458c31e813487460e0d8e6406ac0a51965cc3c092e7a5cec8f95c1b11ecce3c47049a47c4265a8329bb2532c672ae1024e236265fb33fbf39fe5b7cf8e6cde73d8fc4191f28b63a3198e867a1cf76eaf3cacbd8d8e1b5c978f33bc6748e9df1828913dbe300af76e2ef5db190ecd65333f2be876c369bb1bb96c34a82ea4a0613ab48081c8d803bdf8cf4fd7d822e8218ca9a4a4742aafd82ceab28bcbab6a73c4cc905b0fd18a9f7ff11b2df0e02f0129bbcff14b29b88a173f76f0e42b636dfd707ce2b8c8945f023bf0109f57e271e0ca7f79fa2e850db16b84e43364234f5f93163ba95403c3d6faa024c88b451847122925cfc878f893a08c078d6fafa632d788ffbf27286ae1bd5eed657e5ce137067bf81e0a14f3ab53019d642af4823f2e9f8f7b13110333e0ba94a57496a417f3a523575c55e26571db680ff082b5ecfd08685e688c58c3bfe42d53c5f4005056e855426f3c11e95c58352d68a593750486926a8484a75f88f2dc03120506c6c149b7a32f75b1a5798ad0c042df38a59690b91ae3889ea5630288d8758ba72caa7120201f7cc9458f1b0c39884018b146c8e91e623a787ac4a5b443bd881631b26a6549eac4f88c086cc12ca2c5683db4198e1c71ac647928f257a64ff941e1d590d0e42179dfdc4378d82c7a64d8a51097dd65ee662d25a2f41c643da5a6f5e703594d062ee98249766c8d64581e6abd6258f05206914f91291d7c45ba3af72b1df37ed413075fc931a9a62f563d055fd755766c88eb1d01c9f9ec627ef4e4f0ecf8ede763534d9fb9a9dcbaa92d7f1452ecf933c5e356a44ba2fcab131f131620c602bc9b35154cb15df622f074046a1a454b28e1715b46dd7b2ba8ca27e4281ff5038f6dbb5caa28883fad55ef79916d37b78054d894f399064046ca3a0072961fb217e47d0dd429f8e2c1b055765cee3154468747b0a201642a0e2a393a4846a4aafe87ec474daae1103a00318680aea1f8dca449f6213cb8e8f3e7e383b7cf7e1f873fce1e359fce9d7bfbc7f77faf6f84dc49a5f5e825f760d774dfdcfe3cf1fe3c35fcfdec67f3dfe2d62da44fbcd9f0e80f2e6c9ce233f4f8c2c03186e330e29daba473d5ae48cb06fd2237429390212baa8396b192cd5883de8cafb4795d146967128b5bcb23c9150c7321c37f10da2130bec6805969de267be2a013403b594cdc5d2d2801a50865e3cfff97c0d02a796a13933f4cbac3d2899d767f482c13d58a8d6847e1baa4c600d292b0145d3b6a3a1b330e799ef61b7d26e2f46d931c81e924d4151aaabb5e745e73d04149be4e118d44f7d70ddb409ad7b48aa4ef72c77ed3357503b6e437da9c65204f9e5c0beefcc12769e5985479f7aca770906e672cb46e9078764a88f930bae632259519cc23c048103a607955ce90024eddbbadc72b1422cb72f89f07b22db327f70843f38b2d907a98cd17586411eb5a759ecebe9182f8c62d664f21abc017d66d9374327bfeb25f574b280b3e7b9b3109db7b1791a8e68a89d2a384e1ed2d4cc0ea897b6007ff065b948d108ebd91f9d94f84139b18e1b42f8ef205d75796c4fe09e198349cb6240dda6814f6dd99356507c754580fec86314fa16f83fc18cf1a3019881921a92a94d087f5645cbdd9cf3f326e77014ab7be701909d64023229b94a449e9ce7fa00528af4b229ff87a4e81d831e951f2bae922c51490ccdb03e626f204c61a463571cc1f750d846fa45d035ea99295637858bf8706ce721edf2fb0dff4e9bb929f4317a1eabf7c6406a556c8757c395cea97163d3f9b5bb26ad707b4c1c813a4de0b9160ab49d5f59ae2d5aea13dad413e20f95da30f494691b6fff40a2a33898c2ecc8b2690f25addea965317682dca0d75e8745ff8cbc15e7ddabbea6401a4c40a0536746fb09fb87e1f10368479dd68da0099a58fb124678754cdd4f3019387c60e7cef46018bb1d5b38cb329ec3e1f0767bbdf01d3110d766cd305b6012c42be0e3e387557f5078682a8fb709fafa6dacc90ab13b743708dccc90fcb17c5dcb54d0100fa796d45ff53bd5fe2d43f772a1ed53e13601eff4cc558abb562c74a326b01ea108d9a8ce71ad9fb39d4a4528b375ca3e8219c3bae4822b6a2f9d4cce6f018fed70d0ce7586b9ed49838687061e5104738098e600c1a623ffb41fe20fc8b89184ebd4401fe21925466c730f4b61378cbf0829fc5dee0dd804712fa5bb25d847858a23e06d008649874d4f50e0efce6799f3e2422d612adf6537c5b9dbce384a22880c0cb4dd3c84d378e8bbc71603fc061079ed38755ff0b7917118c5c8b54134bd85bd8d186f737fd8e16cba9618c7d9470256a77bf09b9ca1301fd19efe0e4db40af05f08f0ee6de766173ed37f8db7ad481a9bcdf92dab850a440664d536100fa8ed48beadb8e1fa9875ba6a04964d3f9db19bd473badd27ded2a62694e461a758aee9d590b5354e87c3b497f31b13d74fda8dcaf5b166d3b475a4696e07e396f7a071ee08d0f3663fccb5b6836c1d49fe47c6bbaf434fbdb8a7df3d37bb2eda7d8b0ea3d91ad084b4a6373f9ebf78b929beb5e670ae761c6c2bcc1e10d78f0aecf131faa678a700dd185701de6a8674c3391d0d2b6f44efae5fa15256311970626907e12e0a42517c13d9fbb388dd9d1d881e12da1f5d641cee18455fed9056b767ec3d09ebe648f7666ec87677be69026e9eda185d7bc5baab5e6b385d8cd0a19404f865c4bc9a0a6d4f549e131e9e1a9019af4c6a3cfd9ddf94603e0ec685a94653f12001c000e6f8bf1f50ce6f7e81ab8b57db12091acec7e4d2b74ba507968eaf5139be2df87fb728d08bfb3e087cbdc8bffbe1bfafb5481a76290000", + "source_map": "0x" + } + ], + "name": "AptosFramework", + "source_digest": "09C9ACBC0EB783802AD9881AA2758F7FE88523B528194473DCA1F5330C33F8F9", + "upgrade_number": "0", + "upgrade_policy": { + "policy": 1 + } + } + ] + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::coin::CoinInfo<0x1::aptos_coin::AptosCoin>", + "data": { + "decimals": 8, + "name": "Aptos Coin", + "supply": { + "vec": [ + { + "aggregator": { + "vec": [ + { + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "limit": "340282366920938463463374607431768211455" + } + ] + }, + "integer": { + "vec": [] + } + } + ] + }, + "symbol": "APT" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::coin::SupplyConfig", + "data": { + "allow_upgrades": false + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::block::BlockResource", + "data": { + "epoch_interval": "86400000000", + "height": "0", + "new_block_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "3" + } + } + }, + "update_epoch_interval_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "4" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::stake::ValidatorSet", + "data": { + "active_validators": [ + { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "config": { + "consensus_pubkey": "0xaa7023a1ea88520c0b163c530367dfbfe9269621c96dc9dc9147aca9c278b1340c07b21600b2b5423a2fb88c679b0c5a", + "fullnode_addresses": "0x012d040000000000052518072022b18b21ecf48f18a1ebb1b8fbe0347af7913e84ad27473669eca6efc8df087a0800", + "network_addresses": "0x012d040000000000052418072093c5ad141db18cfef10f1452d9019922745c7b8cec22ea40118b9e1a76a756680800", + "validator_index": "0" + }, + "voting_power": "1" + } + ], + "consensus_scheme": 0, + "pending_active": [], + "pending_inactive": [], + "total_joining_power": "0", + "total_voting_power": "1" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::stake::ValidatorPerformance", + "data": { + "validators": [ + { + "failed_proposals": "0", + "successful_proposals": "0" + } + ] + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::stake::AptosCoinCapabilities", + "data": { + "mint_cap": { + "dummy_field": false + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::voting::VotingForum<0x1::governance_proposal::GovernanceProposal>", + "data": { + "events": { + "create_proposal_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "5" + } + } + }, + "register_forum_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "6" + } + } + }, + "resolve_proposal_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "7" + } + } + }, + "vote_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "8" + } + } + } + }, + "next_proposal_id": "0", + "proposals": { + "handle": "0x38ff67f17cf7998cd41ed5267b52cff7af37d06a22e8b390ce44b69680fc0e97" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000001", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "0" + } + } + }, + "guid_creation_num": "12", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::account::OriginatingAddress", + "data": { + "address_map": { + "handle": "0x619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::version::Version", + "data": { + "major": "4" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::version::SetVersionCapability", + "data": { + "dummy_field": false + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::chain_id::ChainId", + "data": { + "id": 4 + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::timestamp::CurrentTimeMicroseconds", + "data": { + "microseconds": "0" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::chain_status::GenesisEndMarker", + "data": { + "dummy_field": false + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::gas_schedule::GasSchedule", + "data": { + "entries": [ + { + "key": "instr.nop", + "val": "1" + }, + { + "key": "instr.ret", + "val": "1" + }, + { + "key": "instr.abort", + "val": "1" + }, + { + "key": "instr.br_true", + "val": "1" + }, + { + "key": "instr.br_false", + "val": "1" + }, + { + "key": "instr.branch", + "val": "1" + }, + { + "key": "instr.pop", + "val": "1" + }, + { + "key": "instr.ld_u8", + "val": "1" + }, + { + "key": "instr.ld_u64", + "val": "1" + }, + { + "key": "instr.ld_u128", + "val": "1" + }, + { + "key": "instr.ld_true", + "val": "1" + }, + { + "key": "instr.ld_false", + "val": "1" + }, + { + "key": "instr.ld_const.base", + "val": "1" + }, + { + "key": "instr.ld_const.per_byte", + "val": "1" + }, + { + "key": "instr.imm_borrow_loc", + "val": "1" + }, + { + "key": "instr.mut_borrow_loc", + "val": "1" + }, + { + "key": "instr.imm_borrow_field", + "val": "1" + }, + { + "key": "instr.mut_borrow_field", + "val": "1" + }, + { + "key": "instr.imm_borrow_field_generic", + "val": "1" + }, + { + "key": "instr.mut_borrow_field_generic", + "val": "1" + }, + { + "key": "instr.copy_loc.base", + "val": "1" + }, + { + "key": "instr.copy_loc.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.move_loc.base", + "val": "1" + }, + { + "key": "instr.st_loc.base", + "val": "1" + }, + { + "key": "instr.call.base", + "val": "1" + }, + { + "key": "instr.call.per_arg", + "val": "1" + }, + { + "key": "instr.call_generic.base", + "val": "1" + }, + { + "key": "instr.call_generic.per_ty_arg", + "val": "1" + }, + { + "key": "instr.call_generic.per_arg", + "val": "1" + }, + { + "key": "instr.pack.base", + "val": "1" + }, + { + "key": "instr.pack.per_field", + "val": "1" + }, + { + "key": "instr.pack_generic.base", + "val": "1" + }, + { + "key": "instr.pack_generic.per_field", + "val": "1" + }, + { + "key": "instr.unpack.base", + "val": "1" + }, + { + "key": "instr.unpack.per_field", + "val": "1" + }, + { + "key": "instr.unpack_generic.base", + "val": "1" + }, + { + "key": "instr.unpack_generic.per_field", + "val": "1" + }, + { + "key": "instr.read_ref.base", + "val": "1" + }, + { + "key": "instr.read_ref.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.write_ref.base", + "val": "1" + }, + { + "key": "instr.freeze_ref", + "val": "1" + }, + { + "key": "instr.cast_u8", + "val": "1" + }, + { + "key": "instr.cast_u64", + "val": "1" + }, + { + "key": "instr.cast_u128", + "val": "1" + }, + { + "key": "instr.add", + "val": "1" + }, + { + "key": "instr.sub", + "val": "1" + }, + { + "key": "instr.mul", + "val": "1" + }, + { + "key": "instr.mod", + "val": "1" + }, + { + "key": "instr.div", + "val": "1" + }, + { + "key": "instr.bit_or", + "val": "1" + }, + { + "key": "instr.bit_and", + "val": "1" + }, + { + "key": "instr.bit_xor", + "val": "1" + }, + { + "key": "instr.bit_shl", + "val": "1" + }, + { + "key": "instr.bit_shr", + "val": "1" + }, + { + "key": "instr.or", + "val": "1" + }, + { + "key": "instr.and", + "val": "1" + }, + { + "key": "instr.not", + "val": "1" + }, + { + "key": "instr.lt", + "val": "1" + }, + { + "key": "instr.gt", + "val": "1" + }, + { + "key": "instr.le", + "val": "1" + }, + { + "key": "instr.ge", + "val": "1" + }, + { + "key": "instr.eq.base", + "val": "1" + }, + { + "key": "instr.eq.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.neq.base", + "val": "1" + }, + { + "key": "instr.neq.per_abs_val_unit", + "val": "1" + }, + { + "key": "instr.imm_borrow_global.base", + "val": "10" + }, + { + "key": "instr.imm_borrow_global_generic.base", + "val": "10" + }, + { + "key": "instr.mut_borrow_global.base", + "val": "10" + }, + { + "key": "instr.mut_borrow_global_generic.base", + "val": "10" + }, + { + "key": "instr.exists.base", + "val": "10" + }, + { + "key": "instr.exists_generic.base", + "val": "10" + }, + { + "key": "instr.move_from.base", + "val": "10" + }, + { + "key": "instr.move_from_generic.base", + "val": "10" + }, + { + "key": "instr.move_to.base", + "val": "10" + }, + { + "key": "instr.move_to_generic.base", + "val": "10" + }, + { + "key": "instr.vec_len.base", + "val": "1" + }, + { + "key": "instr.vec_imm_borrow.base", + "val": "1" + }, + { + "key": "instr.vec_mut_borrow.base", + "val": "1" + }, + { + "key": "instr.vec_push_back.base", + "val": "1" + }, + { + "key": "instr.vec_pop_back.base", + "val": "1" + }, + { + "key": "instr.vec_swap.base", + "val": "1" + }, + { + "key": "instr.vec_pack.base", + "val": "1" + }, + { + "key": "instr.vec_pack.per_elem", + "val": "1" + }, + { + "key": "instr.vec_unpack.base", + "val": "1" + }, + { + "key": "instr.vec_unpack.per_expected_elem", + "val": "1" + }, + { + "key": "txn.min_transaction_gas_units", + "val": "600" + }, + { + "key": "txn.large_transaction_cutoff", + "val": "600" + }, + { + "key": "txn.intrinsic_gas_per_byte", + "val": "8" + }, + { + "key": "txn.maximum_number_of_gas_units", + "val": "4000000" + }, + { + "key": "txn.min_price_per_gas_unit", + "val": "0" + }, + { + "key": "txn.max_price_per_gas_unit", + "val": "10000" + }, + { + "key": "txn.max_transaction_size_in_bytes", + "val": "32768" + }, + { + "key": "txn.gas_unit_scaling_factor", + "val": "1000" + }, + { + "key": "txn.load_data.base", + "val": "1" + }, + { + "key": "txn.load_data.per_byte", + "val": "1" + }, + { + "key": "txn.load_data.failure", + "val": "1" + }, + { + "key": "txn.write_data.per_op", + "val": "100" + }, + { + "key": "txn.write_data.new_item", + "val": "1000" + }, + { + "key": "txn.write_data.per_byte_in_key", + "val": "100" + }, + { + "key": "txn.write_data.per_byte_in_val", + "val": "100" + }, + { + "key": "move_stdlib.bcs.to_bytes.per_byte_serialized", + "val": "1" + }, + { + "key": "move_stdlib.bcs.to_bytes.failure", + "val": "10" + }, + { + "key": "move_stdlib.hash.sha2_256.base", + "val": "1" + }, + { + "key": "move_stdlib.hash.sha2_256.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.hash.sha3_256.base", + "val": "1" + }, + { + "key": "move_stdlib.hash.sha3_256.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.signer.borrow_address.base", + "val": "1" + }, + { + "key": "move_stdlib.string.check_utf8.base", + "val": "1" + }, + { + "key": "move_stdlib.string.check_utf8.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.string.is_char_boundary.base", + "val": "1" + }, + { + "key": "move_stdlib.string.sub_string.base", + "val": "1" + }, + { + "key": "move_stdlib.string.sub_string.per_byte", + "val": "1" + }, + { + "key": "move_stdlib.string.index_of.base", + "val": "1" + }, + { + "key": "move_stdlib.string.index_of.per_byte_pattern", + "val": "1" + }, + { + "key": "move_stdlib.string.index_of.per_byte_searched", + "val": "1" + }, + { + "key": "move_stdlib.unit_test.create_signers_for_testing.base", + "val": "1" + }, + { + "key": "move_stdlib.unit_test.create_signers_for_testing.unit", + "val": "1" + }, + { + "key": "aptos_framework.account.create_address.base", + "val": "1" + }, + { + "key": "aptos_framework.account.create_signer.base", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.base", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pubkey_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pubkey_aggregate", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pubkey_subgroup_check", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_aggregate", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_subgroup_check", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_sig_verify", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pop_verify", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_pairing", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_msg_hashing", + "val": "1" + }, + { + "key": "aptos_framework.bls12381.per_byte_hashing", + "val": "1" + }, + { + "key": "aptos_framework.signature.base", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_pubkey_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_pubkey_small_order_check", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_sig_deserialize", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_sig_strict_verify", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_msg_hashing_base", + "val": "1" + }, + { + "key": "aptos_framework.signature.per_msg_byte_hashing", + "val": "1" + }, + { + "key": "aptos_framework.secp256k1.base", + "val": "1" + }, + { + "key": "aptos_framework.secp256k1.ecdsa_recover", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.basepoint_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.basepoint_double_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_add", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_compress", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_decompress", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_equals", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_from_64_uniform_bytes", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_identity", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_neg", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_sub", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.point_parse_arg", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_sha512_per_byte", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_sha512_per_hash", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_add", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_reduced_from_32_bytes", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_uniform_from_64_bytes", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_from_u128", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_from_u64", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_invert", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_is_canonical", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_mul", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_neg", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_sub", + "val": "1" + }, + { + "key": "aptos_framework.ristretto255.scalar_parse_arg", + "val": "1" + }, + { + "key": "aptos_framework.hash.sip_hash.base", + "val": "1" + }, + { + "key": "aptos_framework.hash.sip_hash.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.hash.keccak256.base", + "val": "1" + }, + { + "key": "aptos_framework.hash.keccak256.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_of.base", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_of.per_abstract_memory_unit", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_name.base", + "val": "1" + }, + { + "key": "aptos_framework.type_info.type_name.per_abstract_memory_unit", + "val": "1" + }, + { + "key": "aptos_framework.util.from_bytes.base", + "val": "1" + }, + { + "key": "aptos_framework.util.from_bytes.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.transaction_context.get_script_hash.base", + "val": "1" + }, + { + "key": "aptos_framework.code.request_publish.base", + "val": "1" + }, + { + "key": "aptos_framework.code.request_publish.per_byte", + "val": "1" + }, + { + "key": "aptos_framework.event.write_to_event_store.base", + "val": "1" + }, + { + "key": "aptos_framework.event.write_to_event_store.per_abstract_memory_unit", + "val": "1" + }, + { + "key": "aptos_framework.state_storage.get_usage.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.add.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.read.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.sub.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator.destroy.base", + "val": "1" + }, + { + "key": "aptos_framework.aggregator_factory.new_aggregator.base", + "val": "1" + }, + { + "key": "table.common.load.base", + "val": "1" + }, + { + "key": "table.common.load.per_byte", + "val": "1" + }, + { + "key": "table.common.load.failure", + "val": "1" + }, + { + "key": "table.new_table_handle.base", + "val": "1" + }, + { + "key": "table.add_box.base", + "val": "1" + }, + { + "key": "table.add_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.borrow_box.base", + "val": "1" + }, + { + "key": "table.borrow_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.contains_box.base", + "val": "1" + }, + { + "key": "table.contains_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.remove_box.base", + "val": "1" + }, + { + "key": "table.remove_box.per_byte_serialized", + "val": "1" + }, + { + "key": "table.destroy_empty_box.base", + "val": "1" + }, + { + "key": "table.drop_unchecked_box.base", + "val": "1" + }, + { + "key": "misc.abs_val.u8", + "val": "1" + }, + { + "key": "misc.abs_val.u64", + "val": "8" + }, + { + "key": "misc.abs_val.u128", + "val": "16" + }, + { + "key": "misc.abs_val.bool", + "val": "1" + }, + { + "key": "misc.abs_val.address", + "val": "32" + }, + { + "key": "misc.abs_val.struct", + "val": "8" + }, + { + "key": "misc.abs_val.vector", + "val": "16" + }, + { + "key": "misc.abs_val.reference", + "val": "16" + }, + { + "key": "misc.abs_val.per_u8_packed", + "val": "1" + }, + { + "key": "misc.abs_val.per_u64_packed", + "val": "8" + }, + { + "key": "misc.abs_val.per_u128_packed", + "val": "16" + }, + { + "key": "misc.abs_val.per_bool_packed", + "val": "1" + }, + { + "key": "misc.abs_val.per_address_packed", + "val": "32" + } + ] + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::state_storage::GasParameter", + "data": { + "usage": { + "bytes": "0", + "items": "0" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::state_storage::StateStorageUsage", + "data": { + "epoch": "0", + "usage": { + "bytes": "0", + "items": "0" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::staking_config::StakingConfig", + "data": { + "allow_validator_set_change": false, + "maximum_stake": "18446744073709551615", + "minimum_stake": "0", + "recurring_lockup_duration_secs": "86400", + "rewards_rate": "273972", + "rewards_rate_denominator": "1000000000", + "voting_power_increase_limit": "50" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::reconfiguration::Configuration", + "data": { + "epoch": "1", + "events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "2" + } + } + }, + "last_reconfiguration_time": "0" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::transaction_fee::AptosCoinCapabilities", + "data": { + "burn_cap": { + "dummy_field": false + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::VotingRecords", + "data": { + "votes": { + "handle": "0xdc3189011da6e60643ef48030b4f8fc315beddc236c6c523db96778af7b47056" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::GovernanceConfig", + "data": { + "min_voting_threshold": "0", + "required_proposer_stake": "0", + "voting_duration_secs": "3600" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::GovernanceEvents", + "data": { + "create_proposal_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "9" + } + } + }, + "update_config_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "10" + } + } + }, + "vote_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x1", + "creation_num": "11" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::ApprovedExecutionHashes", + "data": { + "hashes": { + "data": [] + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_governance::GovernanceResponsbility", + "data": { + "signer_caps": { + "data": [ + { + "key": "0x1", + "value": { + "account": "0x1" + } + }, + { + "key": "0x2", + "value": { + "account": "0x2" + } + }, + { + "key": "0x3", + "value": { + "account": "0x3" + } + }, + { + "key": "0x4", + "value": { + "account": "0x4" + } + }, + { + "key": "0x5", + "value": { + "account": "0x5" + } + }, + { + "key": "0x6", + "value": { + "account": "0x6" + } + }, + { + "key": "0x7", + "value": { + "account": "0x7" + } + }, + { + "key": "0x8", + "value": { + "account": "0x8" + } + }, + { + "key": "0x9", + "value": { + "account": "0x9" + } + }, + { + "key": "0xa", + "value": { + "account": "0xa" + } + } + ] + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::consensus_config::ConsensusConfig", + "data": { + "config": "0x00010a0000000000000014000000000000000200e8030000000000000a0000000000000001000000000000000a0000000a00000000000000010000000000000001050000000a00000000000000" + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::aggregator_factory::AggregatorFactory", + "data": { + "phantom_table": { + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca" + } + } + }, + "type": "write_resource" + }, + { + "address": "0x1", + "state_key_hash": "", + "data": { + "type": "0x1::transaction_validation::TransactionValidation", + "data": { + "module_addr": "0x1", + "module_name": "0x7472616e73616374696f6e5f76616c69646174696f6e", + "module_prologue_name": "0x6d6f64756c655f70726f6c6f677565", + "multi_agent_prologue_name": "0x6d756c74695f6167656e745f7363726970745f70726f6c6f677565", + "script_prologue_name": "0x7363726970745f70726f6c6f677565", + "user_epilogue_name": "0x6570696c6f677565" + } + }, + "type": "write_resource" + }, + { + "address": "0x2", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000002", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x2", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x2", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01001002105a036a880204f2023c05ae03980507c608a10d08e7154006a716e601108d18c0060acd1ea0020ced20fe110deb323c000001010102010301040105010600070008060000090400000a0700000b0800000c0600000d0600000e0600000f0600001006000011070000120400001304000014070000150700001607000017080000180600051a07000646040203010001034904010601075b07000019000100001b020300001c040500001d060300001e070800001f0603000020090a0000210b0c0000220d0c000023070e0000240f03000025100a000026110300002712030000281303000029140300002a0c1500002b160100002c160100002d161700002e180100002f19030000301a030000311a030000321b030000331c030000341d0c0000351e030000361f0300003720210000381822000039230300003a240300003b252100003c262100066829050203000669292a020300026a010100046b1a1700036c2e030106066d2f30020300066e2f31020300066f033502030401701a370106027101010006723a03020300076f3d3e000773033e00027401010007754b030023282428232c272d282c292c23332a332a2c2b362b382b392d33273628332d2c273827412d282828242c2a282b412b442b2d2b4527392745274429280205080d010306060c050811081103030002050811010106060c081108110811030a0101060a0101080203050811081101080c02080c0301080d0405081108110301080e0e060c081108110811030308110503030a010a08110a0a020a08110d060c081108110811030811050303080e0a08110a0a020a081102060c080a0205080a04060c060c080d0307060c060c050811081103030108090106080901050106080a02060c080d01060c0207080a080a05060c05081108110303060c080c030a060c05050811081103030a08110a0a020a081102060c010207080a0301080a0106080d04060c080d05030505080d0a08110a0a020a081103060c080d030305080d03020306080f02080d080a02060b12020900090109000106090106030708030507080b080d07080f02080c080b01080002070b13010900090002070b12020900090109000107090101090101060b120208110801020811080107070b1202081108010811050801070b1202081108010708030802010b120209000901010804010b1301090001080501080703070b1202090009010900090102080e080c0c030305081103030305070801070803080b080c030a08110a0a020a081101081404070b1202080d080a080d05070b1202080d080a0307080a07080f07080f01080604060b1202080c080b0506080b080c09070b1202080d080a080d03080d0814080d070b1202080d080a05070b1202080d080a01081001080806070b1202080c080b080c070b1202080c080b0507080b080d0b070b1202080c080b080c070b1202080c080b030303080a080d080a07080b080d020507010201080a04070b1202080d080a080d070b1202080d080a070814040708140a08110a0a020a081106070b1202080d080a080d080a070307080f070b1202080d080a05746f6b656e076163636f756e74056572726f72056576656e74067369676e657206737472696e67057461626c650c70726f70657274795f6d61700e4275726e546f6b656e4576656e740e436f6c6c656374696f6e446174611a436f6c6c656374696f6e4d75746162696c697479436f6e6669670b436f6c6c656374696f6e7315437265617465436f6c6c656374696f6e4576656e7414437265617465546f6b656e446174614576656e740c4465706f7369744576656e740e4d696e74546f6b656e4576656e741b4d7574617465546f6b656e50726f70657274794d61704576656e7407526f79616c747905546f6b656e09546f6b656e446174610b546f6b656e44617461496407546f6b656e496415546f6b656e4d75746162696c697479436f6e6669670a546f6b656e53746f72650d57697468647261774576656e740a62616c616e63655f6f6606537472696e67046275726e17636865636b5f636f6c6c656374696f6e5f657869737473116372656174655f636f6c6c656374696f6e236372656174655f636f6c6c656374696f6e5f6d75746162696c6974795f636f6e666967186372656174655f636f6c6c656374696f6e5f736372697074146372656174655f746f6b656e5f646174615f69640f6372656174655f746f6b656e5f6964136372656174655f746f6b656e5f69645f7261771e6372656174655f746f6b656e5f6d75746162696c6974795f636f6e666967136372656174655f746f6b656e5f736372697074106372656174655f746f6b656e646174610d6465706f7369745f746f6b656e0e6469726563745f6465706f7369740f6469726563745f7472616e73666572166469726563745f7472616e736665725f7363726970740b6765745f726f79616c7479176765745f726f79616c74795f64656e6f6d696e61746f72156765745f726f79616c74795f6e756d657261746f72116765745f726f79616c74795f7061796565106765745f746f6b656e5f616d6f756e7410696e697469616c697a655f746f6b656e17696e697469616c697a655f746f6b656e5f73637269707416696e697469616c697a655f746f6b656e5f73746f7265056d657267650b6d696e745f7363726970740a6d696e745f746f6b656e176d75746174655f746f6b656e5f70726f70657274696573166f70745f696e5f6469726563745f7472616e736665720573706c697408746f6b656e5f6964087472616e736665721e7570646174655f746f6b656e5f70726f70657274795f696e7465726e616c0e77697468647261775f746f6b656e1c77697468647261775f776974685f6576656e745f696e7465726e616c02696406616d6f756e740b6465736372697074696f6e046e616d650375726906737570706c79076d6178696d756d116d75746162696c6974795f636f6e6669670f636f6c6c656374696f6e5f64617461055461626c650a746f6b656e5f64617461186372656174655f636f6c6c656374696f6e5f6576656e74730b4576656e7448616e646c65186372656174655f746f6b656e5f646174615f6576656e7473116d696e745f746f6b656e5f6576656e74730763726561746f720f636f6c6c656374696f6e5f6e616d6515726f79616c74795f70617965655f616464726573731a726f79616c74795f706f696e74735f64656e6f6d696e61746f7218726f79616c74795f706f696e74735f6e756d657261746f720d70726f70657274795f6b6579730f70726f70657274795f76616c7565730e70726f70657274795f7479706573066f6c645f6964066e65775f6964046b6579730676616c7565730574797065730d70617965655f6164647265737310746f6b656e5f70726f706572746965730b50726f70657274794d6170186c6172676573745f70726f70657274795f76657273696f6e07726f79616c74791264656661756c745f70726f706572746965730a636f6c6c656374696f6e0d746f6b656e5f646174615f69641070726f70657274795f76657273696f6e0a70726f7065727469657306746f6b656e730e6465706f7369745f6576656e74730f77697468647261775f6576656e74730b6275726e5f6576656e74731c6d75746174655f746f6b656e5f70726f70657274795f6576656e747308636f6e7461696e7306626f72726f77096e6f745f666f756e640a616464726573735f6f660a656d69745f6576656e740a626f72726f775f6d75740672656d6f7665036e6577106e65775f6576656e745f68616e646c650e616c72656164795f6578697374730361646405656d70747910696e76616c69645f617267756d656e74137570646174655f70726f70657274795f6d61700000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000103080000000000000000030802000000000000000308010000000000000003080400000000000000030803000000000000000308050000000000000003081000000000000000030806000000000000000308070000000000000003080800000000000000030809000000000000000308140000000000000003080a0000000000000003080b0000000000000003081100000000000000030813000000000000000308120000000000000003080c0000000000000003080d0000000000000003080f0000000000000003080e000000000000000308150000000000000003081600000000000000126170746f733a3a6d657461646174615f7630ab061700000000000000001445414c52454144595f4841535f42414c414e4345000100000000000000164542414c414e43455f4e4f545f5055424c49534845440002000000000000001a45434f4c4c454354494f4e535f4e4f545f5055424c49534845440003000000000000001945434f4c4c454354494f4e5f4e4f545f5055424c49534845440004000000000000001a45434f4c4c454354494f4e5f414c52454144595f45584953545300050000000000000027454352454154455f574f554c445f4558434545445f434f4c4c454354494f4e5f4d4158494d554d0006000000000000001545494e53554646494349454e545f42414c414e43450007000000000000001845494e56414c49445f434f4c4c454354494f4e5f4e414d450008000000000000001445494e56414c49445f544f4b454e5f4d4552474500090000000000000020454d494e545f574f554c445f4558434545445f544f4b454e5f4d4158494d554d000a0000000000000013454e4f5f4255524e5f4341504142494c495459000b0000000000000013454e4f5f4d494e545f4341504142494c495459000c000000000000001545544f4b454e5f414c52454144595f455849535453000d000000000000001445544f4b454e5f4e4f545f5055424c4953484544000e000000000000001a45544f4b454e5f53544f52455f4e4f545f5055424c4953484544000f000000000000002c45544f4b454e5f53504c49545f414d4f554e545f4c41524745525f5448454e5f544f4b454e5f414d4f554e5400100000000000000012454649454c445f4e4f545f4d555441424c4500110000000000000015454e4f5f4d55544154455f4341504142494c4954590012000000000000001745544f454b4e5f50524f50455254595f4558495354454400130000000000000018454e4f5f544f4b454e5f494e5f544f4b454e5f53544f52450014000000000000002c454e4f4e5f5a45524f5f50524f50455254595f56455253494f4e5f4f4e4c595f4f4e455f494e5354414e43450015000000000000002045555345525f4e4f545f4f50545f494e5f4449524543545f5452414e534645520016000000000000000e4557495448445241575f5a45524f000002023d080d3e030102063f0811400811410811420343034408020202033f0141014301030205450b120208110801470b1202080c080b480b130108044a0b130108054b0b130108070402054c054d08114108113f0811430305020c3d080c3f081143034108114e054f03500340081144080e510a0811520a0a02530a08110602023d080d3e030702023d080c3e0308020554080d55080d560a0811570a0a02580a081109020350034f0359050a02033d080d3e035a08140b020943035c0342034108115d08094008113f08115e081444080e0c02034c055f08114008110d020260080c61030e0205430141015d013f0162010f0206630b1202080d080a2801640b13010806650b13010810660b13010800670b130108081002023d080d3e03000100010f27170b002b0f0c030a0310000a013800030905110b0310000b0138011001140c0205150b03010600000000000000000c020b020201010402030f2b600b010b020b030b0411080c0a0e0a10021003140c080a08290303130b000107011125270b082a030c070a0710040e0a100214380203240b00010b070107121125270a000a0a0b051121130a010c06010b0011262a0f0c0b0b0b0f050a0a0a06120038030a070f040e0a10021438040c090a091006140b06170a090f06150b0910061406000000000000000021034c055d0b070f040e0a1002143805130b010101010101010101055f0b0701020201000103320e0a002903030607011125270b002b0310070c020b020b01380602030100010334470a0011260c080a08290320030805140a00380738080a0038090a00380a0b00380b12032d0305160b00010a082a030f070c0a0a0a0a010c070c060b062e0b0738062003290b0a010703112c270e0511040c0c0a020e01140a030600000000000000000a040b0c12010c090b0a0a010b09380c0a082a030c0b0b0b0f080b080e01140b030b020b041204380d0204010000030e0a0007004205140a0007024205140b000701420514120202050104010303080b000b010b020b030b040b051103020601000003050b000b010b02120c020701000003040b000b01120d020801000003070b000b010b0211060b03120d020901000003160a0007004205140a0007024205140a0007044205140a0007014205140b000703420514120e020a010402030f3b180e0a11090c0e0a000b010b020b030b050b060b070b080b090b0e0b0b0b0c0b0d110b0c0f0b000b0f0b04111a01020b010001033c750b0011260c140a142903030907011125270a142a030c160b140b010a0211060c180a1610070e181009143806031d0b16010704112c270a1610040a1838022003280b16010711112c270a160f070e18100914380e0c150a15100a14060100000000000000160a150f0a150a15100b140b15100a142603430b16010705270a040c130a050c100a070c0d0a080c0e0a060c0f0b130600000000000000000600000000000000000b100b0e0b0d0b0f12090a020a030a0a0a0b0a0c112e0a09120b0c170a160f040a180b17380f0b160f0c0a180b030b040b050b060b070b080b020b090b0a0b0b0b0c120538100b18020c0100010f3f220a0011260c040a0011170a042a0f0f000c050b050e01100d140c030c020b022e0b033800200316051c0b000e01100d141115051e0b00010b040b01110d020d0000010f40320a002a0f0c030b030f0e0e01100d140e01100114120638110a00290f031307141125270b002a0f0c040a0410000e01100d14380020031f05270b040f000e01100d140b01381205310b040f000e01100d1438130c020b020b011118020e0100010f21090b000b020b0311210c040b010b04110c020f0104010f0c0c0b020b030b040b0511080c070b000b010b070b06110e02100100010342210e001002140c040e041003140c020a022903030d0701270b022b0310040c010a010a04380203190b01010712270b010b0438140c030b03100f14021101000003040b00101014021201000003040b00101114021301000003040b00101214021401000003040b0010011402150100010f432c0b0011260c090a09290f030907141125270b092a0f0f000c0a0a0a0a010c030c020b022e0b03380020031c0b0a010700112c270b0a0c080a010c070b010c05112f0c060b080b070b050600000000000000000b06120a3812021601040003030b001117021701000003170a001126290f20030605140a003815090a0038160a0038170a0038180b003819120f2d0f05160b00010218010000031b0a00100d0e01100d21030b0b000107091130270a001001140e01100114160b000f01150b01130a0101010219010402030f0a160b010b020b0311060c050e051003140a0011262103100b0001070d270b000b050b04111a01021a010002030f46510e011003140a00112621030b0b0001070d270e011003140c060a062a030f040c050a050a010c040c030b032e0b04380203220b05010b00010712270b050a0138040c070a071006140a02160a071013142503360b07010b0001070a270a071006140a02160b070f06150a0106000000000000000011070c080b000a080a02112f120a110c0b062a030f140b010b021207381a0b08021b010402030f478b010b0011260a02210307070e270a022903030c0701270a022a030f040c0c0b020b030b040b0511080c140a0c0e141002140c0b0c0a0b0a2e0b0b380203250b0c010712270b0c0e1410021438040c130a13101510161403340b13010706270e1410171406000000000000000021033b057c0a010a140b0611220c120600000000000000000c0e0a131018140c0f0a0e0e1210011423034d056e0a0f0a0e16060100000000000000160c0d0e141002140b0d11070c110a110601000000000000000a13101914120a0c100a010b10110d0a010b110a070a080a0911200b0e060100000000000000160c0e05460b0f0e12100114160b130f18150b12130a010101058a010b13010b0606010000000000000021038401070b270b010b140b070b080b091120021c0104010f48100b0011260c020a02290f03080714270b022a0f0f1a0c030b010b0315021d01000003190a001001140a0126030a0b00010713270a001001140a01170a000f01150b00100d140b01112f120a021e01000003030b00100d021f0100010f49140a022b0f101a140c040b04030b0b00010715270b000b010b0311210c050b020b05110d02200000010f4a260a002a0f0f000c070a070a010c060c050b052e0b06380003110b0701070f270b070a0138130f1b0c080b080a020a030a0411310b002a0f0f1c0a010b010b020b030b041208381b02210100010f17080b0011260c030b030b010b02112202220000010f4c520a0206000000000000000024030707161130270a000a0111000a0226031007071130270a002a0f0c070b070f1d0a010a021210381c0a00290f031f07141125270b002a0f0f000c080a080a010c040c030b032e0b04380003310b080107021125270a080a0138130f010c060a06140a0224033c054a0b08010a06140a02170b06150b010b02112f120a0c0505500b06010b080b01381d0c050b05020f000a010d000c0003010f040b02030003020c010103010403030a000f020b040901090009020b0003040b080e040d010b010b070f010a020f050f0300", + "abi": { + "address": "0x3", + "name": "token", + "friends": [], + "exposed_functions": [ + { + "name": "balance_of", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x3::token::TokenId" + ], + "return": [ + "u64" + ] + }, + { + "name": "burn", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "check_collection_exists", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "create_collection", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "vector" + ], + "return": [] + }, + { + "name": "create_collection_mutability_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector" + ], + "return": [ + "0x3::token::CollectionMutabilityConfig" + ] + }, + { + "name": "create_collection_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "vector" + ], + "return": [] + }, + { + "name": "create_token_data_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::string::String", + "0x1::string::String" + ], + "return": [ + "0x3::token::TokenDataId" + ] + }, + { + "name": "create_token_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x3::token::TokenDataId", + "u64" + ], + "return": [ + "0x3::token::TokenId" + ] + }, + { + "name": "create_token_id_raw", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [ + "0x3::token::TokenId" + ] + }, + { + "name": "create_token_mutability_config", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&vector" + ], + "return": [ + "0x3::token::TokenMutabilityConfig" + ] + }, + { + "name": "create_token_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "0x1::string::String", + "address", + "u64", + "u64", + "vector", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [] + }, + { + "name": "create_tokendata", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x1::string::String", + "0x1::string::String", + "0x1::string::String", + "u64", + "0x1::string::String", + "address", + "u64", + "u64", + "0x3::token::TokenMutabilityConfig", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [ + "0x3::token::TokenDataId" + ] + }, + { + "name": "deposit_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::Token" + ], + "return": [] + }, + { + "name": "direct_transfer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [] + }, + { + "name": "direct_transfer_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "get_royalty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "0x3::token::TokenId" + ], + "return": [ + "0x3::token::Royalty" + ] + }, + { + "name": "get_royalty_denominator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Royalty" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_royalty_numerator", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Royalty" + ], + "return": [ + "u64" + ] + }, + { + "name": "get_royalty_payee", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Royalty" + ], + "return": [ + "address" + ] + }, + { + "name": "get_token_amount", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Token" + ], + "return": [ + "u64" + ] + }, + { + "name": "initialize_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId" + ], + "return": [] + }, + { + "name": "initialize_token_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "initialize_token_store", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer" + ], + "return": [] + }, + { + "name": "merge", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::token::Token", + "0x3::token::Token" + ], + "return": [] + }, + { + "name": "mint_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [] + }, + { + "name": "mint_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenDataId", + "u64" + ], + "return": [ + "0x3::token::TokenId" + ] + }, + { + "name": "mutate_token_properties", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [] + }, + { + "name": "opt_in_direct_transfer", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "&signer", + "bool" + ], + "return": [] + }, + { + "name": "split", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::token::Token", + "u64" + ], + "return": [ + "0x3::token::Token" + ] + }, + { + "name": "token_id", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::token::Token" + ], + "return": [ + "&0x3::token::TokenId" + ] + }, + { + "name": "transfer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "address", + "u64" + ], + "return": [] + }, + { + "name": "withdraw_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [ + "0x3::token::Token" + ] + } + ], + "structs": [ + { + "name": "BurnTokenEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "CollectionData", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "supply", + "type": "u64" + }, + { + "name": "maximum", + "type": "u64" + }, + { + "name": "mutability_config", + "type": "0x3::token::CollectionMutabilityConfig" + } + ] + }, + { + "name": "CollectionMutabilityConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "description", + "type": "bool" + }, + { + "name": "uri", + "type": "bool" + }, + { + "name": "maximum", + "type": "bool" + } + ] + }, + { + "name": "Collections", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "collection_data", + "type": "0x1::table::Table<0x1::string::String, 0x3::token::CollectionData>" + }, + { + "name": "token_data", + "type": "0x1::table::Table<0x3::token::TokenDataId, 0x3::token::TokenData>" + }, + { + "name": "create_collection_events", + "type": "0x1::event::EventHandle<0x3::token::CreateCollectionEvent>" + }, + { + "name": "create_token_data_events", + "type": "0x1::event::EventHandle<0x3::token::CreateTokenDataEvent>" + }, + { + "name": "mint_token_events", + "type": "0x1::event::EventHandle<0x3::token::MintTokenEvent>" + } + ] + }, + { + "name": "CreateCollectionEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "creator", + "type": "address" + }, + { + "name": "collection_name", + "type": "0x1::string::String" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "maximum", + "type": "u64" + } + ] + }, + { + "name": "CreateTokenDataEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenDataId" + }, + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "maximum", + "type": "u64" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "royalty_payee_address", + "type": "address" + }, + { + "name": "royalty_points_denominator", + "type": "u64" + }, + { + "name": "royalty_points_numerator", + "type": "u64" + }, + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "mutability_config", + "type": "0x3::token::TokenMutabilityConfig" + }, + { + "name": "property_keys", + "type": "vector<0x1::string::String>" + }, + { + "name": "property_values", + "type": "vector>" + }, + { + "name": "property_types", + "type": "vector<0x1::string::String>" + } + ] + }, + { + "name": "DepositEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "MintTokenEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenDataId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "MutateTokenPropertyMapEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "old_id", + "type": "0x3::token::TokenId" + }, + { + "name": "new_id", + "type": "0x3::token::TokenId" + }, + { + "name": "keys", + "type": "vector<0x1::string::String>" + }, + { + "name": "values", + "type": "vector>" + }, + { + "name": "types", + "type": "vector<0x1::string::String>" + } + ] + }, + { + "name": "Royalty", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "royalty_points_numerator", + "type": "u64" + }, + { + "name": "royalty_points_denominator", + "type": "u64" + }, + { + "name": "payee_address", + "type": "address" + } + ] + }, + { + "name": "Token", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "token_properties", + "type": "0x3::property_map::PropertyMap" + } + ] + }, + { + "name": "TokenData", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "maximum", + "type": "u64" + }, + { + "name": "largest_property_version", + "type": "u64" + }, + { + "name": "supply", + "type": "u64" + }, + { + "name": "uri", + "type": "0x1::string::String" + }, + { + "name": "royalty", + "type": "0x3::token::Royalty" + }, + { + "name": "name", + "type": "0x1::string::String" + }, + { + "name": "description", + "type": "0x1::string::String" + }, + { + "name": "default_properties", + "type": "0x3::property_map::PropertyMap" + }, + { + "name": "mutability_config", + "type": "0x3::token::TokenMutabilityConfig" + } + ] + }, + { + "name": "TokenDataId", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "creator", + "type": "address" + }, + { + "name": "collection", + "type": "0x1::string::String" + }, + { + "name": "name", + "type": "0x1::string::String" + } + ] + }, + { + "name": "TokenId", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_data_id", + "type": "0x3::token::TokenDataId" + }, + { + "name": "property_version", + "type": "u64" + } + ] + }, + { + "name": "TokenMutabilityConfig", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "maximum", + "type": "bool" + }, + { + "name": "uri", + "type": "bool" + }, + { + "name": "royalty", + "type": "bool" + }, + { + "name": "description", + "type": "bool" + }, + { + "name": "properties", + "type": "bool" + } + ] + }, + { + "name": "TokenStore", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "tokens", + "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token::Token>" + }, + { + "name": "direct_transfer", + "type": "bool" + }, + { + "name": "deposit_events", + "type": "0x1::event::EventHandle<0x3::token::DepositEvent>" + }, + { + "name": "withdraw_events", + "type": "0x1::event::EventHandle<0x3::token::WithdrawEvent>" + }, + { + "name": "burn_events", + "type": "0x1::event::EventHandle<0x3::token::BurnTokenEvent>" + }, + { + "name": "mutate_token_property_events", + "type": "0x1::event::EventHandle<0x3::token::MutateTokenPropertyMapEvent>" + } + ] + }, + { + "name": "WithdrawEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01000a020a14031eb80104d6010e05e401b801079c03890308a5064006e506850110ea07f1010adb09140cef09eb050dda0f0600000101010201030104000507000006070004070700031a07020000000000080001000009020300000a030400000b030500000c020600000d010700000e080900000f0a07000010020b00001102060000120204000013020c0000140209000015020d0000160e0f0000171001000018110100030c1206020404011d090900030e1309020404011e0909000308140102040403091215020404031f011602040404200504000221050b00022205060002230504000224050c0002250509000226050d0001270909000316191a0204040328191d020404110f130f150f160f170f200f210f0307080008020801000206080006080201060801010802010a020101010800010608000103030a08020a0a020a0802010501040102020708000608020208020801040708000a08020a0a020a080203070800060802080102060b03020900090106090001060b03020900090103070b0302090009010900090101060901010b03020900090102030800030708000608020102070b0302090009010609000209000901050303080103030407080006080201070801010709010c70726f70657274795f6d6170056572726f720866726f6d5f6263730a73696d706c655f6d617006737472696e670b50726f70657274794d61700d50726f706572747956616c756506537472696e670361646406626f72726f770b626f72726f775f747970650c626f72726f775f76616c75650c636f6e7461696e735f6b657905656d707479066c656e677468036e65770c726561645f6164647265737309726561645f626f6f6c0b726561645f737472696e6709726561645f7531323808726561645f75363407726561645f75380672656d6f7665137570646174655f70726f70657274795f6d6170157570646174655f70726f70657274795f76616c7565036d61700953696d706c654d61700576616c756504747970650e616c72656164795f6578697374730d696e76616c69645f73746174650663726561746504757466380a746f5f6164647265737307746f5f626f6f6c09746f5f737472696e6707746f5f7531323806746f5f75363405746f5f7538096e6f745f666f756e640a626f72726f775f6d7574000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000010308010000000000000003080500000000000000030804000000000000000308030000000000000003080200000000000000030806000000000000000308e8030000000000000a020807616464726573730a020504626f6f6c0a0214133078313a3a737472696e673a3a537472696e670a020504753132380a0204037536340a0203027538126170746f733a3a6d657461646174615f7630dc0106010000000000000021454b45595f4152454144595f45584953545f494e5f50524f50455254595f4d41500002000000000000001d4550524f50455254595f4e554d4245525f4558434545445f4c494d4954000300000000000000134550524f50455254595f4e4f545f455849535400040000000000000020454b45595f434f554e545f4e4f545f4d415443485f56414c55455f434f554e540005000000000000001f454b45595f434f554e545f4e4f545f4d415443485f545950455f434f554e540006000000000000000f45545950455f4e4f545f4d4154434800000201190b0302080208010102021b0a021c080200010000011c0a0010000e01380020030b0b000107001112270a001000380107062503160b000107041114270b000f000b010b023802020101000006110a000a0111040c020b02030c0b00010b01010703270b0010000b013803020201000001040b00100114020301000001040b00100214020401000001050b0010000b0138000205010000010338041200020601000001040b0010003801020701000017340e0041040e01410521030907021114270e0041040e0241042103120701111427380412000c040600000000000000000c030a030e00410423031d05320d040f000e000a034204140e010a034205140e020a03420414120138020b03060100000000000000160c0305170b04020801000003150b000b0111010c020a02100114070711182103100b020107051114270b021002141119020901000003150b000b0111010c020a02100114070811182103100b020107051114270b02100214111a020a01000003150b000b0111010c020a02100114070911182103100b020107051114270b02100214111b020b01000003150b000b0111010c020a02100114070a11182103100b020107051114270b02100214111c020c01000003150b000b0111010c020a02100114070b11182103100b020107051114270b02100214111d020d01000003150b000b0111010c020a02100114070c11182103100b020107051114270b02100214111e020e01000018170a000a010c030c020b022e0b0311040c040b0403120b00010b01010703111f270b000f000b013805020f0100001b3b0e0141040c050e0241050c080e0341040c070b050a082103120b000107021114270b080b0721031b0b000107011114270600000000000000000c040a040e01410423032305380e020a044205140e030a0442041412010c060a000e010a0442040b0611100b04060100000000000000160c04051d0b000102100100001c1b0a000a010c040c030b032e0b0411040c050b0503120b00010b01010703111f270b000f000b0138060c060b020b06150200000101010000", + "abi": { + "address": "0x3", + "name": "property_map", + "friends": [], + "exposed_functions": [ + { + "name": "add", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "0x1::string::String", + "0x3::property_map::PropertyValue" + ], + "return": [] + }, + { + "name": "borrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "&0x3::property_map::PropertyValue" + ] + }, + { + "name": "borrow_type", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyValue" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "borrow_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyValue" + ], + "return": [ + "vector" + ] + }, + { + "name": "contains_key", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "empty", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [], + "return": [ + "0x3::property_map::PropertyMap" + ] + }, + { + "name": "length", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap" + ], + "return": [ + "u64" + ] + }, + { + "name": "new", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [ + "0x3::property_map::PropertyMap" + ] + }, + { + "name": "read_address", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "address" + ] + }, + { + "name": "read_bool", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "bool" + ] + }, + { + "name": "read_string", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "0x1::string::String" + ] + }, + { + "name": "read_u128", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "u128" + ] + }, + { + "name": "read_u64", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "u64" + ] + }, + { + "name": "read_u8", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "u8" + ] + }, + { + "name": "remove", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "&0x1::string::String" + ], + "return": [ + "0x1::string::String", + "0x3::property_map::PropertyValue" + ] + }, + { + "name": "update_property_map", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "vector<0x1::string::String>", + "vector>", + "vector<0x1::string::String>" + ], + "return": [] + }, + { + "name": "update_property_value", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&mut 0x3::property_map::PropertyMap", + "&0x1::string::String", + "0x3::property_map::PropertyValue" + ], + "return": [] + } + ], + "structs": [ + { + "name": "PropertyMap", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "map", + "type": "0x1::simple_map::SimpleMap<0x1::string::String, 0x3::property_map::PropertyValue>" + } + ] + }, + { + "name": "PropertyValue", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "value", + "type": "vector" + }, + { + "name": "type", + "type": "0x1::string::String" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000e0100140214440358aa010482022405a602e502078b05dd0608e80b4006a80c4610ee0c91020aff0e520bd10f040cd50ff8050dcd15100edd150a0000010101020103010401050106010701080009000a06010001000b0400000c0600000d08010001000e0800000f060009100700091204000514070008220700062404020301000103260401060102320401000109330700001100010100001302010000150301010000160401010000170401000018050101000019000600001a070600042b040900062c0c0d020300062d0e0f020300092e100100062f0e1302030009301401000631150102030009341718000235091901000936181a0009371b190009381b190009391b0900023a1c1d0100023b1e010100083c011f0100033d21010106063e0123020304013f04250106094000060007410119000942290600090b0a0b09120c120e12100a0c0b150a160a170a1820190b1a241a201912030a0e0b182403060c0806030004060c080608070308060c03050508080808030301060c08060c050808080803030303010807030508060305070b0a0208060b000109000806070b0a0208060b0001090005080701050109000208060b0001090002060b0a02090009010900010102070b0a0209000901090001090102060c080705070b0a020806080108060708070801070b0a020806080102080608010107090102070807080703070b0a0209000901090009010e030b0c0109000b0c0109000503080d0303050806070b03010900070b0001090008070304050808080803010806010301080d0106080d02060c03010b0c01090002050b0c01090001080901080502070b0b010900090002050b03010900010b0a0209000901010802010b0b0109000205080407070b0a0208060b000109000806070b0b010802070b0a0208060b000109000b000109000807080604070b0a02080608010806070801070b0a020806080102070807030f746f6b656e5f636f696e5f73776170076163636f756e7404636f696e056576656e74067369676e657206737472696e67057461626c650974696d657374616d7009747970655f696e666f05746f6b656e0d546f6b656e436f696e537761700b546f6b656e457363726f7711546f6b656e4c697374696e674576656e740d546f6b656e4c697374696e677310546f6b656e53746f7265457363726f770e546f6b656e537761704576656e7407546f6b656e49641463616e63656c5f746f6b656e5f6c697374696e6705546f6b656e176465706f7369745f746f6b656e5f746f5f657363726f7706537472696e671765786368616e67655f636f696e5f666f725f746f6b656e18696e697469616c697a655f746f6b656e5f6c697374696e671d696e697469616c697a655f746f6b656e5f73746f72655f657363726f77136c6973745f746f6b656e5f666f725f737761701a77697468647261775f746f6b656e5f66726f6d5f657363726f772377697468647261775f746f6b656e5f66726f6d5f657363726f775f696e7465726e616c0c746f6b656e5f616d6f756e74136d696e5f70726963655f7065725f746f6b656e116c6f636b65645f756e74696c5f7365637308746f6b656e5f696406616d6f756e74096d696e5f70726963650e636f696e5f747970655f696e666f0854797065496e666f086c697374696e6773055461626c650e6c697374696e675f6576656e74730b4576656e7448616e646c650b737761705f6576656e74730d746f6b656e5f657363726f77730b746f6b656e5f62757965720b636f696e5f616d6f756e740a616464726573735f6f6608636f6e7461696e730672656d6f76650d6465706f7369745f746f6b656e0a626f72726f775f6d7574056d657267650361646404436f696e07526f79616c7479136372656174655f746f6b656e5f69645f7261770762616c616e63650b6765745f726f79616c7479176765745f726f79616c74795f64656e6f6d696e61746f72156765745f726f79616c74795f6e756d657261746f72116765745f726f79616c74795f7061796565087769746864726177076465706f73697407747970655f6f660a656d69745f6576656e74036e6577106e65775f6576656e745f68616e646c650e77697468647261775f746f6b656e0b6e6f775f7365636f6e64730573706c69740000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000103080700000000000000030801000000000000000308060000000000000003080400000000000000030802000000000000000308050000000000000003080300000000000000126170746f733a3a6d657461646174615f7630fc010701000000000000001545544f4b454e5f414c52454144595f4c49535445440002000000000000001845544f4b454e5f4c495354494e475f4e4f545f45584953540003000000000000001445544f4b454e5f4e4f545f494e5f455343524f570004000000000000003345544f4b454e5f43414e4e4f545f4d4f56455f4f55545f4f465f455343524f575f4245464f52455f4c4f434b55505f54494d450005000000000000001a45544f4b454e5f4d494e5f50524943455f4e4f545f4d415443480006000000000000001745544f4b454e5f414d4f554e545f4e4f545f4d4154434800070000000000000010454e4f545f454e4f5547485f434f494e000002021b031c030102020908071d030202051e08061f0320031d03210809030203230b0a0208060b00010900250b0b010802270b0b010805040201280b0a02080608010502051e080629051b032a03210809030a000a00010002030408230a0011080c060b063c0036000c050a050a010c040c030b032e0b04380003160b00010b05010704270b050a013801010a000b010b0211060c070b000b07110b02010100010411210b0011082a040f010c080a080a010c050c040b042e0b053802030f05180b080b0138030f020c060b060b02110d05200b020b0312010c070b080b010b0738040202010002030416a1010b030b040b050b06110f0c110a0011080c0b0a023c000c120a1237000a11380003170b12010b00010704270a0b38050a012603220b12010b00010700270a1236000a1138060c130a133701140a07180b012503370b13010b12010b00010705270a133702140a072603450b13010b12010b00010702270a020a110a0711070c140a000b14110b0a1111110c0d0a133701140a07180c150e0d11120c0e0b0e06000000000000000021035e05610600000000000000000c0805690a150e0d1113180e0d11121a0c080b080c0f0a150a0f170c0c0e0d11140c100a000b0f38070c090b100b0938080b000b0c38070c0a0b020b0a38080a133702140a0721038701058f010b13010a1236000a113801010597010a133702140a07170b133602150b1236030b110b0b0b070b1538091205380a020300000022160a0011080c010b013b002003080513380b0a00380c0a00380d39000c020b000b023f0005150b0001020400000026120a0011080c010b012904200308050f380e12040c020b000b022d0405110b000102050104020304273f0b010b020b030b04110f0c0e0a0011040a000a0e0a05111b0c0d0a000a0e0b0d0a0711010a00380f0a050a0639010c0c0a0011083c0036000c0b0a0b0a0e0c090c080b082e0b09380020032d0b00010b0b010701270b0b0a0e0b0c38100b0011083c0036040c0a0b0a0b0e0b050b060b0738091202381102060100010401060b0011080b010b02110702070000010428240b002a040f010c060a060a010c040c030b032e0b04380203110b06010706270b060b0138030c05111c0a0510071424031f0b05010703270b050f020b02111d0203000400010000010000030203010101000a030a040a050a060a00", + "abi": { + "address": "0x3", + "name": "token_coin_swap", + "friends": [], + "exposed_functions": [ + { + "name": "cancel_token_listing", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [] + }, + { + "name": "deposit_token_to_escrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "0x3::token::Token", + "u64" + ], + "return": [] + }, + { + "name": "exchange_coin_for_token", + "visibility": "public", + "is_entry": false, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "u64", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "list_token_for_swap", + "visibility": "public", + "is_entry": true, + "generic_type_params": [ + { + "constraints": [] + } + ], + "params": [ + "&signer", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64", + "u64", + "u64" + ], + "return": [] + }, + { + "name": "withdraw_token_from_escrow", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "0x3::token::TokenId", + "u64" + ], + "return": [ + "0x3::token::Token" + ] + } + ], + "structs": [ + { + "name": "TokenCoinSwap", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "token_amount", + "type": "u64" + }, + { + "name": "min_price_per_token", + "type": "u64" + } + ] + }, + { + "name": "TokenEscrow", + "is_native": false, + "abilities": [ + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token", + "type": "0x3::token::Token" + }, + { + "name": "locked_until_secs", + "type": "u64" + } + ] + }, + { + "name": "TokenListingEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + }, + { + "name": "min_price", + "type": "u64" + }, + { + "name": "locked_until_secs", + "type": "u64" + }, + { + "name": "coin_type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + }, + { + "name": "TokenListings", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [ + { + "constraints": [] + } + ], + "fields": [ + { + "name": "listings", + "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token_coin_swap::TokenCoinSwap>" + }, + { + "name": "listing_events", + "type": "0x1::event::EventHandle<0x3::token_coin_swap::TokenListingEvent>" + }, + { + "name": "swap_events", + "type": "0x1::event::EventHandle<0x3::token_coin_swap::TokenSwapEvent>" + } + ] + }, + { + "name": "TokenStoreEscrow", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_escrows", + "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token_coin_swap::TokenEscrow>" + } + ] + }, + { + "name": "TokenSwapEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "token_buyer", + "type": "address" + }, + { + "name": "token_amount", + "type": "u64" + }, + { + "name": "coin_amount", + "type": "u64" + }, + { + "name": "coin_type_info", + "type": "0x1::type_info::TypeInfo" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "bytecode": "0xa11ceb0b050000000c01001002102e033e7a04b8011605ce01e40107b203aa0408dc0740069c080a10a608350adb08430c9e098d030dab0c08000001010102010301040105010600070008080000090600000a0600000b0600000c0700070d0700050f0700061804020301000107190400031b04010601000e0001000010020100001100010000120201000013030400001405010000150601000016070100042205090006230b0c02030007240d0e0007250f010003261101010607271312000628151602030002290e0e00062a0118020304012b051a0106072c1c1d00062d1e01020300062e0b1f020300072f200100090a0c100e0a0c17100a111911101117130a140a0c1903060c05080500060c050508060806030205080501080401060c04060c05080503070c05050806080603030503070b07020804080805080808040105020804080802070b070209000901090001090101060808010302060c080801080102070b0901090009000108050405080608060306070b070208040808080403070b0702080408080804080802060b07020900090109000101010802010b070209000901010803010b0901090007070b0702080408080804070808070b070208040808050808080403060c08050301080803070b07020900090109000901010709010207080808080f746f6b656e5f7472616e7366657273076163636f756e74056572726f72056576656e74067369676e657206737472696e67057461626c6505746f6b656e0d50656e64696e67436c61696d7315546f6b656e43616e63656c4f666665724576656e740f546f6b656e436c61696d4576656e740f546f6b656e4f666665724576656e740c546f6b656e4f66666572496407546f6b656e49640c63616e63656c5f6f6666657206537472696e671363616e63656c5f6f666665725f73637269707405636c61696d0c636c61696d5f736372697074156372656174655f746f6b656e5f6f666665725f69641a696e697469616c697a655f746f6b656e5f7472616e7366657273056f666665720c6f666665725f7363726970740e70656e64696e675f636c61696d73055461626c6505546f6b656e0c6f666665725f6576656e74730b4576656e7448616e646c651363616e63656c5f6f666665725f6576656e74730c636c61696d5f6576656e74730a746f5f6164647265737308746f6b656e5f696406616d6f756e7407746f5f616464720a616464726573735f6f660672656d6f7665106765745f746f6b656e5f616d6f756e740d6465706f7369745f746f6b656e0a656d69745f6576656e74136372656174655f746f6b656e5f69645f72617708636f6e7461696e73096e6f745f666f756e64036e6577106e65775f6576656e745f68616e646c650e77697468647261775f746f6b656e036164640a626f72726f775f6d7574056d657267650000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000103080100000000000000126170746f733a3a6d657461646174615f7630210101000000000000001645544f4b454e5f4f464645525f4e4f545f455849535400000204170b0702080408081a0b090108031c0b090108011d0b090108020102031e051f080520030202031e051f080520030302031e051f0805200304020221051f08050001000100081e0a0011080c050b010a0211040c070a052a000f000c040b040b0738000c060e06110a0c030b000b06110b0a052a000f010b050b020b0312013801020101040100120b0b020b030b040b05110d0c060e000b010b061100020201000100142d0a012a000f000c060a0011080a0211040c070a060a070c040c030b032e0b04380203190b00010b06010700110f270b060b0738000c080e08110a0c050a000b08110b0b012a000f020b0011080b020b0512023803020301040100120b0b020b030b040b05110d0c060e000b010b061102020400000001040b000b0112040205000000010b0a0038040a0038050a0038060b00380712002d000206010001001b370a0011080c080a082900200308050a0a0011050a082a000f000c070b010a0211040c0a0b000a020a0311120c090a070a0a0c050c040b042e0b05380220032205270b070b0a0b093808052e0b070b0a38090c060b060b0911150a082a000f030b080b020b031203380a020701040100120c0b020b030b040b05110d0c070e000b010b070b06110602000000020003000100", + "abi": { + "address": "0x3", + "name": "token_transfers", + "friends": [], + "exposed_functions": [ + { + "name": "cancel_offer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x3::token::TokenId" + ], + "return": [] + }, + { + "name": "cancel_offer_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [] + }, + { + "name": "claim", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x3::token::TokenId" + ], + "return": [] + }, + { + "name": "claim_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64" + ], + "return": [] + }, + { + "name": "offer", + "visibility": "public", + "is_entry": false, + "generic_type_params": [], + "params": [ + "&signer", + "address", + "0x3::token::TokenId", + "u64" + ], + "return": [] + }, + { + "name": "offer_script", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [ + "signer", + "address", + "address", + "0x1::string::String", + "0x1::string::String", + "u64", + "u64" + ], + "return": [] + } + ], + "structs": [ + { + "name": "PendingClaims", + "is_native": false, + "abilities": [ + "key" + ], + "generic_type_params": [], + "fields": [ + { + "name": "pending_claims", + "type": "0x1::table::Table<0x3::token_transfers::TokenOfferId, 0x3::token::Token>" + }, + { + "name": "offer_events", + "type": "0x1::event::EventHandle<0x3::token_transfers::TokenOfferEvent>" + }, + { + "name": "cancel_offer_events", + "type": "0x1::event::EventHandle<0x3::token_transfers::TokenCancelOfferEvent>" + }, + { + "name": "claim_events", + "type": "0x1::event::EventHandle<0x3::token_transfers::TokenClaimEvent>" + } + ] + }, + { + "name": "TokenCancelOfferEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_address", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "TokenClaimEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_address", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "TokenOfferEvent", + "is_native": false, + "abilities": [ + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_address", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + }, + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "TokenOfferId", + "is_native": false, + "abilities": [ + "copy", + "drop", + "store" + ], + "generic_type_params": [], + "fields": [ + { + "name": "to_addr", + "type": "address" + }, + { + "name": "token_id", + "type": "0x3::token::TokenId" + } + ] + } + ] + } + }, + "type": "write_module" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "type": "0x1::code::PackageRegistry", + "data": { + "packages": [ + { + "deps": [ + { + "account": "0x1", + "package_name": "AptosFramework" + }, + { + "account": "0x1", + "package_name": "AptosStdlib" + }, + { + "account": "0x1", + "package_name": "MoveStdlib" + } + ], + "extension": { + "vec": [] + }, + "manifest": "0x1f8b08000000000002ff5d8ebd0ac2301485f7fb14217b638bb3838b9b936ea5486cae529a2621375441faeee64610ed7a7ebe73daa0fb51dfb103a727143b21f721793afb119d8419230ddeb1dca85ad512a0d5c6442442ea809261ab7e361234d72eb798290f1fc7959e98f7d1b60c3118d01974fdc09ca39ff1948c1dae39f212d6f7da7258a9cd94ad8a8a27c502e5dce167e43f5dc6aaef09b9c01b586da59de0000000", + "modules": [ + { + "extension": { + "vec": [] + }, + "name": "property_map", + "source": "0x1f8b08000000000002ffc559ff4fdb3814ffbd7f85d793aa64178d76c7180a7412b7553a746343d04de3a6294a5b77444b932871603dc4ff7ecf769cf84b5c02855d7f00d57edfdfc7cfefb93b3b3be8344f339c93f54998a1a840212a323c8fc238fa3724519aa07489cea35516634ab04c73344d7fe0a478d1db01e66382566146b9ce491e25dfd10fbc462485ef42ece7302e3122972141f33429a2821454245967183905637251982cd0152374aef03c25f961b9ffc6edadd24519631466242d0242d5fa7e56c90d402fbae921f89405460559f83ef092343f5017719e1b6b5cafefdf9ce378e955b6df36445c23235de6e92a98cd8bd6cd8205869ad2c812b102718c857a4dd0c9d197e0f4ece3e9e46c7a119c1c9d06e7c7ff4c7c54eeeda2311a0d87c3038978f2f7e422383a9b1cbdbb08265f8ecfa7c1f10785bb6654b86a8a0f9f4efe9c9c01ebdbc9e45df0fef8e4782a385e5a383e4eb92641f78761cfdb8f9f3e4c19e1c9d1f4ed5fc1e7a3f79f267c5530eddec934bd38d5785e293c6cbf2617347b5528216de59c2888bd0c0be0cdd61e5ac0aa0724698e2b5cd00f4d4d9393439e694f45e71b8f91dfb62ae1f8a56a98684fd226a961e0f511072005af576f51a4fb15c4144559398ba3395a96094af0b55333c0112a6a519c4f12c73435fb8d464da52182edbabe12bdc681b02860f199c3797c3fc6c97772e90ca8312e1a8f91bec1ed703dc4ce97ef4709ac440b381721c1ce5d8871dd8387ab66eedd4b73033b59718c09aaca49840bc099149a2632358ae4c33ecf3128b3c0c9719b54dcaaea22d0326c96ae2f23a86f4e840e51abf72e52ed904d08170b47d9a49fc1aa947d7a01949e41f45ce89aa510c16baecb43916b922a8edd08981b02381898880aef06094b1aa500f8cb1aa47cd00f0d50847e17954d0b61e399e520e15546d68e15e54f91608b2550d04818254500c17598f881a4dda3a71c96b87cb07796a6b164a8628a2c69004b2cab54806bd14da1c1555238986a8557553a15e7dc96a2f0ac8b3d1445cda10c6308e0621de09ff4c677eebcd1da0a82ac941f0b5b3e84152e3a1cb75fb5b66ab1e9ce946dd24f1e8bac9c8b2a9a158b9993ea5c1b4870f925d79e7a510c847b16d9d519bb1b6503f556bb516ad3322da10d1b1bc8e55033d3c3e8bdb626c21237510aba4098a227e06d5a07bfaae6f3c628ede04e131c9b2394f0056b48e1b211ad614996fbceac3ffc396ada45aea66fbd7ad4ee45868fe8227d9fa4c22da69683665310cafd0e0128f79fc2f9727f6b5fc1faae7eeeed767154392b8fe7e9deeef6ae82031d7d850a92e3a2e8e06f45f9143e57a2b7f65b38d335cfa3979d100d644f926990bb7daaa90f1dfda537fbfd1b8047f397caddda5fe6c3ddfe724b0346e388415dbf755c794c923c7e3e101c5cc9661dd4db4d2a8c1b41124f79ad195ba557d851c747a38b9247b53a8762be725a7b14f7712edb2a8b494a02b6e2b4ddbe96ebb7f2cde85c946cd2479d325b0038e0cd068b867b8da2847d67ed1c0d6cbd0152f42072fe407ea9b94f449f62f8e5db7a124059002d161ab74f5feae806ba2dc4d528ac92831916723ebe9a29aead190b5d8f395c0bebc7c2b287cfcf1d265ad479a415858e560d6904d71b54eda1451f2f913c821a4c778da42ac7ad3a91ea68e6d58d1d1eeb1c5d7bd461bab554a276b50f294c9efe4aa5c4b8f560fca2ea243dc0acabfc9bf342004eb614ad46ca734d04f35219c37efb4a7041823489d7dfd8021bd0d984df043886ca667f39309e8ee9f57aa05793a23eeea2f07c45a2db22249cffa03771b5b028f37016c511594b8b14927df79b51794a2c8996cade5734eb8f867d0ffebd627faf7198a5491f7d33aa11de605c9410fc1de79221e68a187e64d1f4dd92835e1c3f5edccce0377167a9809eb18efc564157deefda532ac1557f32d39ecb6a5f637c8569d7d4b3bf85d92a13e4a36fab407a6cd5b2d372ae14025165647b07aac12e6f9d689537edd83ca8b73fadb5264f2b4dbf2e7fed35d148e2c03872edcf98b3feebbe6749cd76e9109a957cbcd6f231eab5bc81de230dbc9ffb3f8e51158efa754a893f7bb2ffc34323add03b818702d844721fba3178768d9ab697aab64d31942e01e9b2653bbadb1c5dcacf37e6ef3cae6f6d5936b53254aa8a8666e631ba024bf661b6644cc175442ef940e4764e7abd5dffb4f9c06b0cb218cee2fb5e5a62ae5c832f74cd198c8620535da75327ec2cc3b8c0ee3d6f34fe74a5ccc09a808cc21a04d8ee30137dcf9a797ec0b81bccd6517055280a56f192a7f3d558a7301e0d1be6dbde6def3f5adf34249e1f0000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "token", + "source": "0x1f8b08000000000002ffed3d6b73db4692dff32b106f959674105a92936c42c7ae9325facc5a3d5c1275599fcb05432428614d125c00b4a253e9bf5fcf13f3e8190c29d971ee56958a2c60a6a7a7bba75fd33378f2e44934bacaab685e4c56b32c5a96c5a77c9255517d9545d362b598a4755e2ce09f65342a3e668baaf70d6f9a2eeba24a6af2b0dfa7bfa2db6f22f859555954d5937e3f2bcba27ca63fabf2cb45663daccb7c71d9ef9fd1dfc6cb4fd9b82660e45336f0b44ce7d975517eecf7d3f11830ad9fb95b649fb245ddefdf9e65b3691c0dc85fafd3c56496dd999de890757a31cb64f311f9cb6ac8270e045b66657d93ccd3a5ecf1863f3c4a97771cf171b1a8ea6874f2f7c17172b4f78fe4e87cb4f7f270900c8f0ffad1eaa71fa2e7d1f633abe5f9e9106bb963b73c189ced9f0edf8c8627c7588f5dbbc7e9c9dbbdc3d15bacf553bbf59bd393378353bcf90f9ee6ffb577783ec03afda81166ffe4f070b04fb16f99894625a55b08a994e60e1eec6a580df60e4f077b076f93d77b67c9cbbdc3bde3fd018ac780bf4c8e4f46c99bf39787c3b3d7031c874183c419de7cd7d11c6ffdd4d55ae03ef8c7f06c7486f26ab00f4d4683e4b793f3c30368b83f181c243a918647e7470acb94bec3e3b3f357af86fbc3c1f1c824ce4f464b9082a106f978ef4836fe1bda982f95c1e97fca863f6b0d8f8630ae86b95c5d2ad2bf689d8e4f9297e7a7c7c9fede9bbd97c3c3e1e8ad64d2b6d9900e8034d4d9c906c589bdb38b34c545e429d2f26c7472ea12a91fb0f66f00cf64efe8e41c103fdc03ca9d26a3d7f082e3485f48083a375f0d07404832165f15b2dd4f165da001080d4299bf19480dfeae68024a1a65063f9b70199643812e9dbd6c6db2f138f9efc1e989a26706a76744b04e8e0fdfc2ffc8a23e1ba922b9abf3f7fc0c8843a67bf26644c63c189e826826a3d3bde3b3578353d94b67f66fc3d1eb83d3bddfe8e0b28d501a4f9ef05fd17e51661198ce144c58b91ad7ab124c2ab1a157c56c02262ea2d6a312bde86fd69259d9e82aade00181c26c2af9c9277df6763889e543188c98ea744e2c60544c39e45e74b298dd44d23a7dcaca8ad871d05bd13825f03f41a7e8533a5b65d1457e79999500075eecf424680693ce521b6f749509c0394ceb3aafafa02ff81074e89edaf4fa0ae682211153ac6987448195c284c98b0a2c7704249864d37435abd526f98211e100a81b47d740e662f1d79a132bafede1eb065d6aa5a3f9aa4eebac8a61fe8becda460f669256d44f9900860da20d6813efbe6af119adee84483c892e67c5453a8b568bfc5f406cf0ae16753ecd81e0c0ad94c1b204603869442006e95bdec4d104c650c481733e97488e8bf91cd067ae1813be2b20e824bab8e10f29ab26f9749a9580843573637e044422858ed01b113c8b7acda434568c1404a6b9038146341b249988025485c412b0094011568b01b01c5016505cc95c2d26b0295346341c88ad75c997c4b8cc52784341cad5201bf1b7fd289d4c401954d68a1a17b31978ba9484655465743197d90c4475c21735255fce249ac3fb2bc82af37e9b9124a07ec41c6a8b690bb2bc703cc92bbd9f4248822797294920295d55907899f445351d47739efe9eafe68d52a3e27101cff30521cab42ce6d81448b7f96a6e2b2e4ab75549919ba5e5655679d6006f9078444c8a760dcb7bb19a5f280255492c8b922129a72cfb56abe5727663033c3f3da4dd405472c247809e2fe0c19cc5624fa27936c91b30ab327772ba2c6ed2597dc3989d1984e22ffbd129fb8725939a9c8c5ae484f73bc8aa71995fd010d2ea35a12f974ee16482305ec1ef79fe3f403dd5362c26640e79c95402b3a78a5eb394c9b632ac6946108dcd5000435f97c58c52ab1152d015b309351c17f92caf6f1a59938f12e839cd2fb9b63c92cff7e963742929cc41ec00674aabfae150926501025725208759c9548d26574633508140e205d21090cb156921e6f09fa40fe8cfe27ac1ccc91ca8992f67520d55cc9e5f96c56a49a6231e83b628564039fa377138b8f6e03aab675993f426cb12ae2281adb31959ef75a3767847a1451b005a4f43cb6a64cf0935094ba26a998d89158081aef2f1156332753074e613a784f27996592acce4b3c22d6ebb6dab2d444ca332575a84daea589a3ebb288a59dc0a09d40106856a893008422e11285265844152d63b064d53076d10c5fa8e880f8700531777034be1fd69b6049900e55f89796655b12ac7200052b0d90bf26769f1fa8c2e3cc2e08fd98d6dadb8da97a0520b9874ad00439a54fa55b8f36c8017cdf4277909363ca9cb7451813935a933c9964595d709cd6b013425a3f5eb017b471f2910898e9c94e935dae737fed2ec74b12a17688797f082e26cf660ce75a279c837288823da92025174b10a6fa375bbdff8518e85dbb4b8e7ea7d28e9de74c52a2e237795c2b407b6265460d4d232ad94d5298d24a83b22d43a4ecc0a591a0d501a4d08b1e7965fe94c14ad22454d00a2ad141e8334ba59e9c24c4ca28c8809dd3e6dd58c6b8a2f87a204406e28120b6b0d80b5e42050c187d7d6da417952eb7181e0064e7f9f37ad3a652ac860c7ec9c454ed4219451085992c2d00bc32cdd5d6410a7cfd8e6f086f9bba61f3ec9ab3a5f008d1a6e46a050c71fb9aac729e172ca858136fc7c0616a2cbe21ac06aa46956467b68225635d3680acf99e789ad6bdbf3742b364bc6ce587cc9b20454d4580e81ca2b91ad2c9d479315a131ac7bb04559fe4953a2aa95a152873ba768ceca4a2c6d8c98306ae94cc54db3660f891c538a54e6096f184e908011c2c0d5c7445ba088ae08c1c9ccb77857282e57e842917180c7615e2b5e088c3ff0c5bf5efca4a57cc0d200de6c77905b94174833162cca86fcd7eae71758e3fa669939802a6240f43b673815811e734f9838401f924d25cae04a4804536d64931578cd140c91ebec77aaa12eedd84f37119b888b478cd581743fee01d78a361bb7a7e7191132e5093a2a246df1177e8908118430fef36856d1d28cf5340da1309c06b1c499525a926560ab07c321f150c59d47543c1f7cada1ea604db57267ed74f0e90ec07edd44d3d542b178626743a1591a65f3652de22c852e2c8593922dfb1af237b4df727531cbc7512640233e1e43be6393678b151ab4e91feff45182e1aa96873d90b6250b5a4a10f1b9b9fc74c145fad72a271b41aacf7ceb76609b5929338bb5876452fa136542fa0b988cfe804fc478a8cd43beea3e33d700d1504c9f3156d2642ca467759d46bda31e6b5c900da9460db26ea0051d793b8bf9d4ab36f9cddd4e84df8a0bef3672be5c392e3096cac3f91aab298386c7b3acd63757602fcc0e39f289ce7a7b2a3ad39a59f8a483f390af5bca0d6dcb226b764268a27dae7398e55b17c575438aaa02be7ddbd130ef0998cf9f478c25fd3e473a29a61dceaf6e8cedb02b183621944e0ade3f76d1279fe8af18bb62a7200b353622899694a9229f2ab3a4d248d458020a3eec24c3f411f7a9b15722a87a50c16dd9c7f0c9758b28db529c4f1270bf3be63c62555299745a6829326090b6c348194bcac572fc98a3af73d7e255be80e8329dc1c602c79333cb54225dd5efb1fa103a4839f60f582ceb2407c9342662292dde90e56842084f081a7917d8336b9952cd5cfddac07cd121fdc85274969b2860c8b07c3ed3597a09a36f81b1008ccbb2b84ed8166b024fec017ac6fc1b988f7580ec2f4952c5e1a65649c92bcb5c30f1ae2ab2614cb73595dd7c592740319190b4ec34b6f3bf4d6b0ae8ce837459d02a816526769f280e9449b55619113ee8a2a8d581ff09fb5fd16a3911735e1a3bdfb6694492ae8040b899a4396a4ccd6cee6d32c0be77eb6aa4cfeee2af65cac5b2f2ac41620385db86574ee93619d0cf29d3f51d0f5af56227808c75ad60fc42685eb2b69de586c6da861496e283b897b7360ee6a136b6b6d7c0e31552a6e190419cdf82c4a6b8c58a78c50e71425420afeb25c9b6345f541d7dce8d3de9691e45a3217df4d368c707e2d403b2850ea5d0c976af7a56b6a4d788488cd4f0e9e235becac61fcddd344df711777c42e22f70bfa8145e13a5cacaa0107d64d54c408f8e9c985df6f53cda564dab4639209adca122ff6099f384d45094900fee287aca69f755a07953a2ab3e765575109e357476b5d2e191caa2fc93d3401077394b219bab175d901fc8f2c2de79278f7ee595527c1a067104d2e3558921ec9ccb7730fbef44d5b1098c644fdc7e5b0797cb18c5a1db3202801f29e702cc1fb2fc556c62b49530033bf86bbb14eff196c249bbf2c30673674f0358abc83b9b4c6bc590e1b7f23d5a5d72e57c11dab111cdad537c056874a35631e6d62f66160e814f96042218c6f40396815ff65489b6160cd950a6342d204dba00c71a09ff855b35858933d7c6a43291322e59448892584a4912231291dc89e5dde0731765b32a332453a85c5e4d0b0a6b275eabd8d8a0fa3a1c0de5e69d167210efaf65944057cf32c95fdee9f2c7995558c8a1cc923b2055bb23c0da354ce0f909ac22dd30fbac3c9563669b7d0b70cf144fc5e2eb6789385bd5871d3a5a9b84f0c34ed95c1488784b2d741f6e5d02fbca3d744debdb04b0ed8348febb6d83d80570b7a054b29e72aa59cf291575c5187bf29f7cff53b10f40ab743106b769c1b72c29899a025d1a2712a6d03429dd3752a3399a4ce2653d2cf165a709d89933b64e82d2040c42b24eba2028e1b1c9c25491b15726711dbff52ecb1eac1ed34332911583285d34cdf98dc346abb8f1bedd0d380e30f3654e2bcc5a98aea40e311c1afdbc36cf15a6015fd66089421d5b8368456588ca5046ede9c569fa4ad3ca066e23b9807b8d33dfd73c0863155a9a5c838ea5b8d429eab8d0e3a9fd3e245f127ad2b5e3c983a169f4fb92db2ffc5b2a4d5b5702ef0da03b1643ccce42c25bbc21323d29d1d2a3b76d5ceb78865734cfc077ec1890119cb0dc2a9272bf5faedde3f66c9e12578359a69744eeda13b9eacadf4872775dc4706940d36aa853fc5ca6e3ab5a93f7b24afe297ddbee3e62934a67106b4fc03ba214e960878bf139296bdb1c291671909456c8236b6e11120fe97e26dd90ef74a3bb6019d35d027cdb84683484f51e39b254dabcf84406ec58ae1aba09487e5069b6825ba000a728f8909d2e9e57b00ab0a7296848475ba31a5b1086c0e779ac2ba436bbd90c45a15a05db6eb07af9760b5cada6db0dd3a8f06e01ea2ffb768fe28d4cdc43dee98f54abe1906166742615d7af7da61b46ccf4b0630089ee6ad9a9fe2dd9bd477267a05fd48ed4b0f2a59e2f682e3f812cc96a0e73e960c7dabb5a7ab6709ed7158715a8ca6613698c86c448e42cec47df69f3b332334a32250acaa644249da28274e98d6a09a96a17cd15ebdaed5b794241726b322f9e8b3dfdb54ebdab76368064df472695b04426a1962a12fed283c6db68d5c571ab38ebf95aa02c135af10fd8506950dd12f859872ab872aba20f0cd90fcaf1455ad0f381fcff0349ff7fa88b0f56bc6abb60a43de265a1fe555d2069a88d9c2ebe8d2cd0311d71237de1d990166267008c5bef0bc03c10db0b24d421e619f3fecca4719be367800ed8ea0d7472c562fc3c3ea27793470fc3153a99294f2f1493144644fd79e801cb695847932263bbf9f3f46346e2918ae40a24ba42992be7168d94f30be2bf398d8876fd846e3ea2233ae28a572188f4033d0fb29a4ef3719e2da467aca06463c2b31a0afb243fbaaafaf5983afb62986e17dd01de286e7667290c3fc89fa630fc2b5d516b906e155144b282ffb7421fef8c5c818f2be4512683de90d47595278ad4da0b417692476bd60884244c619292528a28d9a4be4a6ba5e3764fa38c78d19aaa27497ad3fa9370e6b1899319af3c6e8690ffb41d09e94ca852b54694e6cfd9f0699519099ed429e11e455300f9465a165e984cb6afd9491772d206a83f078e13ae3baeaf79228ac1c586b852dc0dfa865c7ca376532c99a7f0f96b2ce70eabe60eb38fa24ee7191a386ba536da6a0d0e95d1aa71f2a3c0c64365ebe8667bccac9eda6c6fed3eb0e90e17f1e39b4db9936f20e44c67db40c609cf967190639f9ec0573f04ea016dc6bae87e062d13d1391658c2a55b0103c6da9930a33fabf20d4b8739afaeebe23b0064ca56415453d1a26062b5a2296b65811b4654d15ccf8d03b6b761872d98767abc659fcfb08e6188f3a6db81a733b489a0b2a0a40b5176a8d574ce997339457d33b7fcf89c33c7dab59d340b899e4b55e8d4c18f52ddba74625fd3cff6bab32a5c3176a22cf58a8693b9778edd66d552920a3e8d0c6ced5865ba9a79ecb2baf2368be57361f1e2d2168fcf5d79ea5ed0880ed3437914135b6db91c565c3fb9c8ad180ed23a24c85eff60c69ffd602fb3785ca17eb58778b5589e5fecf6202edc7adb606ed5f940ab095f4cd5da7a7cfd236b7ab2c03ce9d3ba776f6d7f2bd8f7ac656b9c396becd9baae460029c33c1f0d5fbbd25bd69287e087dd291ba434ddfbf39b51f319a2d77afc00fb73e499565c8ad24de9236ed4788140d2c914784fb14e2177757e73b5d76dbbcfe5be07703bc891b3bc03f3d63ddb41716be8b8adad54d2764bc32ea0e6227615c009f31578d818bb704fcf6790c050b302b1a9ed6343a3775b7ce13e6689e2360fd95a1ccea5abfee92f96c283479fa35bf55c412ae6e21a9789d802d41400a0876237f34f9dae6e80247d3ea9c65df2758503f54b3caf5d45a4bac4c69e7252fcaedd0047148966cd6cd5969aaeea3a9c31456cd0f7a86a842088c11606c6183bc6bf70d0b554622820e356ffae4395860143be78d0752ab450a08ecf151880b5032a4170b10f2e046c0c87643fdae4c573415e2315ee46b79b93b4fd33109b8892fb2b11dd783329777f48c2c522e50e14e5ce5ab227982f96abda7fe189765afdcb07a17c33c3cc917ffda169fbad2c7f6430bad9c52130272bd7e9320c769ad3068847757aba4391b64d6e1ef1fa1ba8afe1729a7d3e46a87f11e65b98c446d539e627787d045d2c507f60fd9b4f501f8fafd9b83da9880d1874ad4ef8dd63dde69cf70627ec3fc7fd32346c6690446e071de601cec8abc3e847e2ad89061d4ffffca7d2c30ea3cb909f6fcbffaa1da116cbbaf53b3db82fdc2419dc232a1dc9b73e32624fb40b8bdaae85f75f61d331a2bf6d67ad3eba34d91ebf2734c3a232ac66b0214c7bdd20bd435fff768a7a8bc4a290c7f92b792d8aeeae28aa020f6ecd8dcb90e3839ef5606d9a1aa706f58b10370a7531a2de796231340c6b7c32523fddcc9a1fa7fddaee70ba8f87f1b9ee7372ea5cf3b6015bf9aebb37f5a029f5cd73ea1a36cfee91ff0eb9a424a8982c649aa0435e8a63fa66b9a2a7589cac8b6c92b80b9a58e1b851b7da7ea3c7bad5828857c00e2b7bd59a79dcc15f3ba89ca1d0e96edca77a6b9cc5416975e764c3414624a8e25fc060d66f0c93cfaa65b120df1183bff94dd6e607c0f810bd75bc017f86529141c453b66e0c410f3205d9f7ef75f29824818928d772b0d9e453411e726b2a2d7055caff9a6b69b4a11dd7d1b87607b49837b1cd8c7ba300692c360b1234c78a3e97c9ae04cf82a22fb4b81e7d6f27ea93a07caad1eaae91285e7c18905947ae3f92f09e85e4424d2f4d0f48707ba90423460a7438b90dbd57d2841c9c98735cf31972d15a889760ec701b13144f23e45e2d66c0c3d0e7fec08363dfe2e36cc8b93e4e7b270dbaf765b552416fdcb6a29e39e8b2ef47deeb44bf66f89895d34b49830e95bb8f93f3f4a7ab17af93f697246fb7d2eb32ab13aedd3af66165b9511a52af61562ae07ae63e7980806bf71271afe6e677efb5173d7db97c42a00bd19a4c40bc00cef576b968d2741d6907b7b85cf085647d11ade7caf4050ca7640f371f50011230244d6da28389abe4ed01b574a8670c4672b65aad2383fa5cd47390fa0646f4d8fa894683b3d1f7e41aace8d5f9319374a319ebfd977735f18dc821d7f7f481f1edf7676ab38eccf145ffb1fdfb4ecc826cf6d76ef7bdc334c9c0424fced846ca0cd5b98e668f37b80854d478733c441dd414d6289d0d12906c89ca45352adc048e15d9e061bcb21d982e269c325bd202eeb0ffd0b56e876c4dbf26b0d97126c7b6d4084f4f4263dcdedfd7d8bdff3298dfffe67400a777e3e847f80fd7eadbebf3bae9bcf3a08292b8b3ad26541c9ddd874567b75d7277b8a4fee55df6fb12580001ec34cd67ab327b4f946727053349769326c48bfb5117eb26bb48d5a4ba7bcf22ce8e21d37f88dc6e2a71bbb6cc88b893ec9f01287d7bf45dc48c42bfbfaaa73f772e1ea5759d8e3f3eeac6e60b30e9806c02c6e451377a8f0f01fb70ca10ca6eedbbe8e2d1cef6a3187efdf8c8d59b6ed4b563480e1f5f662582a27c638ea0efcd3643d0dde977fcbe91f65f042cfef93ab35e806675d00361ae34ac6377d7982195b9475d6f9bd7d96c5670f1349bee6c1b2593bb5e505775bdacfa4f9ea4cbbaa87a93ec9335b4479a5b46def67d0d052f71b4778055c1c3df18d561edbae5d59e6615f75eb9d487f9390a0a6a4dc318ff7fb58ce43fcff7279ab65b56d67a27ec02087f47af9dc38444f1a70d87df38bcd4e98a448bc234cb05f7afdddf8a723679d45d078be692f67b21c0b546c8c8be6f45355c0f385f8c7e7d40b7cbf83918fefc1e750f4eb2b45b0dc43e20e661ad4f4ca1d2e455d0fb4ace4f979dfbe9759dfaa1dfad5ac3edd8c4eb58dbe9507c8ef55c8ef53d8ef7f7141df9ab2e579902acd5cbd854904c9db1b14be1be7bc9929c07f02efe0cce85c5379ec3f74dc7c1329b4db091d6eac10897a5097218366c1735b9cc1624394774d2d710ea04e74d90d8c65322a06772439d229171669bd67442d41db18f8f5827a4bbfc12fb9d761f73cfc521c66a727795521b6a5acecfce258530415c521dbb1fe03f67615ce857f88217fe068aaeebf83e0e20e6aa07f50472e88ee58eff1e6565cfcaab12e415a744b09e060a9616bcbc7c69ca197a79a42561b1516bf52525ee3e606478a29631b0f88051c5f975b34d021a8fd8eb359cae2ff4d8fa8cdc5d823b4c3e431ae43d4900efed21dd2e945ee8fc6887ba533b8f7cc01c3e956f02010e963aa279e8c0fd31b696d5ebaa867bf8b68ef48ea3b95dd3ef14246f3a478893fdd4f66924eb5cf7845557c56a3689aee82700af0bc79798c85596f2a333e98cb654eea2520505dca29d353e8b84ad1500b1bb06885d1cc4d335403cbd8f4617b3365d857bc0da7d08589aa5d946b6a7c446f892967c599be62d358152bb5b37dfa9f91b7d875b1b51a11c427dbd3e7b962d2eeb2b5e47617d0286ce70378ed6eaa3af0361439aa365d62a20d7e6f1e5426ea8e40e77862e99075066c1ee92a062882673b5751d43c29bdb9a4c36f46bb29d07d064be1b26d65c664fbb88c526ce85b807b74d1c00cb42696d3a20b982ade30e78b3e6c8f1c55b91f6843c825a08225e4ba745f0218e9c8e14a208365300dc2f0bfe4694b9e8dd495f5d69d8cae28fd2151bf8e8f666a6be8ff9f497a7bb3bbf0439f414c0d71137fe891c70f1a9f68b2c2252452a9b1574c1c92ef38b15b9fd14d23ff9027e5f5f658be6e24e39a72fe5d15b2fafcb62719948441fd8e7ffa33cff7fc7045f614c70f7cddd37ff0b3d14a1d4d1a40000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "token_coin_swap", + "source": "0x1f8b08000000000002ffcd1b696fe336f6fbfc0a0e1648ed42cdd1365dc039b069eae9044de2c124b3ddc5622128129d089125579493b845fe7b1f1f49e99122ed1cd3231f3291f4f8f8ee8b9cadad2d76c46655b628389b56f59b2d78b1b3c9de5745c69aea9697827191d6d53d3cb179cdef78d9a80fec8ac3afa64e4a31e575cd335cfbf5263bcd8501018c4cdc27f3795e5eb3fbbcb961096b92fa9a373c63c7555e5e2ee77c13177eb3c9c60f3c5d349c3537bc5df546d396cc9b4ac4887534c27fe214d6c7128efdf686c1cf42c0b2261b8d447e5df27acf79d9d4806e34bac07fbb8f0a318234c955c147a3df2e78318dd8a57c7af40302d5715e4eab0e18de9cc08b1efcb44e66fcbeaa6f47a3244dab45d9ac80901cadf88cc26fb71ccba7f7499979a8248b9a7cc64593cce62e0c9565c7877cd2ff9c6411cbf8bc1279a3802354615627f7e679c641971113f3226f8008dc21ad4ad0fff872f2d3f83c3e3afd383efae1bff1e9c9c5e5f887115b7cf72d3b603b7b7d48097172fe637c3eb98cc7ff810703fcb50758029d9cc7e38be38f939f0de0371ec0e3a373097b36f9f7389e7cba8c27eff4a2f8fbf1bbc9c7717c3a39fee9d387f8f2e46c6cf07cebc17306bb7df878723cc6adcf8e2e8fdf1bf05d0ff8d1d9e4d3f9651ff63b0b16593d9f7cfaf17d7c3c39393740ffd482945e818a908e7221edbce6695567029c08cd3e11b7b68729bf4866d2cc94bb191f33ce37cbcb7c9614e0c979cad99cd76a0dee071eb2481b7bcbfdf94d5236d5ac4574c86e1201a0550d7acfeaca389ffca1db233351fb09f68d71cf18f6d4a6d7413c1286c1f70b0820929d6aca92a23061c8e21409c85862024d750f1eff054846f9588f9f53855204f8b9e54bc20790215fe4022391da20cf6c02c0efd85d522cb801030eb554816c15e398f467d6608833b8356f62a4e2cb7eeb69b6d85bf20e2377698c6100109000b04f99c4f7649da439bc486e47573c3ac63756d1ff0612029187fc13849f266559359009dac800aaa8ada4e06ac2e03356e4dacf48c720aa0dd0685ee0e64595de82de655063f502c8a8164d845fd0020c41b3ea8e13e501106a055ea8644691cbb7199f268ba2e934ba0da12d29d1a728ee0e31aa56e24dcaa5a4a6d312521823c9b1e0a908d839ca5e0ac01230782838b6a4d5581da45dd82fd78e3aeec8a742b510f5ec59f9a5e23c60786aad6d021eff4143c11da4eb477e0dc679366a3348fb69755870deaf12a20aa0b0b0cbc26dfa0dd2df5af9cb88579fae164b5e8f5892653517227a4adc4342c35fd6b1202de5182d0d2dd038990e2c954a0318dab557ca18c1dd50d5505730815231a102d37c7155e4299b2e4ac61f528890d75c5557804705eb2e200d6c0e10df886da89aeb298c2b69e9753d59a6354f402f22d65f7c205551f0b4c92b8815aa9aebbe9550f7f4dfce41dfbc6e96f11daf05aef350d4237608d9e497450e9bdb3924eafb5c6744056f5a43825caeab2be48ac7e6430c3a1cb89c4684b10819897a840ff768e4826895675dbae40ffa0f999bd2ce6a30d42ea6d33ccda5035c254552a6dca258694bd101542b6542c5aadec4d574d0299bd0d0316b68386057550d1289af8b0a368a678b66df4ec05d661b104b2048132180e5b7035d8d43add4247929061bd64e9b45ab0d23d56114ac253de82543a3911606316f2a8a213b3ca0961cf56a368f4240d1a41890ba508b3d5243f70523519c6ac981c8061bf08bade5d723b316eda6a7e2625fda15e2becb5cb0d65dbd9585f4f0c0da240a95c4435de56ad1b5a16d5a4375a6c8d58da7c986a22f4169ac764f12cbf53ad741646d785d2605b5b44e7e9145a8438f6e7cda6aa76ab3be42d3c25a1d1271138d5d38786fb0f4426475b54c8a666971a5df759103cac858bf1c10c53ba268c0d5d20a7a8a03f62c13d8f36d1e67bcac60ad8c4e5e4228c06043bf1cfa714d39071cf9940dbcd80fd8f690444ff9b3dd3e3d325e08ee7c26cc7ee9a3ad5c40536a53c6b69ecc44b7b7c30e9f411052118e50f015e5d352b4360b6e2ca7aaf36bd8ac68139c575af36489f2f2908b9f42d2c668afbc7934320ee106356d96846282452dd5540fac4d23fc18f00f5389b41586e31ecfa6ce083a489be5cb1eca16730cc15dc9a323670b238d3114bd0eece8e5da26320e2c29f4904d6b6813cb157ba1c5aaf00e9c41f3f0ecd01e708200f9c12f5f05fcfe91084fcf97f80cc219feed7688038b080f27a4d58c2c58a708b7b9a1c57714f8a26b6f9a9d43a03af1f4be5a2569e7c40140529a93711ffe594d89f10eedf58fdda356a2dbf4e9aa4c8a4cd0d6ce2ada6959aecc4c16e7728d497350990b6b5230f057d8fdcafcef53619b161005ee1b0c857b416f854e4af2c8aed9ff8a0a1dc258934345f8ab418b0da7ae4d02c52fad84baa8228b48d5adc2bb9927dc7e21681bdf67b557263db122f21639f0dbc3440f4bd4d79ccd2848558551dd7232e962cec4535a7c58a03aec101ff04b55ca41d7da81319b2fbcfae288778ed937e15019d1b549183c9fd12b795a32caebb04d22fd4afdaddb4969505fe764cfeb8908350ed8bebf3c42e1ba5529a68158d7bb7f1cc33addecadcb62d670d44e6494524fdab2665fcfc95c5dae599596c80cac6f487df09e53fd89f9eb041c10fdaf5ff160f64ae8900957c9acf53cb76d33d6d089d9d210fcb309bfd3cb328fbdc5a188089b994433646e9de71b6c0450f40da21bf16ba729f9fdfa39bfab0882a91ddeebd30dc41853abf59938954a1fb57528b0062f2900c34849a443ab865a17d4edcb109a2b5ae3f60d4d5b0c313432b9f75a5528bbfe810645ea8df59644e933e6441084024b3bb60f1a932160f8427d50c25629e5c3820e9261b652b55703ecb32072fc234f834ce5014f57cbee3ca5377a0e15194fac6bd78def45ef64e96595a5af9414105e3bd5ae4a7596c9581a5a9bf02c7bb0cdd2cdf02e5124d5fb0c34c3c991eae77ab3c815b814498ea1c92b0103c04806602b7bd9ce436cdf58e9163aa98a27e4c7555e41aa9a309b9145de70cf2deea88bd4f99d1c3e803963978059b12be8f541b69c7026ed78531f65e318a56b0fb515b4e1ee29534e9fa360ef123cb35a7752a77c41c3fc292ee1921e34fbd031c10a738dbcd747bce7192de1cff2070f75e6f60d046e580ff658959918c0c182b5d166bfaa7bc90d1642005ec9a1c326bd916ecd7487e7daefcf3e537553f0263b6958c9b9ba8882514bb6a4c9a2b98129e7afdc8deb61d3fd0ca1fd55c6fa14a75a139669980808f5589e3015de72799a3f70eb7c88882dc565c192f93365c5b827c0d79d7a769efb9cd2ea75bd713f66f49b61d0831ac0aa6b24e6c8548ed6d6869415fdf2aa93467beedb47621177dd8e6af465151d81e4e8c7ccdaaf92f4567a9aca100a1ab3c7730fc65e33fdf1ac1576a7f88fff3510f3281c10f3afed87a3ef237280a6deed44ee8d45f9de7935fcbf7f1c2ab789031716ec0e407b857565c1bc736f4c32d32dbc60b648c2bd80b31bf9089d94bc359ad40dc477248fe3b2c186cbe59e0f8d3acd306e80080d92c1ceb6faa1792770e9b41d70eae70e89c74737acba73ef6993d36e341a83cd6a256c58c602f476bf3e3bd1e4860215a522d2df2d5a8bdcf326bdf734b9e5f1ac2af9924247acc79a35fff20cea15d67780ee4c62730f5328ba757dc146b80d272787442372563d08432a743ea06dfb512acf7e1105ce6e893843578ad6088408dbfab0bbf31af9fc9da4b9bb6de7007267a72a8b255edcd9ddc6d7029c6fdaacb9c4d213e83a3791c79dbbd21d9dc17c77e9b6ed4acc5d0ceb72e7a675a225c9dd6ea70374b8e0bf3cd2122ee95aab972e6fe2ad0145f4ca9b481b5609e1940faeac0ed70742525578f6edfe3782d3340c2cba42f95fc8ff70b16bc487ea374f01dd3bdbf6ceb1a56257c1b449fbf1cdef0360ece106320000", + "source_map": "0x" + }, + { + "extension": { + "vec": [] + }, + "name": "token_transfers", + "source": "0x1f8b08000000000002ffd559eb6edb3614fe9fa7603dc09006a191ba0b0aa5090614295a0c688635c0060481204bb42344163d9272ea1579f7f12689a428c96ed2a4cb8fba22792e3ce73b1f0fa5e3e36370795310b046795d42b0c1685be490007a03c112d5559ed20255ecbf18509c566409312eaa15404b70896e61458e9464baa18824948fc5b1f8491a0102be1c01f657130808cde39814ab0ae2136b9072c571fc49fc5a93cc2ad204a4313143d34509e3f8cb27582e0370c99feeed85ba57dd52fea47e3ee43d99254ed7f00ee1db384eb38c45828eac805b58d156f3397f7a9f56b970e5488865a822149c5f5efc7efe31b978f7eefccfe4e3c56572fef7874f9731a87ffd199c82e844ae6591a8330afe8055ce22f1b64c8b3501372901b770a742c9ff36723ec9c48258eefd8dd8cfc59285fd43ae767716b432884f24c25d26a139aac989514d264bab0c96c984e85bb1caad803b3822c9a775997b230cfa86441432b4d90520c76813b03508432d261425699ee318f07f21218136c32159e47193f1715bc21f616ed41033b1bf2dfe97ae399444c6071db043f95c6eb4797942079675058aaaa0455a16ffc2c422124f95620ce692437ccd9535da7201af1d1076a440600c9a95f5c598735596e2980ade39cbcbf3839e0ab35a1ab7b90a3998dcb8cbaed9a143a5b30e2734f7aa724cbf51a6538abba21d5079df3ef97682330c53da2457eea7c8bd5eedf6f1e3c7261d74a91b18d6201a588352f591e9ae7272532fca22036c7778273c964e920c171bda018c309c40e6b0c4626700c30c165be8a221b175e49c416509337edac6409e81dd5cc54e9afe283bac3710d35dc24c1121d75693b3c47c96d47fea82991dac8012d23634ec445227a691af224f707ae7a98d049adf81f033e8f9e59f98e78f3797810bda4075a90e94db4ac6cc479b897e0ae607e4e0105ada3366d20d81331636e90b6b1ca46506714f2ed022512c81f7027e2e08256f0ccd679ea6ccf72d308f70a332d1215ab5138d8f26ab815343ef7c5d53b040accdba4b56255aa465c246c63c7b69ea3b7160a8296d161277c9f7f3ef3bf47440bc2be84dced027f5780d8c06c0d38659f137ebc1685a54c4333d0f2c6f7b3157e26cd71392ea59337f0f6049a0a58f6f2c2734693727f5abe8b3b04f3978d2a7b2385e43bc825eabd7e18b8607d5b0c2754125b9f70fa287c2433fa74ceeb5bbacfe01ac77159ad2c0b15065be372391601d49dda3935f3abe9767a1cdf71da7d86cd3d0d073f1fd7740ed2264debc2b69bb3a07295d4a3aa23cdf3bcc0394be67581e8d191f85141da7471312df499429212c272fbc03692e00e256cd3a3c441371d7f7dcf753df45caa4232e0c79ebbd3f69711db23c3b1caea0e2ad44ce7873694513532b73b841a450abed1384af9f2239bd757d40a6f576d9c16fdaed6982dfc6d2fd7484a75f2efe3f7deef7c07b5ae4c63a5b3301ecbddbf967d6bb8125466b806a6c9310bb6b3125b4c615d3005629f308ef7acca9dbfe163df1376b7f1fb3497cf2c6f649a86f8af98ce3751fdaebbd0a78689c1c2f245c4468bfcd7afe76ef872b0a096dea9d65e2b7f073140074c7602b9f5ef9d776ad7191a45ab6622d1d4ab9e6f17046d251efcd5b128a7cebfea66646aaac11b60027fc1b13130bf48662e00d784b9bea99750d3811a1ec4cf42ffbed8eba45fa952deaf7906261606cd828fe23dbc4a88065c2a0eb294b7b822654a8518f917cfc690044302ff8d942bcfe696933b6d43e301e99e38f86bc578f8bbc70127ae1c3b117dae06bcd4793e6a3879b8f1af3e3e00f47a1e914899c22fdde5f1e118cb639bec5913b92250de3e0f41484c355184e14c7e13ea88c5b2e44c32e44dfc68568c00527b784a3d918f0da99f2210bd17ef4f51522caab7158b9b82e4155b9bb1eb82fe8d4d1d257d371eaef51fdb6a5d488a8f7d5577d3a95adbffde6b2ebc713de8ef35a5662355dbef616b3f7b02c5100fe42b8cc67160968c2aca1119fb3130229e55fb14fc1964d21fc6681507976b54cd9cbba00e83fd70fa10607f69a0ad461605e493a7fcd06adc99f31f8e3dc8a8d396d85e9ad76f53243362a7643e986c4c7c722002f73b8b5d747e6e348c48d8ecc712c7d4586da1ff6e9524f9778cb0a97695dd2847d38279d2a09b2b32b6b9b29a56976cbf666efbfaad72c7509c3eccc1f30b0652e7406d44ffdfaecec6a318bc2590016b35f6603b274b781d3de1515852b881deeb533d727039092b1b56ff587806a0c1ea2ba5b4089a709408d2d7535f2aeb143313a528b1698c3d01c085d5f0e8781cdff74dcb9673860dc33020ebd9bcb5052d5ab8bafdbea61ecb1479ec3de37dffba3ff001ba3cef463240000", + "source_map": "0x" + } + ], + "name": "AptosToken", + "source_digest": "9758186DC2F67FC4499BFF45D0EDEDA75B42CA42B61B069A0F46D7091B529A5A", + "upgrade_number": "0", + "upgrade_policy": { + "policy": 1 + } + } + ] + } + }, + "type": "write_resource" + }, + { + "address": "0x3", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000003", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x3", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x3", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x4", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000004", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x4", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x4", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x5", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000005", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x5", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x5", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x6", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000006", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x6", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x6", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x7", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000007", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x7", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x7", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x8", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000008", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x8", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x8", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x9", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x0000000000000000000000000000000000000000000000000000000000000009", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x9", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x9", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x000000000000000000000000000000000000000000000000000000000000000a", + "coin_register_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa", + "creation_num": "0" + } + } + }, + "guid_creation_num": "2", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": { + "coin": { + "value": "18446744073709551615" + }, + "deposit_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "2" + } + } + }, + "frozen": false, + "withdraw_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "3" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0xcef8ffd1ab9017e96132df8a56b22de39a8155e1c3fc32affbbf93eb624b532a", + "coin_register_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "0" + } + } + }, + "guid_creation_num": "4", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::version::SetVersionCapability", + "data": { + "dummy_field": false + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_coin::Delegations", + "data": { + "inner": [] + } + }, + "type": "write_resource" + }, + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::aptos_coin::MintCapStore", + "data": { + "mint_cap": { + "dummy_field": false + } + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::coin::CoinStore<0x1::aptos_coin::AptosCoin>", + "data": { + "coin": { + "value": "0" + }, + "deposit_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "2" + } + } + }, + "frozen": false, + "withdraw_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "3" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::stake::StakePool", + "data": { + "active": { + "value": "1" + }, + "add_stake_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "6" + } + } + }, + "delegated_voter": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "distribute_rewards_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "12" + } + } + }, + "inactive": { + "value": "0" + }, + "increase_lockup_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "10" + } + } + }, + "initialize_validator_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "4" + } + } + }, + "join_validator_set_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "11" + } + } + }, + "leave_validator_set_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "15" + } + } + }, + "locked_until_secs": "86400", + "operator_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "pending_active": { + "value": "0" + }, + "pending_inactive": { + "value": "0" + }, + "reactivate_stake_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "7" + } + } + }, + "rotate_consensus_key_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "8" + } + } + }, + "set_operator_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "5" + } + } + }, + "unlock_stake_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "13" + } + } + }, + "update_network_and_fullnode_addresses_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "9" + } + } + }, + "withdraw_stake_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "14" + } + } + } + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::stake::OwnerCapability", + "data": { + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::stake::ValidatorConfig", + "data": { + "consensus_pubkey": "0xaa7023a1ea88520c0b163c530367dfbfe9269621c96dc9dc9147aca9c278b1340c07b21600b2b5423a2fb88c679b0c5a", + "fullnode_addresses": "0x012d040000000000052518072022b18b21ecf48f18a1ebb1b8fbe0347af7913e84ad27473669eca6efc8df087a0800", + "network_addresses": "0x012d040000000000052418072093c5ad141db18cfef10f1452d9019922745c7b8cec22ea40118b9e1a76a756680800", + "validator_index": "0" + } + }, + "type": "write_resource" + }, + { + "address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "coin_register_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "0" + } + } + }, + "guid_creation_num": "16", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "0", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + }, + { + "state_key_hash": "", + "handle": "0x1b854694ae746cdbd8d44186ca4929b2b337df21d1c74633be19b2710552fdca", + "key": "0x0619dc29a0aac8fa146714058e8dd6d2d0f3bdf5f6331907bf91f3acd81e6935", + "value": "0x00000000000000000100000000000000", + "data": null, + "type": "write_table_item" + } + ], + "events": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000000000000a550c18", + "sequence_number": "0", + "type": "0x1::account::CoinRegisterEvent", + "data": { + "type_info": { + "account_address": "0x1", + "module_name": "0x6170746f735f636f696e", + "struct_name": "0x4170746f73436f696e" + } + } + }, + { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000000000000a550c18", + "sequence_number": "0", + "type": "0x1::coin::DepositEvent", + "data": { + "amount": "18446744073709551615" + } + }, + { + "key": "0x06000000000000000000000000000000000000000000000000000000000000000000000000000001", + "sequence_number": "0", + "type": "0x1::voting::RegisterForumEvent", + "data": { + "hosting_account": "0x1", + "proposal_type_info": { + "account_address": "0x1", + "module_name": "0x676f7665726e616e63655f70726f706f73616c", + "struct_name": "0x476f7665726e616e636550726f706f73616c" + } + } + }, + { + "key": "0x000000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::account::CoinRegisterEvent", + "data": { + "type_info": { + "account_address": "0x1", + "module_name": "0x6170746f735f636f696e", + "struct_name": "0x4170746f73436f696e" + } + } + }, + { + "key": "0x020000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::coin::DepositEvent", + "data": { + "amount": "1" + } + }, + { + "key": "0x030000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::coin::WithdrawEvent", + "data": { + "amount": "1" + } + }, + { + "key": "0x060000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::AddStakeEvent", + "data": { + "amount_added": "1", + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x080000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::RotateConsensusKeyEvent", + "data": { + "new_consensus_pubkey": "0xaa7023a1ea88520c0b163c530367dfbfe9269621c96dc9dc9147aca9c278b1340c07b21600b2b5423a2fb88c679b0c5a", + "old_consensus_pubkey": "0x", + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x090000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::UpdateNetworkAndFullnodeAddressesEvent", + "data": { + "new_fullnode_addresses": "0x012d040000000000052518072022b18b21ecf48f18a1ebb1b8fbe0347af7913e84ad27473669eca6efc8df087a0800", + "new_network_addresses": "0x012d040000000000052418072093c5ad141db18cfef10f1452d9019922745c7b8cec22ea40118b9e1a76a756680800", + "old_fullnode_addresses": "0x", + "old_network_addresses": "0x", + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x0b0000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::JoinValidatorSetEvent", + "data": { + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", + "sequence_number": "0", + "type": "0x1::block::NewBlockEvent", + "data": { + "epoch": "0", + "failed_proposer_indices": [], + "hash": "", + "height": "0", + "previous_block_votes_bitvec": "0x", + "proposer": "0x0", + "round": "0", + "time_microseconds": "0" + } + }, + { + "key": "0x02000000000000000000000000000000000000000000000000000000000000000000000000000001", + "sequence_number": "0", + "type": "0x1::reconfiguration::NewEpochEvent", + "data": { + "epoch": "1" + } + } + ], + "type": "direct_write_set" + }, + "type": "write_set_payload" + }, + "events": [ + { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000000000000a550c18", + "sequence_number": "0", + "type": "0x1::account::CoinRegisterEvent", + "data": { + "type_info": { + "account_address": "0x1", + "module_name": "0x6170746f735f636f696e", + "struct_name": "0x4170746f73436f696e" + } + } + }, + { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000000000000a550c18", + "sequence_number": "0", + "type": "0x1::coin::DepositEvent", + "data": { + "amount": "18446744073709551615" + } + }, + { + "key": "0x06000000000000000000000000000000000000000000000000000000000000000000000000000001", + "sequence_number": "0", + "type": "0x1::voting::RegisterForumEvent", + "data": { + "hosting_account": "0x1", + "proposal_type_info": { + "account_address": "0x1", + "module_name": "0x676f7665726e616e63655f70726f706f73616c", + "struct_name": "0x476f7665726e616e636550726f706f73616c" + } + } + }, + { + "key": "0x000000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::account::CoinRegisterEvent", + "data": { + "type_info": { + "account_address": "0x1", + "module_name": "0x6170746f735f636f696e", + "struct_name": "0x4170746f73436f696e" + } + } + }, + { + "key": "0x020000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::coin::DepositEvent", + "data": { + "amount": "1" + } + }, + { + "key": "0x030000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::coin::WithdrawEvent", + "data": { + "amount": "1" + } + }, + { + "key": "0x060000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::AddStakeEvent", + "data": { + "amount_added": "1", + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x080000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::RotateConsensusKeyEvent", + "data": { + "new_consensus_pubkey": "0xaa7023a1ea88520c0b163c530367dfbfe9269621c96dc9dc9147aca9c278b1340c07b21600b2b5423a2fb88c679b0c5a", + "old_consensus_pubkey": "0x", + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x090000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::UpdateNetworkAndFullnodeAddressesEvent", + "data": { + "new_fullnode_addresses": "0x012d040000000000052518072022b18b21ecf48f18a1ebb1b8fbe0347af7913e84ad27473669eca6efc8df087a0800", + "new_network_addresses": "0x012d040000000000052418072093c5ad141db18cfef10f1452d9019922745c7b8cec22ea40118b9e1a76a756680800", + "old_fullnode_addresses": "0x", + "old_network_addresses": "0x", + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x0b0000000000000066b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef", + "sequence_number": "0", + "type": "0x1::stake::JoinValidatorSetEvent", + "data": { + "pool_address": "0x66b22b7465af92a9dc8d07d2878716d9dffbbb280830a7d8cf80334b5da812ef" + } + }, + { + "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", + "sequence_number": "0", + "type": "0x1::block::NewBlockEvent", + "data": { + "epoch": "0", + "failed_proposer_indices": [], + "hash": "", + "height": "0", + "previous_block_votes_bitvec": "0x", + "proposer": "0x0", + "round": "0", + "time_microseconds": "0" + } + }, + { + "key": "0x02000000000000000000000000000000000000000000000000000000000000000000000000000001", + "sequence_number": "0", + "type": "0x1::reconfiguration::NewEpochEvent", + "data": { + "epoch": "1" + } + } + ], + "type": "genesis_transaction" + } +] diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_user_transaction_with_entry_function_payload.json b/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_user_transaction_with_entry_function_payload.json index a6f823ef24d99..cbe681ce904ae 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_user_transaction_with_entry_function_payload.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_output_user_transaction_with_entry_function_payload.json @@ -82,7 +82,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -115,7 +114,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -237,7 +236,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -250,12 +249,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xb11893ff961e5e59aaa540132fab5266b2caf4ea94758974454f996f0cbebe7a07dd8f91449b83fcec4b7a0672b52a2f1cb7ac9b0b83c9e66d569971eadf710f", + "signature": "0x60d705c5f6fb83c18f8512dac353c8c3cb267d6eb4339fba77e00ff2ebefda256025792bd0f7481fd22fd276581212550f4c06134e24a2203bdd08d3782fdb04", "type": "ed25519_signature" }, "events": [ { - "key": "0x000000000000000034bf7e2d17674feb234371a7ea58efd715f0e56ba20ebf13789480d9d643afaf", "guid": { "creation_number": "0", "account_address": "0x34bf7e2d17674feb234371a7ea58efd715f0e56ba20ebf13789480d9d643afaf" diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_returns_last_page_when_start_version_is_not_specified.json b/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_returns_last_page_when_start_version_is_not_specified.json index 18c0c93c12c20..c844c4071c603 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_returns_last_page_when_start_version_is_not_specified.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_transactions_returns_last_page_when_start_version_is_not_specified.json @@ -87,7 +87,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -120,7 +119,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -242,7 +241,7 @@ ], "sender": "0xa550c18", "sequence_number": "12", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -255,12 +254,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xe711e133d0d928535280ddd508c88a447980d7d8fa15fee03472495cea88a2405f892fce98319442d38800320e99eb0f96e46e33eb6b75790acdc1c756cf600b", + "signature": "0x415d5cc5ffc37b09b13b112e79609c3bd113c217b8a35f752c816e90459ae23b3959bf60b0a4e0732aa5d0f4effc2ed136b2e25372e4dc23215580b6aad10b0e", "type": "ed25519_signature" }, "events": [ { - "key": "0x000000000000000048a951fe0ed12b29517867e00a3a09da55fcf859497b3f04bbed911cb75669c9", "guid": { "creation_number": "0", "account_address": "0x48a951fe0ed12b29517867e00a3a09da55fcf859497b3f04bbed911cb75669c9" @@ -367,7 +365,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -400,7 +397,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -522,7 +519,7 @@ ], "sender": "0xa550c18", "sequence_number": "13", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -535,12 +532,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x9fa7094210cd044bbdfe008e2b1e6c428a4737207203ed2c13a3f5be8e6ef09f7b06b2114b38f5f34a4312a648dbed5ba03a9daff95df737f3f9bc22c86be30a", + "signature": "0x0f4444b11d1c1fb2b2a454290c9a73f53b96fc344ab41edf7b8181ee6ac0e2c91f9d76c55e1d22ba4fe31fd2aff438c9e3143d059e3180667e013b6a6382a60b", "type": "ed25519_signature" }, "events": [ { - "key": "0x0000000000000000095f70f0272707f73ce63f9b09497324a7b2c9118d5d5fb22cb373efd916a681", "guid": { "creation_number": "0", "account_address": "0x95f70f0272707f73ce63f9b09497324a7b2c9118d5d5fb22cb373efd916a681" @@ -647,7 +643,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -680,7 +675,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -802,7 +797,7 @@ ], "sender": "0xa550c18", "sequence_number": "14", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -815,12 +810,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x9bdfe4da65e2fe036dbc42b0ff86b9281b9299356452d43adae470f219d2580b2e5748b1ca7dc2a2f386732c2fb7d738d7031c7939e79e603f8a9c1f7017fa03", + "signature": "0x012ba8bc73bc9a0ed24bcc2499ff1059beda8a52dbc97384326904ae251675815a16bbc76bad9f06cec5f8e606b2c6df938596bdf509dea482a4db7057b6020d", "type": "ed25519_signature" }, "events": [ { - "key": "0x00000000000000004c989e245d6ce3f3735edb8ef9f84c34d5e6f0991bea502b05cd1ea74d327a22", "guid": { "creation_number": "0", "account_address": "0x4c989e245d6ce3f3735edb8ef9f84c34d5e6f0991bea502b05cd1ea74d327a22" @@ -927,7 +921,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -960,7 +953,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -1082,7 +1075,7 @@ ], "sender": "0xa550c18", "sequence_number": "15", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -1095,12 +1088,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xa05438f379686fd3faca0cbb3356400c3c1e6d45f9c7a393d9b9880fd8cafccd645aef7082f98297580dcfa9ff28e4a5dfdad9865295d47fb089513456e18d00", + "signature": "0x740b891f0b91397385ae6558c2a6a7e00a253bbc1678799e3c65dc2b3f0d3dd539ec877d879e8a85e94a3f8c6df38931e6b69304414610665446a986ca842605", "type": "ed25519_signature" }, "events": [ { - "key": "0x000000000000000046925daed0a8767bb9437ccccfdf31a1d349a05659710ca0ebe6205d0e5d737e", "guid": { "creation_number": "0", "account_address": "0x46925daed0a8767bb9437ccccfdf31a1d349a05659710ca0ebe6205d0e5d737e" @@ -1207,7 +1199,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -1240,7 +1231,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -1362,7 +1353,7 @@ ], "sender": "0xa550c18", "sequence_number": "16", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -1375,12 +1366,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xa0b4760b13be11b235f924527ad588025b9fa6df1298e45d589af1d36a156310adc6f8d11ba29c0b43ba0c1a0a03fa1db7a4b7f9feca7f11c102faf227f59608", + "signature": "0xdf59bf7d52ec24c5f4981aba8941e8ff6a8373ba2599b1b6e20d01816223bab0256f19cb047c7c1ddc827719bb19dd826ab17ff5aa0fe82844e0fd7da6d10801", "type": "ed25519_signature" }, "events": [ { - "key": "0x0000000000000000fcad780f86d4ee8a3a200bb9289f77eb824bf1d6c155c8d007fc128bfbc33e06", "guid": { "creation_number": "0", "account_address": "0xfcad780f86d4ee8a3a200bb9289f77eb824bf1d6c155c8d007fc128bfbc33e06" @@ -1487,7 +1477,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -1520,7 +1509,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -1642,7 +1631,7 @@ ], "sender": "0xa550c18", "sequence_number": "17", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -1655,12 +1644,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xb5878f8b4fc77b11fa03ab6093441f2e4abab174198c10279a2bcbbcc77dbd0bac1bdf9e03c9be8ee4865047b6db748c8987f0d883b59af91967c11c5de97104", + "signature": "0x2373bfdac2f8b16d237ec6ed5fc57f28ac8985202f1d9f71105dc35f596e05718885dd03e738fb12fb5421db8f81c675db32fd683dfe436b1d7126301f06f003", "type": "ed25519_signature" }, "events": [ { - "key": "0x0000000000000000099acce340661e0c847ca95ff58ced5f474bc30ca7972106e6a90055c1bdeb26", "guid": { "creation_number": "0", "account_address": "0x99acce340661e0c847ca95ff58ced5f474bc30ca7972106e6a90055c1bdeb26" @@ -1767,7 +1755,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -1800,7 +1787,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -1922,7 +1909,7 @@ ], "sender": "0xa550c18", "sequence_number": "18", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -1935,12 +1922,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x6803dc96775b0d9e359769f0f3a2ca2878d29337ffc6517667a7ca65ceac0984662079c715111cbbf5c1506206710ee559926c4bcfe5b915848881bc34d6ee03", + "signature": "0xaf3f20a43eda7fd8a7520b1b61adc1ea0625b7c1bf91da32d66c7c4af6c558cdbf83b40358b12a21dfca76aeb18de69a5ffe86d92d75698bce54a12623658308", "type": "ed25519_signature" }, "events": [ { - "key": "0x0000000000000000e9be740413c5f028e58ca77e0540355874c210b49bcd8a75db8880a7ac3273cd", "guid": { "creation_number": "0", "account_address": "0xe9be740413c5f028e58ca77e0540355874c210b49bcd8a75db8880a7ac3273cd" @@ -2047,7 +2033,6 @@ "round": "1", "events": [ { - "key": "0x03000000000000000000000000000000000000000000000000000000000000000000000000000001", "guid": { "creation_number": "3", "account_address": "0x1" @@ -2080,7 +2065,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "50", + "gas_used": "667", "success": true, "vm_status": "Executed successfully", "accumulator_root_hash": "", @@ -2202,7 +2187,7 @@ ], "sender": "0xa550c18", "sequence_number": "19", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -2215,12 +2200,11 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x071c67d52e56eeb82aa45bb506aada4733bf53b9f861a4f61ca7d739857fbc0c33ea487c3eccd2ea7587e43cf83632ae13c57dd6c39144e73b503944cc5d870b", + "signature": "0xb774c55b039b76be6d7c3807d62829da2e702b88dd334041337ac623f588e74b821322c5855b1a229c38e8d8af2d287ea8b60bcc55fa658400fe5c42ca7c8300", "type": "ed25519_signature" }, "events": [ { - "key": "0x0000000000000000626d590a97d6b59c93711a3cdc7aea92eca7fc5c3615084f43394791f1d6d300", "guid": { "creation_number": "0", "account_address": "0x626d590a97d6b59c93711a3cdc7aea92eca7fc5c3615084f43394791f1d6d300" diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_invalid_function_name.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_invalid_function_name.json new file mode 100644 index 0000000000000..5f2e8b32793d1 --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_invalid_function_name.json @@ -0,0 +1,5 @@ +{ + "message": "Transaction entry function module invalid: invalid Move module name: coin::coin", + "error_code": "invalid_input", + "vm_error_code": null +} diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_invalid_module_name.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_invalid_module_name.json new file mode 100644 index 0000000000000..7db34b1a407bb --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_invalid_module_name.json @@ -0,0 +1,5 @@ +{ + "message": "Transaction entry function name invalid: invalid Move function name: transfer::what::what", + "error_code": "invalid_input", + "vm_error_code": null +} diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_validation.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_validation.json index b722f7b29a433..caff786668d90 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_validation.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_entry_function_validation.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error LINKER_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0x34bf7e2d17674feb234371a7ea58efd715f0e56ba20ebf13789480d9d643afaf", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -69,7 +69,7 @@ }, "signature": { "public_key": "0xd5a781494d2bf1a174ddffde1e02cb8881cff6dab70e61cbdef393deac0ce639", - "signature": "0xd3ef6f3f4956488ff1cf5c1162a981d95e7f60a35205a547865bd59600fe3b34e99b25f87601efaffcdcc65e00dcf145963780b24457ce4ea60ef77ba1b3810c", + "signature": "0x68ab36438bbcb69f131d5476835dd43a4d9d94bd53be308f939d4ba36b66abae2f02891ba41bd7c9fc96b9e992a84e442150c901ce64d150d2d892675c254d0a", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_address.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_address.json index 499b6bb681964..bfecda691acca 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_address.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_address.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error LINKER_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -69,7 +69,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x6d6b702e106ef9e65b69303878c6f5eb4e8d15e1356c7cd7c398e9f72b58801b04dbce77dd29bdea27ee146c403e1d3b3c19fd3995c07c5c3b579161f4abc206", + "signature": "0xda3a7e08e98434fb0732b4ae58e70073c34368c3bf23272d019227994479acbe2396e213b737791e297864ed601babefc33d2fc03078237893bb58077a6acd08", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_arguments.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_arguments.json index 08ccb741ef72c..27b48a7ee2380 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_arguments.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_arguments.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error LINKER_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -69,7 +69,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x79517ce8f38d53ff9e289d8e12cabe103fac1ea4ea48ff26a315f17975d7d555aa7411bbae5ddbfa836ba90d6ec72cba34ac2b34dd32c043a8444a02b5bbe707", + "signature": "0x83594d0e7b6509edad7854079983be00b2fb9408bc8ae8f5fc47115b6fb293dd028191ea5f8bc3efa11a4fda4f7922a59cb501eef69cb3590d766402dba91305", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_module_name.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_module_name.json index 399a82ef91d87..8a6b7d4c4cc83 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_module_name.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_module_name.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error LINKER_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -69,7 +69,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x185faa7922559653ae69bcccfbe3ae6a357a7b81c0d7430dea424e28b75c26cbb80b468c7f1e835a314a0846b29d52b350c6d31ca2127538dfbdde2da0e04b00", + "signature": "0xade4df939256bae19b7681a1474bfa02f1094b45c8bd74dbd4154306a671f592d73ac93fe75ee7e8b57f27fc861c945b557e59b866c07b63a53118c417871f0b", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_name.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_name.json index 23560fbcccf4a..86199b0ed16d2 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_name.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_entry_function_name.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error LINKER_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -69,7 +69,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x0bc60f86a99f8bcfbd2be0956a9a40c206ba9f31c53d84659b1813c7cb32200765dfea8474aac13d86fa5b28b1f1414c6a1c2c12d60c2424019f732fb9f16c09", + "signature": "0xc16b832669c56f8f7305abeceb13fd5ee4de378568968cceb44d7328dc0796e63c12a58997116a8aaec769b1f808a0f9d7a579d871ad00c2b5f0340dfabc4208", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_script_payload_bytecode.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_script_payload_bytecode.json index f560ffb4556c9..c05f30ed09319 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_script_payload_bytecode.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_invalid_script_payload_bytecode.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error CODE_DESERIALIZATION_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -67,7 +67,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xd4c6e21c199229d6524acef25a4a0c9b1062ccab62276d53009f27b3835452ed6db33afc6b19ef10396583166b21755464a611d6517e7c1ce8af25cfb7cfb004", + "signature": "0x786e894229614ff3049adf3b406ee8b7035c249ae32a2704573477aee7a33c4f0e339f450b0f7bdf711aaa936bf04abfc920f5c04951d18c71e1d6da190db30f", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_missing_entry_function_arguments.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_missing_entry_function_arguments.json index d9c80ce62ad75..b899cf74e5019 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_missing_entry_function_arguments.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_missing_entry_function_arguments.json @@ -4,7 +4,7 @@ "state_change_hash": "", "event_root_hash": "", "state_checkpoint_hash": null, - "gas_used": "1", + "gas_used": "150", "success": false, "vm_status": "Transaction Executed and Committed with Error LINKER_ERROR", "accumulator_root_hash": "", @@ -53,7 +53,7 @@ ], "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -68,7 +68,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0x20519c59568843d1472d9ea292348a2942d36d36bde61cabe892cb6678193f6d283547b337a4b63f1999e8a252c84b12c0d806843741820878c0d29eca7b3b0c", + "signature": "0xbb3f5e0909024e36fe0b9ffaa575db23fa1ae5bd39b57165cb3ecf490734df20ee12580cc61b2d6230e1c46cc5b1e0d1046d537ea8b0bebfcc4cbada2799bc00", "type": "ed25519_signature" }, "events": [], diff --git a/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_script_execution_failure.json b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_script_execution_failure.json new file mode 100644 index 0000000000000..480d2df9537f0 --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_get_txn_execute_failed_by_script_execution_failure.json @@ -0,0 +1,83 @@ +{ + "version": "2", + "hash": "", + "state_change_hash": "", + "event_root_hash": "", + "state_checkpoint_hash": null, + "gas_used": "1", + "success": false, + "vm_status": "Execution failed in script at code offset 2", + "accumulator_root_hash": "", + "changes": [ + { + "address": "0xa550c18", + "state_key_hash": "", + "data": { + "type": "0x1::account::Account", + "data": { + "authentication_key": "0xcef8ffd1ab9017e96132df8a56b22de39a8155e1c3fc32affbbf93eb624b532a", + "coin_register_events": { + "counter": "1", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "0" + } + } + }, + "guid_creation_num": "4", + "key_rotation_events": { + "counter": "0", + "guid": { + "id": { + "addr": "0xa550c18", + "creation_num": "1" + } + } + }, + "rotation_capability_offer": { + "for": { + "vec": [] + } + }, + "sequence_number": "1", + "signer_capability_offer": { + "for": { + "vec": [] + } + } + } + }, + "type": "write_resource" + } + ], + "sender": "0xa550c18", + "sequence_number": "0", + "max_gas_amount": "2000", + "gas_unit_price": "0", + "expiration_timestamp_secs": "1662878338", + "payload": { + "code": { + "bytecode": "0xa11ceb0b030000000105000100000000050601000000000000000600000000000000001a0102", + "abi": { + "name": "main", + "visibility": "public", + "is_entry": true, + "generic_type_params": [], + "params": [], + "return": [] + } + }, + "type_arguments": [], + "arguments": [], + "type": "script_payload" + }, + "signature": { + "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", + "signature": "0xaeb62c1c5445d4de1f8a9b9d43b8f7fb3dad84bb6b532e15c4edcf582f5b7bc2b1e2f51cf7ffb45215d912276855b5e31ed2f85280a1d51d28e414621a8d0604", + "type": "ed25519_signature" + }, + "events": [], + "timestamp": "500000", + "type": "user_transaction" +} diff --git a/api/goldens/aptos_api__tests__transactions_test__test_post_bcs_format_transaction.json b/api/goldens/aptos_api__tests__transactions_test__test_post_bcs_format_transaction.json index e54e1d0db28c0..e5726e988ccdb 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_post_bcs_format_transaction.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_post_bcs_format_transaction.json @@ -2,7 +2,7 @@ "hash": "", "sender": "0xa550c18", "sequence_number": "0", - "max_gas_amount": "2000", + "max_gas_amount": "100000", "gas_unit_price": "0", "expiration_timestamp_secs": "18446744073709551615", "payload": { @@ -15,7 +15,7 @@ }, "signature": { "public_key": "0x14418f867a0bd6d42abb2daa50cd68a5a869ce208282481f57504f630510d0d3", - "signature": "0xb11893ff961e5e59aaa540132fab5266b2caf4ea94758974454f996f0cbebe7a07dd8f91449b83fcec4b7a0672b52a2f1cb7ac9b0b83c9e66d569971eadf710f", + "signature": "0x60d705c5f6fb83c18f8512dac353c8c3cb267d6eb4339fba77e00ff2ebefda256025792bd0f7481fd22fd276581212550f4c06134e24a2203bdd08d3782fdb04", "type": "ed25519_signature" } } diff --git a/api/goldens/aptos_api__tests__transactions_test__test_post_invalid_bcs_format_transaction.json b/api/goldens/aptos_api__tests__transactions_test__test_post_invalid_bcs_format_transaction.json index 41d8a214a7af5..5ea441ad22225 100644 --- a/api/goldens/aptos_api__tests__transactions_test__test_post_invalid_bcs_format_transaction.json +++ b/api/goldens/aptos_api__tests__transactions_test__test_post_invalid_bcs_format_transaction.json @@ -1,5 +1,5 @@ { - "message": "Failed to deserialize input into SignedTransaction", + "message": "Failed to deserialize input into SignedTransaction: unexpected end of input", "error_code": "invalid_input", "vm_error_code": null } diff --git a/api/goldens/aptos_api__tests__transactions_test__test_submit_transaction_rejects_payload_too_large_bcs_txn_body.json b/api/goldens/aptos_api__tests__transactions_test__test_submit_transaction_rejects_payload_too_large_bcs_txn_body.json new file mode 100644 index 0000000000000..d5b14339e25bd --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_submit_transaction_rejects_payload_too_large_bcs_txn_body.json @@ -0,0 +1,5 @@ +{ + "message": "payload too large", + "error_code": "web_framework_error", + "vm_error_code": null +} diff --git a/api/goldens/aptos_api__tests__transactions_test__test_submit_transaction_rejects_payload_too_large_json_body.json b/api/goldens/aptos_api__tests__transactions_test__test_submit_transaction_rejects_payload_too_large_json_body.json new file mode 100644 index 0000000000000..d5b14339e25bd --- /dev/null +++ b/api/goldens/aptos_api__tests__transactions_test__test_submit_transaction_rejects_payload_too_large_json_body.json @@ -0,0 +1,5 @@ +{ + "message": "payload too large", + "error_code": "web_framework_error", + "vm_error_code": null +} diff --git a/api/src/accounts.rs b/api/src/accounts.rs index fd8a52eb6b03c..e3ffab48a0b9c 100644 --- a/api/src/accounts.rs +++ b/api/src/accounts.rs @@ -312,22 +312,15 @@ impl Account { /// Retrieves the account state pub fn account_state(&self) -> Result { - let state = self - .context - .get_account_state(self.address.into(), self.ledger_version) - .context("Failed to read account state at requested version") - .map_err(|err| { - BasicErrorWith404::internal_with_code( - err, - AptosErrorCode::InternalError, - &self.latest_ledger_info, - ) - })? + self.context + .get_account_state( + self.address.into(), + self.ledger_version, + &self.latest_ledger_info, + )? .ok_or_else(|| { account_not_found(self.address, self.ledger_version, &self.latest_ledger_info) - })?; - - Ok(state) + }) } // Events specific stuff. diff --git a/api/src/blocks.rs b/api/src/blocks.rs index 5b47b9ff4cddd..917f01e4bc493 100644 --- a/api/src/blocks.rs +++ b/api/src/blocks.rs @@ -23,6 +23,10 @@ impl BlocksApi { /// This endpoint allows you to get the transactions in a block /// and the corresponding block information. /// + /// Transactions are limited by max default transactions size. If not all transactions + /// are present, the user will need to query for the rest of the transactions via the + /// get transactions API. + /// /// If the block is pruned, it will return a 410 #[oai( path = "/blocks/by_height/:block_height", @@ -55,6 +59,10 @@ impl BlocksApi { /// This endpoint allows you to get the transactions in a block /// and the corresponding block information given a version in the block. /// + /// Transactions are limited by max default transactions size. If not all transactions + /// are present, the user will need to query for the rest of the transactions via the + /// get transactions API. + /// /// If the block has been pruned, it will return a 410 #[oai( path = "/blocks/by_version/:version", diff --git a/api/src/context.rs b/api/src/context.rs index 0e6514f393a03..d32fa8d2317f5 100644 --- a/api/src/context.rs +++ b/api/src/context.rs @@ -11,9 +11,11 @@ use anyhow::{ensure, format_err, Context as AnyhowContext, Result}; use aptos_api_types::{AptosErrorCode, AsConverter, BcsBlock, LedgerInfo, TransactionOnChainData}; use aptos_config::config::{NodeConfig, RoleType}; use aptos_crypto::HashValue; +use aptos_gas::{AptosGasParameters, FromOnChainGasSchedule}; use aptos_mempool::{MempoolClientRequest, MempoolClientSender, SubmissionStatus}; use aptos_state_view::StateView; use aptos_types::account_config::NewBlockEvent; +use aptos_types::on_chain_config::{GasSchedule, GasScheduleV2, OnChainConfig}; use aptos_types::transaction::Transaction; use aptos_types::{ account_address::AccountAddress, @@ -25,7 +27,7 @@ use aptos_types::{ state_store::{state_key::StateKey, state_key_prefix::StateKeyPrefix, state_value::StateValue}, transaction::{SignedTransaction, TransactionWithProof, Version}, }; -use aptos_vm::data_cache::{IntoMoveResolver, StorageAdapterOwned}; +use aptos_vm::data_cache::{IntoMoveResolver, StorageAdapter, StorageAdapterOwned}; use futures::{channel::oneshot, SinkExt}; use std::sync::RwLock; use std::{collections::HashMap, sync::Arc}; @@ -34,8 +36,6 @@ use storage_interface::{ DbReader, Order, }; -const MIN_GAS_PRICE: u64 = 1; - // Context holds application scope context #[derive(Clone)] pub struct Context { @@ -44,6 +44,7 @@ pub struct Context { mp_sender: MempoolClientSender, pub node_config: NodeConfig, gas_estimation: Arc>, + gas_schedule_cache: Arc>, } impl std::fmt::Debug for Context { @@ -65,8 +66,13 @@ impl Context { mp_sender, node_config, gas_estimation: Arc::new(RwLock::new(GasEstimationCache { - last_updated_version: 0, - median_gas_price: MIN_GAS_PRICE, + last_updated_version: None, + min_gas_price: 0, + median_gas_price: 0, + })), + gas_schedule_cache: Arc::new(RwLock::new(GasScheduleCache { + last_updated_epoch: None, + gas_schedule_params: None, })), } } @@ -228,15 +234,22 @@ impl Context { .get_state_values_by_key_prefix(&StateKeyPrefix::from(address), version) } - pub fn get_account_state( + pub fn get_account_state( &self, address: AccountAddress, version: u64, - ) -> Result> { + latest_ledger_info: &LedgerInfo, + ) -> Result, E> { AccountState::from_access_paths_and_values( address, - &self.get_state_values(address, version)?, + &self.get_state_values(address, version).map_err(|err| { + E::internal_with_code(err, AptosErrorCode::InternalError, latest_ledger_info) + })?, ) + .context("Failed to read account state at requested version") + .map_err(|err| { + E::internal_with_code(err, AptosErrorCode::InternalError, latest_ledger_info) + }) } pub fn get_block_timestamp( @@ -327,17 +340,23 @@ impl Context { E::internal_with_code(err, AptosErrorCode::InternalError, latest_ledger_info) })?; let block_timestamp = new_block_event.proposed_time(); + + // We can only get the max_transactions page size + let max_txns = std::cmp::min( + self.node_config.api.max_transactions_page_size, + (last_version - first_version + 1) as u16, + ); let txns = if with_transactions { Some( - self.get_transactions( - first_version, - (last_version - first_version + 1) as u16, - ledger_version, - ) - .context("Failed to read raw transactions from storage") - .map_err(|err| { - E::internal_with_code(err, AptosErrorCode::InternalError, latest_ledger_info) - })?, + self.get_transactions(first_version, max_txns, ledger_version) + .context("Failed to read raw transactions from storage") + .map_err(|err| { + E::internal_with_code( + err, + AptosErrorCode::InternalError, + latest_ledger_info, + ) + })?, ) } else { None @@ -581,7 +600,9 @@ impl Context { { let gas_estimation = self.gas_estimation.read().unwrap(); - if gas_estimation.last_updated_version > oldest_search_version { + if gas_estimation.last_updated_version.is_some() + && gas_estimation.last_updated_version.unwrap() > oldest_search_version + { return Ok(gas_estimation.median_gas_price); } } @@ -591,7 +612,9 @@ impl Context { let mut gas_estimation = self.gas_estimation.write().unwrap(); // If this has been updated by a different thread, use that instead - if gas_estimation.last_updated_version > oldest_search_version { + if gas_estimation.last_updated_version.is_some() + && gas_estimation.last_updated_version.unwrap() > oldest_search_version + { return Ok(gas_estimation.median_gas_price); } let mut gas_prices: Vec = self @@ -607,8 +630,12 @@ impl Context { // When there's no gas prices in the last 100k transactions, we're going to set it to // the lowest gas price because the transaction should get through with any amount + gas_estimation.last_updated_version = Some(ledger_info.ledger_version.0); gas_estimation.median_gas_price = if gas_prices.is_empty() { - MIN_GAS_PRICE + // Pull the min gas price + let gas_schedule = self.get_gas_schedule(ledger_info)?; + gas_estimation.min_gas_price = gas_schedule.txn.min_price_per_gas_unit.into(); + gas_estimation.min_gas_price } else { gas_prices.sort(); let mid = gas_prices.len() / 2; @@ -619,6 +646,70 @@ impl Context { } } + pub fn get_gas_schedule( + &self, + ledger_info: &LedgerInfo, + ) -> Result { + // If it's the same epoch, used the cached results + { + let cache = self.gas_schedule_cache.read().unwrap(); + if let (Some(ref last_updated_epoch), Some(gas_params)) = + (cache.last_updated_epoch, &cache.gas_schedule_params) + { + if *last_updated_epoch == ledger_info.epoch.0 { + return Ok(gas_params.clone()); + } + } + } + + // Otherwise refresh the cache + { + let mut cache = self.gas_schedule_cache.write().unwrap(); + // If a different thread updated the cache, we can exit early + if let (Some(ref last_updated_epoch), Some(gas_params)) = + (cache.last_updated_epoch, &cache.gas_schedule_params) + { + if *last_updated_epoch == ledger_info.epoch.0 { + return Ok(gas_params.clone()); + } + } + + // Retrieve the gas schedule from storage and parse it accordingly + let state_view = self + .db + .state_view_at_version(Some(ledger_info.version())) + .map_err(|e| { + E::internal_with_code(e, AptosErrorCode::InternalError, ledger_info) + })?; + let storage_adapter = StorageAdapter::new(&state_view); + + let gas_schedule_params = + match GasScheduleV2::fetch_config(&storage_adapter).and_then(|gas_schedule| { + let gas_schedule = gas_schedule.to_btree_map(); + AptosGasParameters::from_on_chain_gas_schedule(&gas_schedule) + }) { + Some(gas_schedule) => Ok(gas_schedule), + None => GasSchedule::fetch_config(&storage_adapter) + .and_then(|gas_schedule| { + let gas_schedule = gas_schedule.to_btree_map(); + AptosGasParameters::from_on_chain_gas_schedule(&gas_schedule) + }) + .ok_or_else(|| { + E::internal_with_code( + "Failed to retrieve gas schedule", + AptosErrorCode::InternalError, + ledger_info, + ) + }), + }?; + + // Update the cache + cache.gas_schedule_params = Some(gas_schedule_params.clone()); + cache.last_updated_epoch = Some(ledger_info.epoch.0); + Ok(gas_schedule_params) + } + } + pub fn check_api_output_enabled( &self, api_name: &'static str, @@ -638,9 +729,23 @@ impl Context { } Ok(()) } + + pub fn last_updated_gas_schedule(&self) -> Option { + self.gas_schedule_cache.read().unwrap().last_updated_epoch + } + + pub fn last_updated_gas_estimation(&self) -> Option { + self.gas_estimation.read().unwrap().last_updated_version + } } pub struct GasEstimationCache { - last_updated_version: u64, + last_updated_version: Option, + min_gas_price: u64, median_gas_price: u64, } + +pub struct GasScheduleCache { + last_updated_epoch: Option, + gas_schedule_params: Option, +} diff --git a/api/src/events.rs b/api/src/events.rs index cd600f45babd0..7448bfba123d6 100644 --- a/api/src/events.rs +++ b/api/src/events.rs @@ -1,23 +1,25 @@ // Copyright (c) Aptos // SPDX-License-Identifier: Apache-2.0 -use std::sync::Arc; - use crate::accept_type::AcceptType; use crate::accounts::Account; use crate::context::Context; use crate::failpoint::fail_point_poem; use crate::page::Page; +use crate::response::BadRequestError; use crate::response::{ BasicErrorWith404, BasicResponse, BasicResponseStatus, BasicResultWith404, InternalError, }; use crate::ApiTags; use anyhow::Context as AnyhowContext; -use aptos_api_types::{Address, AptosErrorCode, IdentifierWrapper, LedgerInfo, MoveStructTag, U64}; -use aptos_api_types::{AsConverter, EventKey as EventKeyParam, VersionedEvent}; +use aptos_api_types::{ + verify_field_identifier, Address, AptosErrorCode, AsConverter, IdentifierWrapper, LedgerInfo, + MoveStructTag, VerifyInputWithRecursion, VersionedEvent, U64, +}; use aptos_types::event::EventKey; use poem_openapi::param::Query; use poem_openapi::{param::Path, OpenApi}; +use std::sync::Arc; pub struct EventsApi { pub context: Arc, @@ -25,55 +27,6 @@ pub struct EventsApi { #[OpenApi] impl EventsApi { - /// Get events by event key - /// - /// This endpoint allows you to get a list of events of a specific type - /// as identified by its event key, which is a globally unique ID. - #[oai( - path = "/events/:event_key", - method = "get", - operation_id = "get_events_by_event_key", - tag = "ApiTags::Events", - deprecated - )] - async fn get_events_by_event_key( - &self, - accept_type: AcceptType, - /// Event key to retrieve events by - event_key: Path, - /// Starting sequence number of events. - /// - /// If unspecified, by default will retrieve the most recent events - start: Query>, - /// Max number of events to retrieve. - /// - /// If unspecified, defaults to default page size - limit: Query>, - ) -> BasicResultWith404> { - fail_point_poem("endpoint_get_events_by_event_key")?; - self.context - .check_api_output_enabled("Get events by event key", &accept_type)?; - let page = Page::new( - start.0.map(|v| v.0), - limit.0, - self.context.max_events_page_size(), - ); - - // Ensure that account exists - let account = Account::new( - self.context.clone(), - event_key.0 .0.get_creator_address().into(), - None, - )?; - account.account_state()?; - self.list( - account.latest_ledger_info, - accept_type, - page, - event_key.0 .0, - ) - } - /// Get events by creation number /// /// Event types are globally identifiable by an account `address` and @@ -158,6 +111,18 @@ impl EventsApi { /// If unspecified, defaults to default page size limit: Query>, ) -> BasicResultWith404> { + event_handle + .0 + .verify(0) + .context("'event_handle' invalid") + .map_err(|err| { + BasicErrorWith404::bad_request_with_code_no_info(err, AptosErrorCode::InvalidInput) + })?; + verify_field_identifier(field_name.as_str()) + .context("'field_name' invalid") + .map_err(|err| { + BasicErrorWith404::bad_request_with_code_no_info(err, AptosErrorCode::InvalidInput) + })?; fail_point_poem("endpoint_get_events_by_event_handle")?; self.context .check_api_output_enabled("Get events by event handle", &accept_type)?; diff --git a/api/src/state.rs b/api/src/state.rs index 5eb7f2333bfcb..dff4c65efc100 100644 --- a/api/src/state.rs +++ b/api/src/state.rs @@ -13,8 +13,9 @@ use crate::{ }; use anyhow::Context as AnyhowContext; use aptos_api_types::{ - Address, AptosErrorCode, AsConverter, IdentifierWrapper, LedgerInfo, MoveModuleBytecode, - MoveResource, MoveStructTag, MoveValue, TableItemRequest, U64, + verify_module_identifier, Address, AptosErrorCode, AsConverter, IdentifierWrapper, LedgerInfo, + MoveModuleBytecode, MoveResource, MoveStructTag, MoveValue, TableItemRequest, VerifyInput, + VerifyInputWithRecursion, U64, }; use aptos_state_view::StateView; use aptos_types::{ @@ -63,6 +64,13 @@ impl StateApi { /// If not provided, it will be the latest version ledger_version: Query>, ) -> BasicResultWith404 { + resource_type + .0 + .verify(0) + .context("'resource_type' invalid") + .map_err(|err| { + BasicErrorWith404::bad_request_with_code_no_info(err, AptosErrorCode::InvalidInput) + })?; fail_point_poem("endpoint_get_account_resource")?; self.context .check_api_output_enabled("Get account resource", &accept_type)?; @@ -99,6 +107,11 @@ impl StateApi { /// If not provided, it will be the latest version ledger_version: Query>, ) -> BasicResultWith404 { + verify_module_identifier(module_name.0.as_str()) + .context("'module_name' invalid") + .map_err(|err| { + BasicErrorWith404::bad_request_with_code_no_info(err, AptosErrorCode::InvalidInput) + })?; fail_point_poem("endpoint_get_account_module")?; self.context .check_api_output_enabled("Get account module", &accept_type)?; @@ -135,6 +148,13 @@ impl StateApi { /// If not provided, it will be the latest version ledger_version: Query>, ) -> BasicResultWith404 { + table_item_request + .0 + .verify() + .context("'table_item_request' invalid") + .map_err(|err| { + BasicErrorWith404::bad_request_with_code_no_info(err, AptosErrorCode::InvalidInput) + })?; fail_point_poem("endpoint_get_table_item")?; self.context .check_api_output_enabled("Get table item", &accept_type)?; diff --git a/api/src/tests/transaction_vector_test.rs b/api/src/tests/transaction_vector_test.rs index 0ffc6a20eb90c..2f7c7649e19e0 100644 --- a/api/src/tests/transaction_vector_test.rs +++ b/api/src/tests/transaction_vector_test.rs @@ -210,7 +210,7 @@ fn sign_transaction(raw_txn: RawTransaction) -> serde_json::Value { let private_key = Ed25519PrivateKey::generate_for_testing(); let public_key = Ed25519PublicKey::from(&private_key); - let signature = private_key.sign(&raw_txn); + let signature = private_key.sign(&raw_txn).unwrap(); let txn = SignedTransaction::new(raw_txn.clone(), public_key, signature); let mut raw_txn_json_out = Vec::new(); diff --git a/api/src/tests/transactions_test.rs b/api/src/tests/transactions_test.rs index 40f0ae06f9919..011420184e46b 100644 --- a/api/src/tests/transactions_test.rs +++ b/api/src/tests/transactions_test.rs @@ -232,14 +232,20 @@ async fn test_post_transaction_rejected_by_mempool() { context.check_golden_output(resp); } -#[ignore] #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_multi_agent_signed_transaction() { let mut context = new_test_context(current_function_name!()); let account = context.gen_account(); + let secondary = context.gen_account(); let factory = context.transaction_factory(); let mut root_account = context.root_account(); - let secondary = context.root_account(); + + // Create secondary signer account + context + .commit_block(&[context.create_user_account_by(&mut root_account, &secondary)]) + .await; + + // Create a new account with a multi-agent signer let txn = root_account.sign_multi_agent_with_transaction_builder( vec![&secondary], factory.create_user_account(account.public_key()), @@ -315,7 +321,7 @@ async fn test_multi_ed25519_signed_transaction() { .expiration_timestamp_secs(u64::MAX) // set timestamp to max to ensure static raw transaction .build(); - let signature = private_key.sign(&raw_txn); + let signature = private_key.sign(&raw_txn).unwrap(); let txn = SignedTransaction::new_multisig(raw_txn, public_key, signature.clone()); let body = bcs::to_bytes(&txn).unwrap(); @@ -524,7 +530,12 @@ async fn test_signing_message_with_payload( signing_msg.to_string(), format!( "0x{}", - hex::encode(&txn.clone().into_raw_transaction().signing_message()) + hex::encode( + &txn.clone() + .into_raw_transaction() + .signing_message() + .unwrap() + ) ) ); @@ -798,7 +809,53 @@ async fn test_get_txn_execute_failed_by_entry_function_validation() { .await } -#[ignore] // re-enable after cleaning after compiled code +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn test_get_txn_execute_failed_by_entry_function_invalid_module_name() { + let mut context = new_test_context(current_function_name!()); + let account = context.gen_account(); + context + .commit_block(&vec![context.create_user_account(&account)]) + .await; + + test_submit_entry_function_api_validation( + context, + account, + "0x1", + "coin", + "transfer::what::what", + vec![APTOS_COIN_TYPE.clone()], + vec![ + bcs::to_bytes(&AccountAddress::from_hex_literal("0xdd").unwrap()).unwrap(), + bcs::to_bytes(&123u64).unwrap(), // exceed limit, account balance is 0. + ], + ) + .await; +} + +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn test_get_txn_execute_failed_by_entry_function_invalid_function_name() { + let mut context = new_test_context(current_function_name!()); + let account = context.gen_account(); + context + .commit_block(&vec![context.create_user_account(&account)]) + .await; + + test_submit_entry_function_api_validation( + context, + account, + "0x1", + "coin::coin", + "transfer", + vec![APTOS_COIN_TYPE.clone()], + vec![ + bcs::to_bytes(&AccountAddress::from_hex_literal("0xdd").unwrap()).unwrap(), + bcs::to_bytes(&123u64).unwrap(), // exceed limit, account balance is 0. + ], + ) + .await; +} + +#[ignore] // Re-enable when change is moved to new publish flow #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_get_txn_execute_failed_by_entry_function_execution_failure() { let mut context = new_test_context(current_function_name!()); @@ -832,7 +889,7 @@ async fn test_get_txn_execute_failed_by_entry_function_execution_failure() { .await } -#[ignore] +#[ignore] // re-enable after cleaning compiled code #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_get_txn_execute_failed_by_script_execution_failure() { let context = new_test_context(current_function_name!()); @@ -855,6 +912,50 @@ async fn test_get_txn_execute_failed_by_script_execution_failure() { test_transaction_vm_status(context, txn, false).await } +async fn test_submit_entry_function_api_validation( + mut context: TestContext, + mut account: LocalAccount, + address: &str, + module_id: &str, + func: &str, + ty_args: Vec, + args: Vec>, +) { + // This is a way to get around the Identifier checks! + #[derive(serde::Serialize)] + struct HackStruct(pub Box); + + // Identifiers check when you call new, but they don't check when you deserialize, surprise! + let module_id: Identifier = + serde_json::from_str(&serde_json::to_string(&HackStruct(module_id.into())).unwrap()) + .unwrap(); + let func: Identifier = + serde_json::from_str(&serde_json::to_string(&HackStruct(func.into())).unwrap()).unwrap(); + + let txn = account.sign_with_transaction_builder( + context + .transaction_factory() + .entry_function(EntryFunction::new( + ModuleId::new( + AccountAddress::from_hex_literal(address).unwrap(), + module_id, + ), + func, + ty_args, + args, + )) + .expiration_timestamp_secs(u64::MAX), + ); + + let body = bcs::to_bytes(&txn).unwrap(); + // we don't validate transaction payload when submit txn into mempool. + let resp = context + .expect_status_code(400) + .post_bcs_txn("/transactions", body) + .await; + context.check_golden_output(resp); +} + async fn test_get_txn_execute_failed_by_invalid_entry_function( context: TestContext, mut account: LocalAccount, @@ -912,7 +1013,6 @@ async fn test_transaction_vm_status( context.check_golden_output(resp); } -#[ignore] #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_submit_transaction_rejects_payload_too_large_bcs_txn_body() { let mut context = new_test_context(current_function_name!()); @@ -927,7 +1027,6 @@ async fn test_submit_transaction_rejects_payload_too_large_bcs_txn_body() { context.check_golden_output(resp); } -#[ignore] #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn test_submit_transaction_rejects_payload_too_large_json_body() { let mut context = new_test_context(current_function_name!()); @@ -970,9 +1069,6 @@ async fn test_submit_transaction_rejects_invalid_json() { context.check_golden_output(resp); } -// TODO: Sometimes this fails because it returns a 404 instead, but only -// when run with all the other tests, never on its own. Strange. -#[ignore] #[tokio::test(flavor = "multi_thread", worker_threads = 2)] async fn test_create_signing_message_rejects_payload_too_large_json_body() { let mut context = new_test_context(current_function_name!()); @@ -1027,6 +1123,15 @@ async fn test_create_signing_message_rejects_no_content_length_request() { context.check_golden_output(resp); } +#[tokio::test(flavor = "multi_thread", worker_threads = 2)] +async fn test_gas_estimation() { + let mut context = new_test_context(current_function_name!()); + let resp = context.get("/estimate_gas_price").await; + assert!(context.last_updated_gas_schedule().is_some()); + assert!(context.last_updated_gas_estimation().is_some()); + context.check_golden_output(resp); +} + fn gen_string(len: u64) -> String { let mut rng = thread_rng(); std::iter::repeat(()) diff --git a/api/src/transactions.rs b/api/src/transactions.rs index 18ab54f9793c2..aa900a189af8c 100644 --- a/api/src/transactions.rs +++ b/api/src/transactions.rs @@ -17,7 +17,11 @@ use crate::response::{ }; use crate::ApiTags; use crate::{generate_error_response, generate_success_response}; -use anyhow::Context as AnyhowContext; +use anyhow::{anyhow, Context as AnyhowContext}; +use aptos_api_types::{ + verify_function_identifier, verify_module_identifier, MoveType, VerifyInput, + VerifyInputWithRecursion, +}; use aptos_api_types::{ Address, AptosError, AptosErrorCode, AsConverter, EncodeSubmissionRequest, GasEstimation, HashValue, HexEncodedBytes, LedgerInfo, PendingTransaction, SubmitTransactionRequest, @@ -26,9 +30,12 @@ use aptos_api_types::{ }; use aptos_crypto::hash::CryptoHash; use aptos_crypto::signing_message; +use aptos_types::account_config::CoinStoreResource; +use aptos_types::account_view::AccountView; use aptos_types::mempool_status::MempoolStatusCode; use aptos_types::transaction::{ - ExecutionStatus, RawTransaction, RawTransactionWithData, SignedTransaction, TransactionStatus, + ExecutionStatus, RawTransaction, RawTransactionWithData, SignedTransaction, TransactionPayload, + TransactionStatus, }; use aptos_types::vm_status::StatusCode; use aptos_vm::AptosVM; @@ -81,6 +88,15 @@ pub enum SubmitTransactionPost { Bcs(Bcs), } +impl VerifyInput for SubmitTransactionPost { + fn verify(&self) -> anyhow::Result<()> { + match self { + SubmitTransactionPost::Json(inner) => inner.0.verify(), + SubmitTransactionPost::Bcs(_) => Ok(()), + } + } +} + // We need a custom type here because we use different types for each of the // content types possible for the POST data. #[derive(ApiRequest, Debug)] @@ -95,6 +111,20 @@ pub enum SubmitTransactionsBatchPost { Bcs(Bcs), } +impl VerifyInput for SubmitTransactionsBatchPost { + fn verify(&self) -> anyhow::Result<()> { + match self { + SubmitTransactionsBatchPost::Json(inner) => { + for request in inner.0.iter() { + request.verify()?; + } + } + SubmitTransactionsBatchPost::Bcs(_) => {} + } + Ok(()) + } +} + /// API for interacting with transactions pub struct TransactionsApi { pub context: Arc, @@ -261,6 +291,14 @@ impl TransactionsApi { accept_type: AcceptType, data: SubmitTransactionPost, ) -> SubmitTransactionResult { + data.verify() + .context("Submitted transaction invalid'") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code_no_info( + err, + AptosErrorCode::InvalidInput, + ) + })?; fail_point_poem("endpoint_submit_transaction")?; self.context .check_api_output_enabled("Submit transaction", &accept_type)?; @@ -306,6 +344,14 @@ impl TransactionsApi { accept_type: AcceptType, data: SubmitTransactionsBatchPost, ) -> SubmitTransactionsBatchResult { + data.verify() + .context("Submitted transactions invalid") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code_no_info( + err, + AptosErrorCode::InvalidInput, + ) + })?; fail_point_poem("endpoint_submit_batch_transactions")?; self.context .check_api_output_enabled("Submit batch transactions", &accept_type)?; @@ -351,8 +397,22 @@ impl TransactionsApi { async fn simulate_transaction( &self, accept_type: AcceptType, + /// If set to true, the max gas value in the transaction will be ignored + /// and the maximum possible gas will be used + estimate_max_gas_amount: Query>, + /// If set to true, the gas unit price in the transaction will be ignored + /// and the estimated value will be used + estimate_gas_unit_price: Query>, data: SubmitTransactionPost, ) -> SimulateTransactionResult> { + data.verify() + .context("Simulated transaction invalid") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code_no_info( + err, + AptosErrorCode::InvalidInput, + ) + })?; fail_point_poem("endpoint_simulate_transaction")?; self.context .check_api_output_enabled("Simulate transaction", &accept_type)?; @@ -360,7 +420,81 @@ impl TransactionsApi { return Err(api_disabled("Simulate transaction")); } let ledger_info = self.context.get_latest_ledger_info()?; - let signed_transaction = self.get_signed_transaction(&ledger_info, data)?; + let mut signed_transaction = self.get_signed_transaction(&ledger_info, data)?; + + let estimated_gas_unit_price = if estimate_gas_unit_price.0.unwrap_or_default() { + Some(self.context.estimate_gas_price(&ledger_info)?) + } else { + None + }; + + // If estimate max gas amount is provided, we will just make it the maximum value + let estimated_max_gas_amount = if estimate_max_gas_amount.0.unwrap_or_default() { + // Retrieve max possible gas units + let gas_params = self.context.get_gas_schedule(&ledger_info)?; + let max_number_of_gas_units = u64::from(gas_params.txn.maximum_number_of_gas_units); + + // Retrieve account balance to determine max gas available + let account_state = self + .context + .get_account_state( + signed_transaction.sender(), + ledger_info.version(), + &ledger_info, + )? + .ok_or_else(|| { + SubmitTransactionError::bad_request_with_code( + "Account not found", + AptosErrorCode::InvalidInput, + &ledger_info, + ) + })?; + let coin_store: CoinStoreResource = account_state + .get_coin_store_resource() + .and_then(|inner| { + inner.ok_or_else(|| { + anyhow!( + "No coin store found for account {}", + signed_transaction.sender() + ) + }) + }) + .map_err(|err| { + SubmitTransactionError::internal_with_code( + format!("Failed to get coin store resource {}", err), + AptosErrorCode::InternalError, + &ledger_info, + ) + })?; + + let gas_unit_price = + estimated_gas_unit_price.unwrap_or_else(|| signed_transaction.gas_unit_price()); + + // With 0 gas price, we set it to max gas units, since we can't divide by 0 + let max_account_gas_units = if gas_unit_price == 0 { + coin_store.coin() + } else { + coin_store.coin() / gas_unit_price + }; + + // Minimum of the max account and the max total needs to be used for estimation + Some(std::cmp::min( + max_account_gas_units, + max_number_of_gas_units, + )) + } else { + None + }; + + // If there is an estimation of either, replace the values + if estimated_max_gas_amount.is_some() || estimated_gas_unit_price.is_some() { + signed_transaction = override_gas_parameters( + &signed_transaction, + estimated_max_gas_amount, + estimated_gas_unit_price, + ); + } + self.simulate(&accept_type, ledger_info, signed_transaction) .await } @@ -397,6 +531,12 @@ impl TransactionsApi { data: Json, // TODO: Use a new request type that can't return 507 but still returns all the other necessary errors. ) -> BasicResult { + data.0 + .verify() + .context("'UserTransactionRequest' invalid") + .map_err(|err| { + BasicError::bad_request_with_code_no_info(err, AptosErrorCode::InvalidInput) + })?; fail_point_poem("endpoint_encode_submission")?; self.context .check_api_output_enabled("Encode submission", &accept_type)?; @@ -666,7 +806,7 @@ impl TransactionsApi { ) -> Result { match data { SubmitTransactionPost::Bcs(data) => { - let signed_transaction = bcs::from_bytes(&data.0) + let signed_transaction: SignedTransaction = bcs::from_bytes(&data.0) .context("Failed to deserialize input into SignedTransaction") .map_err(|err| { SubmitTransactionError::bad_request_with_code( @@ -675,6 +815,67 @@ impl TransactionsApi { ledger_info, ) })?; + // Verify the signed transaction + match signed_transaction.payload() { + TransactionPayload::EntryFunction(entry_function) => { + verify_module_identifier(entry_function.module().name().as_str()) + .context("Transaction entry function module invalid") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code( + err, + AptosErrorCode::InvalidInput, + ledger_info, + ) + })?; + + verify_function_identifier(entry_function.function().as_str()) + .context("Transaction entry function name invalid") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code( + err, + AptosErrorCode::InvalidInput, + ledger_info, + ) + })?; + for arg in entry_function.ty_args() { + let arg: MoveType = arg.into(); + arg.verify(0) + .context("Transaction entry function type arg invalid") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code( + err, + AptosErrorCode::InvalidInput, + ledger_info, + ) + })?; + } + } + TransactionPayload::Script(script) => { + if script.code().is_empty() { + return Err(SubmitTransactionError::bad_request_with_code( + "Script payload bytecode must not be empty", + AptosErrorCode::InvalidInput, + ledger_info, + )); + } + + for arg in script.ty_args() { + let arg = MoveType::from(arg); + arg.verify(0) + .context("Transaction script function type arg invalid") + .map_err(|err| { + SubmitTransactionError::bad_request_with_code( + err, + AptosErrorCode::InvalidInput, + ledger_info, + ) + })?; + } + } + TransactionPayload::ModuleBundle(_) => {} + } + // TODO: Verify script args? + Ok(signed_transaction) } SubmitTransactionPost::Json(data) => self @@ -916,7 +1117,7 @@ impl TransactionsApi { // Simulate transaction let move_resolver = self.context.move_resolver_poem(&ledger_info)?; - let (status, output_ext) = AptosVM::simulate_signed_transaction(&txn, &move_resolver); + let (_, output_ext) = AptosVM::simulate_signed_transaction(&txn, &move_resolver); let version = ledger_info.version(); // Apply transaction outputs to build up a transaction @@ -926,7 +1127,7 @@ impl TransactionsApi { let output = output_ext.into_transaction_output(&move_resolver); // Ensure that all known statuses return their values in the output (even if they aren't supposed to) - let exe_status = match status.into() { + let exe_status = match output.status().clone() { TransactionStatus::Keep(exec_status) => exec_status, TransactionStatus::Discard(status) => ExecutionStatus::MiscellaneousError(Some(status)), _ => ExecutionStatus::MiscellaneousError(None), @@ -1011,16 +1212,29 @@ impl TransactionsApi { })?; let raw_message = match request.secondary_signers { - Some(secondary_signer_addresses) => { - signing_message(&RawTransactionWithData::new_multi_agent( + Some(secondary_signer_addresses) => signing_message( + &RawTransactionWithData::new_multi_agent( raw_txn, secondary_signer_addresses .into_iter() .map(|v| v.into()) .collect(), - )) - } - None => raw_txn.signing_message(), + ), + ) + .context("Invalid transaction to generate signing message") + .map_err(|err| { + BasicError::bad_request_with_code(err, AptosErrorCode::InvalidInput, &ledger_info) + })?, + None => raw_txn + .signing_message() + .context("Invalid transaction to generate signing message") + .map_err(|err| { + BasicError::bad_request_with_code( + err, + AptosErrorCode::InvalidInput, + &ledger_info, + ) + })?, }; BasicResponse::try_from_json(( @@ -1030,3 +1244,24 @@ impl TransactionsApi { )) } } + +fn override_gas_parameters( + signed_txn: &SignedTransaction, + max_gas_amount: Option, + gas_unit_price: Option, +) -> SignedTransaction { + let payload = signed_txn.payload(); + + let raw_txn = RawTransaction::new( + signed_txn.sender(), + signed_txn.sequence_number(), + payload.clone(), + max_gas_amount.unwrap_or_else(|| signed_txn.max_gas_amount()), + gas_unit_price.unwrap_or_else(|| signed_txn.gas_unit_price()), + signed_txn.expiration_timestamp_secs(), + signed_txn.chain_id(), + ); + + // TODO: Check that signature is null, this would just be helpful for downstream use + SignedTransaction::new_with_authenticator(raw_txn, signed_txn.authenticator()) +} diff --git a/api/test-context/src/test_context.rs b/api/test-context/src/test_context.rs index 67ed8d41fa94b..68bc21258b5b7 100644 --- a/api/test-context/src/test_context.rs +++ b/api/test-context/src/test_context.rs @@ -8,8 +8,8 @@ use aptos_api_types::{ X_APTOS_LEDGER_TIMESTAMP, X_APTOS_LEDGER_VERSION, }; use aptos_config::config::{ - NodeConfig, RocksdbConfigs, DEFAULT_MAX_NUM_NODES_PER_LRU_CACHE_SHARD, - NO_OP_STORAGE_PRUNER_CONFIG, TARGET_SNAPSHOT_SIZE, + NodeConfig, RocksdbConfigs, BUFFERED_STATE_TARGET_ITEMS, + DEFAULT_MAX_NUM_NODES_PER_LRU_CACHE_SHARD, NO_OP_STORAGE_PRUNER_CONFIG, }; use aptos_crypto::{hash::HashValue, SigningKey}; use aptos_mempool::mocks::MockSharedMempool; @@ -113,7 +113,7 @@ pub fn new_test_context(test_name: String, use_db_with_indexer: bool) -> TestCon NO_OP_STORAGE_PRUNER_CONFIG, /* pruner */ RocksdbConfigs::default(), false, /* indexer */ - TARGET_SNAPSHOT_SIZE, + BUFFERED_STATE_TARGET_ITEMS, DEFAULT_MAX_NUM_NODES_PER_LRU_CACHE_SHARD, ) .unwrap(), @@ -213,6 +213,14 @@ impl TestContext { self.golden_output.as_ref().unwrap().log(&msg); } + pub fn last_updated_gas_schedule(&self) -> Option { + self.context.last_updated_gas_schedule() + } + + pub fn last_updated_gas_estimation(&self) -> Option { + self.context.last_updated_gas_estimation() + } + /// Prune well-known excessively large entries from a resource array response. /// TODO: we can't dump all resources of an account as golden output. As functionality /// grows this becomes too much. Need a way to filter only the resources which folks want. @@ -248,17 +256,27 @@ impl TestContext { // Resource may appear in many different places, so make a convenient stripper fn resource_replacer(val: &Value) -> Value { let mut nval = val.clone(); - nval["data"] = match val["type"].as_str().unwrap() { - "0x1::code::PackageRegistry" => Value::String("package registry omitted".to_string()), + + // Skip things that change, plus bytecode and others that don't have a type + nval["data"] = match val["type"].as_str() { + Some("0x1::code::PackageRegistry") => { + Value::String("package registry omitted".to_string()) + } // Ideally this wouldn't be stripped, but it changes by minor changes to the // Move modules, which leads to a bad devx. - "0x1::state_storage::StateStorageUsage" => { + Some("0x1::state_storage::StateStorageUsage") => { Value::String("state storage omitted".to_string()) } - "0x1::state_storage::GasParameter" => { + Some("0x1::state_storage::GasParameter") => { Value::String("state storage gas parameter omitted".to_string()) } - _ => val["data"].clone(), + _ => { + if val["bytecode"].as_str().is_some() { + Value::String("bytecode omitted".to_string()) + } else { + val["data"].clone() + } + } }; nval } diff --git a/api/types/src/convert.rs b/api/types/src/convert.rs index a522a6d341d58..c73a1d59523cf 100644 --- a/api/types/src/convert.rs +++ b/api/types/src/convert.rs @@ -150,6 +150,7 @@ impl<'a, R: MoveResolverExt + ?Sized> MoveConverter<'a, R> { .into_iter() .filter_map(|(sk, wo)| self.try_into_write_set_change(sk, wo).ok()) .collect(), + block_height: None, } } @@ -678,15 +679,62 @@ impl<'a, R: MoveResolverExt + ?Sized> MoveConverter<'a, R> { )) } + pub fn try_into_move_value(&self, typ: &TypeTag, bytes: &[u8]) -> Result { + self.inner.view_value(typ, bytes)?.try_into() + } +} + +impl<'a, R: MoveResolverExt + ?Sized> ExplainVMStatus for MoveConverter<'a, R> { + fn get_module_bytecode(&self, module_id: &ModuleId) -> Result> { + self.inner + .get_module(module_id) + .map(|inner| inner as Rc) + } +} +pub trait AsConverter { + fn as_converter(&self, db: Arc) -> MoveConverter; +} + +impl AsConverter for R { + fn as_converter(&self, db: Arc) -> MoveConverter { + MoveConverter::new(self, db) + } +} + +pub fn new_vm_utf8_string(string: &str) -> move_core_types::value::MoveValue { + use move_deps::move_core_types::value::{MoveStruct, MoveValue}; + + let byte_vector = MoveValue::Vector( + string + .as_bytes() + .iter() + .map(|byte| MoveValue::U8(*byte)) + .collect(), + ); + let move_string = MoveStruct::Runtime(vec![byte_vector]); + MoveValue::Struct(move_string) +} + +fn abort_location_to_str(loc: &AbortLocation) -> String { + match loc { + AbortLocation::Module(mid) => { + format!("{}::{}", mid.address().to_hex_literal(), mid.name()) + } + _ => loc.to_string(), + } +} + +pub trait ExplainVMStatus { + fn get_module_bytecode(&self, module_id: &ModuleId) -> Result>; + fn explain_vm_status(&self, status: &ExecutionStatus) -> String { match status { ExecutionStatus::MoveAbort { location, code, info } => match &location { AbortLocation::Module(_) => { - info.as_ref().map(|i| { - format!("Move abort in {}: {}({:#x}): {}", Self::abort_location_to_str(location), i.reason_name, code, i.description) + format!("Move abort in {}: {}({:#x}): {}", abort_location_to_str(location), i.reason_name, code, i.description) }).unwrap_or_else(|| { - format!("Move abort in {}: {:#x}", Self::abort_location_to_str(location), code) + format!("Move abort in {}: {:#x}", abort_location_to_str(location), code) }) } AbortLocation::Script => format!("Move abort: code {:#x}", code), @@ -699,10 +747,9 @@ impl<'a, R: MoveResolverExt + ?Sized> MoveConverter<'a, R> { code_offset, } => { let func_name = match location { - AbortLocation::Module(module_id) => self - .explain_function_index(module_id, function) - .map(|name| format!("{}::{}", Self::abort_location_to_str(location), name)) - .unwrap_or_else(|_| format!("{}::<#{} function>", Self::abort_location_to_str(location), function)), + AbortLocation::Module(module_id) => self.explain_function_index(module_id, function) + .map(|name| format!("{}::{}", abort_location_to_str(location), name)) + .unwrap_or_else(|_| format!("{}::<#{} function>", abort_location_to_str(location), function)), AbortLocation::Script => "script".to_owned(), }; format!( @@ -721,47 +768,12 @@ impl<'a, R: MoveResolverExt + ?Sized> MoveConverter<'a, R> { } } - fn abort_location_to_str(loc: &AbortLocation) -> String { - match loc { - AbortLocation::Module(mid) => { - format!("{}::{}", mid.address().to_hex_literal(), mid.name()) - } - _ => loc.to_string(), - } - } - - pub fn try_into_move_value(&self, typ: &TypeTag, bytes: &[u8]) -> Result { - self.inner.view_value(typ, bytes)?.try_into() - } - fn explain_function_index(&self, module_id: &ModuleId, function: &u16) -> Result { - let code = self.inner.get_module(&module_id.clone())? as Rc; + let code = self.get_module_bytecode(module_id)?; let func = code.function_handle_at(FunctionHandleIndex::new(*function)); let id = code.identifier_at(func.name); - Ok(format!("{}", id)) - } -} - -pub trait AsConverter { - fn as_converter(&self, db: Arc) -> MoveConverter; -} - -impl AsConverter for R { - fn as_converter(&self, db: Arc) -> MoveConverter { - MoveConverter::new(self, db) + Ok(id.to_string()) } } -pub fn new_vm_utf8_string(string: &str) -> move_core_types::value::MoveValue { - use move_deps::move_core_types::value::{MoveStruct, MoveValue}; - - let byte_vector = MoveValue::Vector( - string - .as_bytes() - .iter() - .map(|byte| MoveValue::U8(*byte)) - .collect(), - ); - let move_string = MoveStruct::Runtime(vec![byte_vector]); - MoveValue::Struct(move_string) -} +// TODO: add caching? diff --git a/api/types/src/error.rs b/api/types/src/error.rs index 7df37915321be..4db1fce1a9147 100644 --- a/api/types/src/error.rs +++ b/api/types/src/error.rs @@ -19,7 +19,7 @@ pub struct AptosError { impl std::fmt::Display for AptosError { fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result { - write!(f, "Error({:?}): {}", self.error_code, self.message) + write!(f, "Error({:?}): {:#}", self.error_code, self.message) } } @@ -31,7 +31,7 @@ impl AptosError { error_code: AptosErrorCode, ) -> AptosError { Self { - message: error.to_string(), + message: format!("{:#}", error), error_code, vm_error_code: None, } @@ -43,7 +43,7 @@ impl AptosError { vm_error_code: StatusCode, ) -> AptosError { Self { - message: error.to_string(), + message: format!("{:#}", error), error_code, vm_error_code: Some(vm_error_code as u64), } diff --git a/api/types/src/event_key.rs b/api/types/src/event_key.rs deleted file mode 100644 index 3bb81591849e9..0000000000000 --- a/api/types/src/event_key.rs +++ /dev/null @@ -1,115 +0,0 @@ -// Copyright (c) Aptos -// SPDX-License-Identifier: Apache-2.0 - -use aptos_openapi::{impl_poem_parameter, impl_poem_type}; -use indoc::indoc; -use serde::{de::Error as _, Deserialize, Deserializer, Serialize, Serializer}; -use std::{fmt, str::FromStr}; - -/// DEPRECATED, to be removed soon. See API changelog. -/// -/// Event key is a global index for an event stream. -/// -/// It is hex-encoded BCS bytes of `EventHandle` `guid` field value, which is -/// a combination of a `uint64` creation number and account address (without -/// trimming leading zeros). -/// -/// For example, event key `0x010000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1` is combined by the following 2 parts: -/// 1. `0100000000000000`: little endian `uint64` representation of `1`. -/// 2. `88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1`: 32 bytes of account address. -#[derive(Clone, Debug, PartialEq, Eq, Copy)] -pub struct EventKey(pub aptos_types::event::EventKey); - -impl From for EventKey { - fn from(val: aptos_types::event::EventKey) -> Self { - Self(val) - } -} - -impl From for aptos_types::event::EventKey { - fn from(val: EventKey) -> Self { - val.0 - } -} - -impl FromStr for EventKey { - type Err = anyhow::Error; - - fn from_str(s: &str) -> anyhow::Result { - let value = s.strip_prefix("0x").unwrap_or(s); - let inner_event: aptos_types::event::EventKey = bcs::from_bytes(&hex::decode(value)?)?; - Ok(inner_event.into()) - } -} - -impl Serialize for EventKey { - fn serialize(&self, serializer: S) -> Result { - self.to_string().serialize(serializer) - } -} - -impl<'de> Deserialize<'de> for EventKey { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let hash = ::deserialize(deserializer)?; - hash.parse().map_err(D::Error::custom) - } -} - -impl fmt::Display for EventKey { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "{:#x}", self.0) - } -} - -#[cfg(test)] -mod tests { - use crate::event_key::EventKey; - - use serde_json::{json, Value}; - - #[test] - fn test_from_and_to_string() { - let hash = - "0x0000000000000000000000000000000000000000000000000000000000000000000000000a550c18"; - assert_eq!(hash.parse::().unwrap().to_string(), hash); - } - - #[test] - fn test_from_and_to_json() { - let hex = - "0x0000000000000000000000000000000000000000000000000000000000000000000000000a550c18"; - let hash: EventKey = serde_json::from_value(json!(hex)).unwrap(); - assert_eq!(hash, hex.parse().unwrap()); - - let val: Value = serde_json::to_value(hash).unwrap(); - assert_eq!(val, json!(hex)); - } -} - -impl_poem_type!( - EventKey, - "string", - ( - example = Some(serde_json::Value::String( - "0x000000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1 " - .to_string() - )), - format = Some("hex"), - description = Some(indoc! {" - Event key is a global index for an event stream. - - It is hex-encoded BCS bytes of `EventHandle` `guid` field value, which is - a combination of a `uint64` creation number and account address (without - trimming leading zeros). - - For example, event key `0x000000000000000088fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1` is combined by the following 2 parts: - 1. `0000000000000000`: `uint64` representation of `0`. - 2. `88fbd33f54e1126269769780feb24480428179f552e2313fbe571b72e62a1ca1`: 32 bytes of account address. - "}) - ) -); - -impl_poem_parameter!(EventKey); diff --git a/api/types/src/lib.rs b/api/types/src/lib.rs index 0160357fa2f61..2711760c45a97 100644 --- a/api/types/src/lib.rs +++ b/api/types/src/lib.rs @@ -8,7 +8,6 @@ mod bytecode; mod convert; mod derives; mod error; -mod event_key; mod hash; mod headers; mod index; @@ -23,15 +22,15 @@ pub use account::AccountData; pub use address::Address; pub use block::{BcsBlock, Block}; pub use bytecode::Bytecode; -pub use convert::{new_vm_utf8_string, AsConverter, MoveConverter}; +pub use convert::{new_vm_utf8_string, AsConverter, ExplainVMStatus, MoveConverter}; pub use error::{AptosError, AptosErrorCode}; -pub use event_key::EventKey; pub use hash::HashValue; pub use headers::*; pub use index::IndexResponse; pub use ledger_info::LedgerInfo; pub use move_types::{ - EntryFunctionId, HexEncodedBytes, MoveAbility, MoveFunction, MoveFunctionGenericTypeParam, + verify_field_identifier, verify_function_identifier, verify_module_identifier, EntryFunctionId, + HexEncodedBytes, MoveAbility, MoveFunction, MoveFunctionGenericTypeParam, MoveFunctionVisibility, MoveModule, MoveModuleBytecode, MoveModuleId, MoveResource, MoveScriptBytecode, MoveStruct, MoveStructField, MoveStructTag, MoveType, MoveValue, U128, U64, }; @@ -41,13 +40,13 @@ pub use table::TableItemRequest; pub use transaction::{ AccountSignature, BlockMetadataTransaction, DeleteModule, DeleteResource, DeleteTableItem, DirectWriteSet, Ed25519Signature, EncodeSubmissionRequest, EntryFunctionPayload, Event, - GasEstimation, GenesisPayload, GenesisTransaction, ModuleBundlePayload, MultiEd25519Signature, - PendingTransaction, ScriptPayload, ScriptWriteSet, SubmitTransactionRequest, Transaction, - TransactionData, TransactionId, TransactionInfo, TransactionOnChainData, TransactionPayload, - TransactionSignature, TransactionSigningMessage, TransactionsBatchSingleSubmissionFailure, - TransactionsBatchSubmissionResult, UserCreateSigningMessageRequest, UserTransaction, - UserTransactionRequest, VersionedEvent, WriteModule, WriteResource, WriteSet, WriteSetChange, - WriteSetPayload, WriteTableItem, + GasEstimation, GenesisPayload, GenesisTransaction, ModuleBundlePayload, MultiAgentSignature, + MultiEd25519Signature, PendingTransaction, ScriptPayload, ScriptWriteSet, + SubmitTransactionRequest, Transaction, TransactionData, TransactionId, TransactionInfo, + TransactionOnChainData, TransactionPayload, TransactionSignature, TransactionSigningMessage, + TransactionsBatchSingleSubmissionFailure, TransactionsBatchSubmissionResult, + UserCreateSigningMessageRequest, UserTransaction, UserTransactionRequest, VersionedEvent, + WriteModule, WriteResource, WriteSet, WriteSetChange, WriteSetPayload, WriteTableItem, }; pub use wrappers::{EventGuid, IdentifierWrapper}; @@ -62,3 +61,13 @@ where let s = ::deserialize(deserializer)?; s.parse::().map_err(D::Error::custom) } + +/// For verifying a given struct +pub trait VerifyInput { + fn verify(&self) -> anyhow::Result<()>; +} + +/// For verifying a given struct that needs to limit recursion +pub trait VerifyInputWithRecursion { + fn verify(&self, recursion_count: u8) -> anyhow::Result<()>; +} diff --git a/api/types/src/move_types.rs b/api/types/src/move_types.rs index 375a3dcf149cd..d0e2eb46a348c 100644 --- a/api/types/src/move_types.rs +++ b/api/types/src/move_types.rs @@ -1,7 +1,7 @@ // Copyright (c) Aptos // SPDX-License-Identifier: Apache-2.0 -use crate::{Address, Bytecode, IdentifierWrapper}; +use crate::{Address, Bytecode, IdentifierWrapper, VerifyInput, VerifyInputWithRecursion}; use anyhow::{bail, format_err}; use aptos_types::{account_config::CORE_CODE_ADDRESS, event::EventKey, transaction::Module}; use move_deps::{ @@ -22,8 +22,10 @@ use move_deps::{ move_resource_viewer::{AnnotatedMoveStruct, AnnotatedMoveValue}, }; +use poem_openapi::types::Type; use poem_openapi::{Enum, Object, Union}; use serde::{de::Error as _, Deserialize, Deserializer, Serialize, Serializer}; +use std::fmt::Display; use std::{ collections::BTreeMap, convert::{From, Into, TryFrom, TryInto}, @@ -382,6 +384,33 @@ pub struct MoveStructTag { pub generic_type_params: Vec, } +impl VerifyInputWithRecursion for MoveStructTag { + fn verify(&self, recursion_count: u8) -> anyhow::Result<()> { + if recursion_count > MAX_RECURSIVE_TYPES_ALLOWED { + bail!( + "Move struct tag {} has gone over the limit of recursive types {}", + self, + MAX_RECURSIVE_TYPES_ALLOWED + ); + } + verify_module_identifier(self.module.as_str()) + .map_err(|_| anyhow::anyhow!("invalid struct tag: {}", self))?; + verify_identifier(self.name.as_str()) + .map_err(|_| anyhow::anyhow!("invalid struct tag: {}", self))?; + for param in self.generic_type_params.iter() { + param.verify(recursion_count + 1).map_err(|err| { + anyhow::anyhow!( + "Invalid struct tag for generic type params: {} {}", + self, + err + ) + })?; + } + + Ok(()) + } +} + impl MoveStructTag { pub fn new( address: Address, @@ -417,6 +446,17 @@ impl From for MoveStructTag { } } +impl From<&StructTag> for MoveStructTag { + fn from(tag: &StructTag) -> Self { + Self { + address: tag.address.into(), + module: IdentifierWrapper::from(&tag.module), + name: IdentifierWrapper::from(&tag.name), + generic_type_params: tag.type_params.iter().map(MoveType::from).collect(), + } + } +} + impl fmt::Display for MoveStructTag { fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { write!(f, "{}::{}::{}", self.address, self.module, self.name)?; @@ -494,6 +534,32 @@ pub enum MoveType { Unparsable(String), } +/// Maximum number of recursive types +/// Currently, this is allowed up to the serde limit of 128 +/// +/// TODO: Should this number be re-evaluated +const MAX_RECURSIVE_TYPES_ALLOWED: u8 = 128; + +impl VerifyInputWithRecursion for MoveType { + fn verify(&self, recursion_count: u8) -> anyhow::Result<()> { + if recursion_count > MAX_RECURSIVE_TYPES_ALLOWED { + bail!( + "Move type {} has gone over the limit of recursive types {}", + self, + MAX_RECURSIVE_TYPES_ALLOWED + ); + } + match self { + MoveType::Vector { items } => items.verify(recursion_count + 1), + MoveType::Struct(struct_tag) => struct_tag.verify(recursion_count + 1), + MoveType::GenericTypeParam { .. } => Ok(()), + MoveType::Reference { to, .. } => to.verify(recursion_count + 1), + MoveType::Unparsable(inner) => bail!("Unable to parse move type {}", inner), + _ => Ok(()), + } + } +} + impl MoveType { // Returns corresponding JSON data type for the value of `MoveType` pub fn json_type_name(&self) -> String { @@ -626,6 +692,23 @@ impl From for MoveType { } } +impl From<&TypeTag> for MoveType { + fn from(tag: &TypeTag) -> Self { + match tag { + TypeTag::Bool => MoveType::Bool, + TypeTag::U8 => MoveType::U8, + TypeTag::U64 => MoveType::U64, + TypeTag::U128 => MoveType::U128, + TypeTag::Address => MoveType::Address, + TypeTag::Signer => MoveType::Signer, + TypeTag::Vector(v) => MoveType::Vector { + items: Box::new(MoveType::from(v.as_ref())), + }, + TypeTag::Struct(v) => MoveType::Struct(v.into()), + } + } +} + impl TryFrom for TypeTag { type Error = anyhow::Error; fn try_from(tag: MoveType) -> anyhow::Result { @@ -640,7 +723,7 @@ impl TryFrom for TypeTag { MoveType::Struct(v) => TypeTag::Struct(v.try_into()?), _ => { return Err(anyhow::anyhow!( - "invalid move type for converting into `TypeTag`: {:?}", + "Invalid move type for converting into `TypeTag`: {:?}", &tag )) } @@ -698,6 +781,12 @@ pub struct MoveModuleId { pub name: IdentifierWrapper, } +impl VerifyInput for MoveModuleId { + fn verify(&self) -> anyhow::Result<()> { + self.name.verify().map_err(|_| invalid_move_module_id(self)) + } +} + impl From for MoveModuleId { fn from(id: ModuleId) -> Self { let (address, name) = <(AccountAddress, Identifier)>::from(id); @@ -735,8 +824,8 @@ impl FromStr for MoveModuleId { } #[inline] -fn invalid_move_module_id(s: &str) -> anyhow::Error { - format_err!("invalid Move module id: {}", s) +fn invalid_move_module_id(s: S) -> anyhow::Error { + format_err!("Invalid Move module ID: {}", s) } impl Serialize for MoveModuleId { @@ -809,7 +898,7 @@ impl FromStr for MoveAbility { "drop" => Ability::Drop, "store" => Ability::Store, "key" => Ability::Key, - _ => return Err(anyhow::anyhow!("invalid ability string: {}", ability)), + _ => return Err(anyhow::anyhow!("Invalid ability string: {}", ability)), })) } } @@ -959,6 +1048,16 @@ pub struct MoveModuleBytecode { pub abi: Option, } +impl VerifyInput for MoveModuleBytecode { + fn verify(&self) -> anyhow::Result<()> { + if self.bytecode.is_empty() { + bail!("Move module bytecode is empty") + } + + Ok(()) + } +} + impl MoveModuleBytecode { pub fn new(bytes: Vec) -> Self { Self { @@ -996,6 +1095,16 @@ pub struct MoveScriptBytecode { pub abi: Option, } +impl VerifyInput for MoveScriptBytecode { + fn verify(&self) -> anyhow::Result<()> { + if self.bytecode.is_empty() { + bail!("Move script bytecode is empty") + } + + Ok(()) + } +} + impl MoveScriptBytecode { pub fn new(bytes: Vec) -> Self { Self { @@ -1024,6 +1133,17 @@ pub struct EntryFunctionId { pub name: IdentifierWrapper, } +impl VerifyInput for EntryFunctionId { + fn verify(&self) -> anyhow::Result<()> { + self.module + .verify() + .map_err(|_| invalid_entry_function_id(self))?; + self.name + .verify() + .map_err(|_| invalid_entry_function_id(self)) + } +} + impl FromStr for EntryFunctionId { type Err = anyhow::Error; @@ -1039,8 +1159,8 @@ impl FromStr for EntryFunctionId { } #[inline] -fn invalid_entry_function_id(s: &str) -> anyhow::Error { - format_err!("invalid entry function id {:?}", s) +fn invalid_entry_function_id(s: S) -> anyhow::Error { + format_err!("Invalid entry function ID {}", s) } impl Serialize for EntryFunctionId { @@ -1065,6 +1185,28 @@ impl fmt::Display for EntryFunctionId { } } +pub fn verify_function_identifier(function: &str) -> anyhow::Result<()> { + verify_identifier(function).map_err(|_| format_err!("invalid Move function name: {}", function)) +} +pub fn verify_module_identifier(module: &str) -> anyhow::Result<()> { + verify_identifier(module).map_err(|_| format_err!("invalid Move module name: {}", module)) +} + +pub fn verify_field_identifier(field: &str) -> anyhow::Result<()> { + verify_identifier(field).map_err(|_| format_err!("invalid Move field name: {}", field)) +} + +pub fn verify_identifier(identifier: &str) -> anyhow::Result<()> { + if identifier.contains("::") { + Err(format_err!( + "Identifier should not contain '::' {}", + identifier + )) + } else { + Ok(()) + } +} + #[cfg(test)] mod tests { use super::*; @@ -1211,19 +1353,19 @@ mod tests { #[test] fn test_parse_invalid_move_module_id_string() { assert_eq!( - "invalid Move module id: 0x1", + "Invalid Move module ID: 0x1", "0x1".parse::().err().unwrap().to_string() ); assert_eq!( - "invalid Move module id: 0x1:", + "Invalid Move module ID: 0x1:", "0x1:".parse::().err().unwrap().to_string() ); assert_eq!( - "invalid Move module id: 0x1:::", + "Invalid Move module ID: 0x1:::", "0x1:::".parse::().err().unwrap().to_string() ); assert_eq!( - "invalid Move module id: 0x1::???", + "Invalid Move module ID: 0x1::???", "0x1::???" .parse::() .err() @@ -1231,7 +1373,7 @@ mod tests { .to_string() ); assert_eq!( - "invalid Move module id: Aptos::Aptos", + "Invalid Move module ID: Aptos::Aptos", "Aptos::Aptos" .parse::() .err() @@ -1239,7 +1381,7 @@ mod tests { .to_string() ); assert_eq!( - "invalid Move module id: 0x1::Aptos::Aptos", + "Invalid Move module ID: 0x1::Aptos::Aptos", "0x1::Aptos::Aptos" .parse::() .err() @@ -1265,15 +1407,15 @@ mod tests { #[test] fn test_parse_invalid_move_entry_function_id_string() { assert_eq!( - "invalid entry function id \"0x1\"", + "Invalid entry function ID 0x1", "0x1".parse::().err().unwrap().to_string() ); assert_eq!( - "invalid entry function id \"0x1:\"", + "Invalid entry function ID 0x1:", "0x1:".parse::().err().unwrap().to_string() ); assert_eq!( - "invalid entry function id \"0x1:::\"", + "Invalid entry function ID 0x1:::", "0x1:::" .parse::() .err() @@ -1281,7 +1423,7 @@ mod tests { .to_string() ); assert_eq!( - "invalid entry function id \"0x1::???\"", + "Invalid entry function ID 0x1::???", "0x1::???" .parse::() .err() @@ -1289,7 +1431,7 @@ mod tests { .to_string() ); assert_eq!( - "invalid entry function id \"Aptos::Aptos\"", + "Invalid entry function ID Aptos::Aptos", "Aptos::Aptos" .parse::() .err() @@ -1297,7 +1439,7 @@ mod tests { .to_string() ); assert_eq!( - "invalid entry function id \"Aptos::Aptos::??\"", + "Invalid entry function ID Aptos::Aptos::??", "Aptos::Aptos::??" .parse::() .err() @@ -1305,7 +1447,7 @@ mod tests { .to_string() ); assert_eq!( - "invalid entry function id \"0x1::Aptos::Aptos::Aptos\"", + "Invalid entry function ID 0x1::Aptos::Aptos::Aptos", "0x1::Aptos::Aptos::Aptos" .parse::() .err() diff --git a/api/types/src/table.rs b/api/types/src/table.rs index a684b7a394a86..7aad96037aec6 100644 --- a/api/types/src/table.rs +++ b/api/types/src/table.rs @@ -1,7 +1,7 @@ // Copyright (c) Aptos // SPDX-License-Identifier: Apache-2.0 -use crate::MoveType; +use crate::{MoveType, VerifyInput, VerifyInputWithRecursion}; use poem_openapi::Object; use serde::{Deserialize, Serialize}; use serde_json::Value; @@ -14,3 +14,10 @@ pub struct TableItemRequest { /// The value of the table item's key pub key: Value, } + +impl VerifyInput for TableItemRequest { + fn verify(&self) -> anyhow::Result<()> { + self.key_type.verify(0)?; + self.value_type.verify(0) + } +} diff --git a/api/types/src/transaction.rs b/api/types/src/transaction.rs index 1233953add670..5dc4956ca3923 100755 --- a/api/types/src/transaction.rs +++ b/api/types/src/transaction.rs @@ -2,16 +2,18 @@ // SPDX-License-Identifier: Apache-2.0 use crate::{ - Address, AptosError, EntryFunctionId, EventGuid, EventKey, HashValue, HexEncodedBytes, + Address, AptosError, EntryFunctionId, EventGuid, HashValue, HexEncodedBytes, MoveModuleBytecode, MoveModuleId, MoveResource, MoveScriptBytecode, MoveStructTag, MoveType, - MoveValue, U64, + MoveValue, VerifyInput, VerifyInputWithRecursion, U64, }; - use anyhow::{bail, Context as AnyhowContext}; +use aptos_crypto::ed25519::{ED25519_PUBLIC_KEY_LENGTH, ED25519_SIGNATURE_LENGTH}; +use aptos_crypto::multi_ed25519::{BITMAP_NUM_OF_BYTES, MAX_NUM_OF_KEYS}; use aptos_crypto::{ ed25519::{self, Ed25519PublicKey}, multi_ed25519::{self, MultiEd25519PublicKey}, }; +use aptos_types::transaction::authenticator::MAX_NUM_OF_SIGS; use aptos_types::{ account_address::AccountAddress, block_metadata::BlockMetadata, @@ -21,15 +23,14 @@ use aptos_types::{ Script, SignedTransaction, TransactionOutput, TransactionWithProof, }, }; - use poem_openapi::{Object, Union}; -use serde::de::Error; -use serde::{Deserialize, Deserializer, Serialize}; +use serde::{Deserialize, Serialize}; use std::{ boxed::Box, convert::{From, Into, TryFrom, TryInto}, fmt, str::FromStr, + time::{SystemTime, UNIX_EPOCH}, }; // Warning: Do not add a docstring to a field that uses a type in `derives.rs`, @@ -325,6 +326,10 @@ pub struct TransactionInfo { pub accumulator_root_hash: HashValue, /// Final state of resources changed by the transaction pub changes: Vec, + /// Block height that the transaction belongs in, this field will not be present through the API + #[oai(skip)] + #[serde(skip_serializing_if = "Option::is_none")] + pub block_height: Option, } /// A transaction waiting in mempool @@ -379,6 +384,13 @@ pub struct SubmitTransactionRequest { pub signature: TransactionSignature, } +impl VerifyInput for SubmitTransactionRequest { + fn verify(&self) -> anyhow::Result<()> { + self.user_transaction_request.verify()?; + self.signature.verify() + } +} + /// Batch transaction submission result /// /// Tells which transactions failed @@ -407,6 +419,21 @@ pub struct UserTransactionRequestInner { pub payload: TransactionPayload, } +impl VerifyInput for UserTransactionRequestInner { + fn verify(&self) -> anyhow::Result<()> { + if let Ok(now) = SystemTime::now().duration_since(UNIX_EPOCH) { + if self.expiration_timestamp_secs.0 <= now.as_secs() { + bail!( + "Expiration time for transaction is in the past, {}", + self.expiration_timestamp_secs.0 + ) + } + } + + self.payload.verify() + } +} + // TODO: Remove this when we cut over. #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Object)] pub struct UserTransactionRequest { @@ -442,6 +469,12 @@ pub struct EncodeSubmissionRequest { pub secondary_signers: Option>, } +impl VerifyInput for EncodeSubmissionRequest { + fn verify(&self) -> anyhow::Result<()> { + self.transaction.verify() + } +} + /// The genesis transaction /// /// This only occurs at the genesis transaction (version 0) @@ -478,11 +511,9 @@ pub struct BlockMetadataTransaction { } /// An event from a transaction -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Object)] +#[derive(Clone, Debug, Deserialize, Eq, Object, PartialEq, Serialize)] pub struct Event { - pub key: EventKey, // The globally unique identifier of this event stream. - #[serde(default)] pub guid: EventGuid, // The sequence number of the event pub sequence_number: U64, @@ -493,49 +524,10 @@ pub struct Event { pub data: serde_json::Value, } -// Convert old format where EventGuid isn't shown -#[derive(Serialize, Deserialize)] -pub struct CompatibleEvent { - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub guid: Option, - // The sequence number of the event - pub sequence_number: U64, - #[serde(rename = "type")] - pub typ: MoveType, - /// The JSON representation of the event - pub data: serde_json::Value, -} - -impl<'de> Deserialize<'de> for Event { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let event = CompatibleEvent::deserialize(deserializer)?; - let (key, guid) = match (event.key, event.guid) { - (Some(key), Some(guid)) => (key, guid), - (Some(key), _) => (key, EventGuid::from(key)), - (_, Some(guid)) => (guid.into(), guid), - _ => return Err(D::Error::missing_field("key and guid")), - }; - - Ok(Event { - key, - guid, - sequence_number: event.sequence_number, - typ: event.typ, - data: event.data, - }) - } -} - impl From<(&ContractEvent, serde_json::Value)> for Event { fn from((event, data): (&ContractEvent, serde_json::Value)) -> Self { match event { ContractEvent::V0(v0) => Self { - key: (*v0.key()).into(), guid: (*v0.key()).into(), sequence_number: v0.sequence_number().into(), typ: v0.type_tag().clone().into(), @@ -546,10 +538,9 @@ impl From<(&ContractEvent, serde_json::Value)> for Event { } /// An event from a transaction with a version -#[derive(Clone, Debug, PartialEq, Eq, Serialize, Object)] +#[derive(Clone, Debug, Deserialize, Eq, Object, PartialEq, Serialize)] pub struct VersionedEvent { pub version: U64, - pub key: EventKey, // The globally unique identifier of this event stream. pub guid: EventGuid, // The sequence number of the event @@ -561,52 +552,11 @@ pub struct VersionedEvent { pub data: serde_json::Value, } -// Convert old format where EventGuid isn't shown -#[derive(Serialize, Deserialize)] -pub struct CompatibleVersionedEvent { - pub version: U64, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub key: Option, - #[serde(default, skip_serializing_if = "Option::is_none")] - pub guid: Option, - // The sequence number of the event - pub sequence_number: U64, - #[serde(rename = "type")] - pub typ: MoveType, - /// The JSON representation of the event - pub data: serde_json::Value, -} - -impl<'de> Deserialize<'de> for VersionedEvent { - fn deserialize(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - let event = CompatibleVersionedEvent::deserialize(deserializer)?; - let (key, guid) = match (event.key, event.guid) { - (Some(key), Some(guid)) => (key, guid), - (Some(key), _) => (key, EventGuid::from(key)), - (_, Some(guid)) => (guid.into(), guid), - _ => return Err(D::Error::missing_field("key and guid")), - }; - - Ok(VersionedEvent { - version: event.version, - key, - guid, - sequence_number: event.sequence_number, - typ: event.typ, - data: event.data, - }) - } -} - impl From<(&EventWithVersion, serde_json::Value)> for VersionedEvent { fn from((event, data): (&EventWithVersion, serde_json::Value)) -> Self { match &event.event { ContractEvent::V0(v0) => Self { version: event.transaction_version.into(), - key: (*v0.key()).into(), guid: (*v0.key()).into(), sequence_number: v0.sequence_number().into(), typ: v0.type_tag().clone().into(), @@ -634,11 +584,31 @@ pub enum TransactionPayload { ModuleBundlePayload(ModuleBundlePayload), } +impl VerifyInput for TransactionPayload { + fn verify(&self) -> anyhow::Result<()> { + match self { + TransactionPayload::EntryFunctionPayload(inner) => inner.verify(), + TransactionPayload::ScriptPayload(inner) => inner.verify(), + TransactionPayload::ModuleBundlePayload(inner) => inner.verify(), + } + } +} + #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Object)] pub struct ModuleBundlePayload { pub modules: Vec, } +impl VerifyInput for ModuleBundlePayload { + fn verify(&self) -> anyhow::Result<()> { + for module in self.modules.iter() { + module.verify()?; + } + + Ok(()) + } +} + /// Payload which runs a single entry function #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Object)] pub struct EntryFunctionPayload { @@ -649,6 +619,16 @@ pub struct EntryFunctionPayload { pub arguments: Vec, } +impl VerifyInput for EntryFunctionPayload { + fn verify(&self) -> anyhow::Result<()> { + self.function.verify()?; + for type_arg in self.type_arguments.iter() { + type_arg.verify(0)?; + } + Ok(()) + } +} + /// Payload which runs a script that can run multiple functions #[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize, Object)] pub struct ScriptPayload { @@ -659,6 +639,15 @@ pub struct ScriptPayload { pub arguments: Vec, } +impl VerifyInput for ScriptPayload { + fn verify(&self) -> anyhow::Result<()> { + for type_arg in self.type_arguments.iter() { + type_arg.verify(0)?; + } + Ok(()) + } +} + impl TryFrom - - - - -
- <%= render HeaderComponent.new(user: current_user) %> - <%= render GlobalAnnouncementComponent.new(id: 'global-announcement', class: 'flex') %> -
- <%= yield %> -
-
- <%= render FooterComponent.new %> - - diff --git a/ecosystem/platform/server/app/views/layouts/_flash.html.erb b/ecosystem/platform/server/app/views/layouts/_flash.html.erb deleted file mode 100644 index 994c1a141abef..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/_flash.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -<% flash.each do |type, msg| %> - <% if type == "notice" %> - - <% elsif type == "alert" %> - - <% end %> -<% end %> diff --git a/ecosystem/platform/server/app/views/layouts/application.html.erb b/ecosystem/platform/server/app/views/layouts/application.html.erb deleted file mode 100644 index 1c94f05fe372e..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/application.html.erb +++ /dev/null @@ -1,3 +0,0 @@ -<%= render 'layouts/application' do %> - <%= yield %> -<% end %> diff --git a/ecosystem/platform/server/app/views/layouts/it3.html.erb b/ecosystem/platform/server/app/views/layouts/it3.html.erb deleted file mode 100644 index ed56f1057eb98..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/it3.html.erb +++ /dev/null @@ -1,44 +0,0 @@ -<% content_for(:page_title, 'AIT3 - Aptos Incentivized Testnet 3') %> -<% content_for(:page_description, 'Register your node for AIT3') %> -<% content_for(:meta) do %> - -<% end %> - -<%= render 'layouts/application' do %> - - - -
-
-

Community

-

Incentivized Testnet 3

-
- <%= render DividerComponent.new(scheme: :primary) %> -
-
- <%= yield %> -
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'md:sticky md:top-32 h-max') do %> -

- <%= render IconComponent.new(:calendar, class: 'w-[21px] h-[21px]') %> - Schedule -

-
<%= render DividerComponent.new %>
-

All dates and times shown are for Pacific Time.

-

August 19

-
Registration Starts
-

Node and Identity Verification begins.

-

August 25

-
Node Registration Locked
-

Only 48 hours left to complete identity verification.

-

August 29

-
Selection Process Concludes
-

Email notifications are sent on the 29th.

-

August 30

-
Validator Score Tracking Begins
- <% end %> -
-
-
-
-<% end %> diff --git a/ecosystem/platform/server/app/views/layouts/mailer.html.erb b/ecosystem/platform/server/app/views/layouts/mailer.html.erb deleted file mode 100644 index 3aac9002edca7..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/mailer.html.erb +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - <%= yield %> - - diff --git a/ecosystem/platform/server/app/views/layouts/mailer.text.erb b/ecosystem/platform/server/app/views/layouts/mailer.text.erb deleted file mode 100644 index 37f0bddbd746b..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/mailer.text.erb +++ /dev/null @@ -1 +0,0 @@ -<%= yield %> diff --git a/ecosystem/platform/server/app/views/layouts/settings.html.erb b/ecosystem/platform/server/app/views/layouts/settings.html.erb deleted file mode 100644 index d86f154d66902..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/settings.html.erb +++ /dev/null @@ -1,24 +0,0 @@ -<%= render 'layouts/application' do %> -
-

Account Settings

- -
- -
- <%= render 'layouts/flash' %> - <%= yield %> -
-
-
-<% end %> diff --git a/ecosystem/platform/server/app/views/layouts/user_mailer.html.erb b/ecosystem/platform/server/app/views/layouts/user_mailer.html.erb deleted file mode 100644 index d14ca3b6bd6d9..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/user_mailer.html.erb +++ /dev/null @@ -1,1101 +0,0 @@ - - - - - - - - - <%= message.subject %> - - - - - - -
- - - - -
- - - - - - - - - - - - - - -
- - - - - -
- - - - - -
- - - - - - - - -
- - -
- - - -
- -
- - - - - -
- - - - - -
- - - - -
- - - - - -
-
- -
- - - - - -
- - - - - -
- - - - -
- -
- -
- - - - - -
- - - - - - - - -
- -

<%= message.subject %>

- -
- - - -
- - - - - -
- - - - -
- - - -
-
- - - - - -
- - - - - - - - -
- - <%= yield %> - -
- - - -
- -
- - - - - -
- - - - - -
- - - - -
- -
- -
- - - - - -
- - - - -
- - - - - -
-
- - - - - -
- - - - - - - - -
- - -
- - - -
- - - - - -
- - - - -
- -
- -
- - - - - -
- - - - - - - - -
- - STAY CONNECTED -
- - - -
- - - - - -
- - - - -
- - - - -
- - - - -
- - - - - - - - -
- - - - -
- - - - - - -
- LinkedIn -
-
-
- - - - - - - - - -
- - - - -
- - - - - - -
- Twitter -
-
-
- - - - - - - - - -
- - - - -
- - - - - - -
- Medium -
-
-
- - - - - - - - - -
- - - - -
- - - - - - -
- GitHub -
-
-
- - - - -
-
-
- -
- - - - - -
- - - - -
- -
- -
- - - - - -
- - - - - - - - -
- - © 2022 Copyright: Matonee Inc. (dba Aptos Labs) -
-745 Emerson St. Palo Alto, CA 94301
-
- - - -
- -
- -
-
- - diff --git a/ecosystem/platform/server/app/views/layouts/users.html.erb b/ecosystem/platform/server/app/views/layouts/users.html.erb deleted file mode 100644 index 45f688af729f5..0000000000000 --- a/ecosystem/platform/server/app/views/layouts/users.html.erb +++ /dev/null @@ -1,38 +0,0 @@ -<%= render 'layouts/application' do %> -
-
-
-
-
- <% if @user.avatar.attached? %> - - <% else %> -
- <%= @user.username&.first&.upcase %> -
- <% end %> -
-

<%= @user.username %>

-

<%= @user.bio %>

-
-
-
-
    - <% nav_items(@user).each do |item| %> -
  • - <%= content_tag :a, item.name, href: item.url, 'aria-current': current_page?(item.url) ? true : nil, class: [ - 'inline-block p-4 rounded-t-lg border-b-2', - current_page?(item.url) ? 'text-teal-400 border-teal-400 active' : 'border-transparent hover:border-neutral-400 hover:text-neutral-100' - ] %> -
  • - <% end %> -
-
-
- <%= yield %> -
-
-
-
-
-<% end %> diff --git a/ecosystem/platform/server/app/views/leaderboard/it1.html.erb b/ecosystem/platform/server/app/views/leaderboard/it1.html.erb deleted file mode 100644 index 3f98f8e9069c8..0000000000000 --- a/ecosystem/platform/server/app/views/leaderboard/it1.html.erb +++ /dev/null @@ -1,138 +0,0 @@ -<% content_for(:page_title, 'AIT-1 Validator Status') %> -
-
-

Community

-

<%= content_for(:page_title) %>

-
-
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

119

-
<%= render DividerComponent.new %>
-

Nodes

- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

43

-
<%= render DividerComponent.new %>
-

Countries

- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

105

-
<%= render DividerComponent.new %>
-

Cities

- <% end %> -
-
-
- <%= turbo_frame_tag 'metrics', data: { controller: 'refresh', refresh_interval_value: 1.minute, refresh_src_value: request.path, turbo_action: 'advance' } do %> - <%= content_tag :div, class: 'overflow-x-auto' do %> - <%= render TableComponent.new(class: 'w-full table-auto border-separate border-spacing-y-2') do |t| %> - <%= t.with_column(:rank, '#', align: 'left') %> - <%= t.with_column('Account Address', align: 'left') %> - <%= t.with_column(:liveness, 'Liveness', align: 'left') do |column| %> - <%= column.with_tooltip(:info) do |tooltip| %> - <%= tooltip.with_header do %> - Cumulative range: 0% - 100% - <% end %> - <%= tooltip.with_body do %> -
-
- <%= render IconComponent.new(:check_circle, size: :small, class: 'text-teal-400') %> -
- Live -
    -
  • -Push metrics to Aptos telemetry
  • -
  • -Connected to Aptos node
  • -
-
-
-
- <%= render IconComponent.new(:x_circle, size: :small, class: 'text-red-500') %> -
- Not Live -
-
-
- - <% end %> - <% end %> - <% end %> - <%= t.with_column(:participation, 'Participation', align: 'left') do |column| %> - <%= column.with_tooltip(:info) do |tooltip| %> - <%= tooltip.with_header do %> - At least 1 proposal every hour. -
- Cumulative range: 0%-100% - <% end %> - <%= tooltip.with_body do %> -
-
-
-
- Above 97% -
-
-
-
-
- Between 95% & 97% -
-
-
-
-
- Below 95% -
-
-
- - <% end %> - <% end %> - <% end %> - <%= t.with_column(:latest_reported_timestamp, 'Last Metrics Update', align: 'right') %> - - <%= t.with_body do %> - <% @metrics.each_with_index do |metric, i| %> - <%= render TableRowComponent.new do |tr| %> - <%= tr.with_column(align: 'left') do %> - <%= metric.rank %> - <% end %> - <%= tr.with_column(align: 'left', title: "0x#{metric.validator}") do %> -
- <%= truncate_address("0x#{metric.validator}") %> - 0x<%= metric.validator %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> -
- <%= liveness_icon(metric.liveness) %> - <%= number_to_percentage(metric.liveness, precision: 2) %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> -
-
- <%= number_to_percentage(metric.participation, precision: 2) %> -
- <% end %> - <%= tr.with_column(align: 'right') do %> - <% if metric.latest_reported_timestamp %> - <%= Time.at(metric.latest_reported_timestamp).utc.to_fs(:db) %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> -
-
diff --git a/ecosystem/platform/server/app/views/leaderboard/it2.html.erb b/ecosystem/platform/server/app/views/leaderboard/it2.html.erb deleted file mode 100644 index 4dc07f91f1000..0000000000000 --- a/ecosystem/platform/server/app/views/leaderboard/it2.html.erb +++ /dev/null @@ -1,144 +0,0 @@ -<% content_for(:page_title, 'AIT-2 Validator Status') %> -
-
-

Community

-

<%= content_for(:page_title) %>

-
-
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

226

-
<%= render DividerComponent.new %>
-

Nodes

- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

44

-
<%= render DividerComponent.new %>
-

Countries

- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

110

-
<%= render DividerComponent.new %>
-

Cities

- <% end %> -
-
-
- <%= turbo_frame_tag 'metrics', data: { controller: 'refresh', refresh_interval_value: 1.minute, refresh_src_value: request.path, turbo_action: 'advance' } do %> - <%= content_tag :div, class: 'overflow-x-auto' do %> - <%= render TableComponent.new(class: 'w-full table-auto border-separate border-spacing-y-2') do |t| %> - <%= t.with_column(:rank, '#', align: 'left') %> - <%= t.with_column('Account Address', align: 'left') %> - <%= t.with_column(:liveness, 'Liveness', align: 'left') do |column| %> - <%= column.with_tooltip(:info) do |tooltip| %> - <%= tooltip.with_header do %> - Cumulative range: 0% - 100% - <% end %> - <%= tooltip.with_body do %> -
-
- <%= render IconComponent.new(:check_circle, size: :small, class: 'text-teal-400') %> -
- Live -
    -
  • -Push metrics to Aptos telemetry
  • -
  • -Connected to Aptos node
  • -
-
-
-
- <%= render IconComponent.new(:x_circle, size: :small, class: 'text-red-500') %> -
- Not Live -
-
-
- - <% end %> - <% end %> - <% end %> - <%= t.with_column(:participation, 'Participation', align: 'left') do |column| %> - <%= column.with_tooltip(:info) do |tooltip| %> - <%= tooltip.with_header do %> - At least 1 proposal every hour. -
- Cumulative range: 0%-100% - <% end %> - <%= tooltip.with_body do %> -
-
-
-
- Above 97% -
-
-
-
-
- Between 95% & 97% -
-
-
-
-
- Below 95% -
-
-
- - <% end %> - <% end %> - <% end %> - <%= t.with_column(:num_votes, 'Votes', align: 'left') %> - <%= t.with_column(:latest_reported_timestamp, 'Last Metrics Update', align: 'right') %> - - <%= t.with_body do %> - <% @metrics.each_with_index do |metric, i| %> - <%= render TableRowComponent.new do |tr| %> - <%= tr.with_column(align: 'left') do %> - <%= metric.rank %> - <% end %> - <%= tr.with_column(align: 'left', title: "0x#{metric.validator}") do %> -
- <%= truncate_address("0x#{metric.validator}") %> - 0x<%= metric.validator %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> -
- <%= liveness_icon(metric.liveness) %> - <%= number_to_percentage(metric.liveness, precision: 2) %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> -
-
- <%= number_to_percentage(metric.participation, precision: 2) %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> - <%= metric.num_votes %> - <% end %> - <%= tr.with_column(align: 'right') do %> - <% if metric.latest_reported_timestamp %> - <%= Time.at(metric.latest_reported_timestamp).utc.to_fs(:db) %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> -

This page refreshes every 15 minutes.

-

Data last updated <%= @last_updated.utc.to_fs(:db) %> UTC

-
-
diff --git a/ecosystem/platform/server/app/views/leaderboard/it3.html.erb b/ecosystem/platform/server/app/views/leaderboard/it3.html.erb deleted file mode 100644 index 656f5159d8e49..0000000000000 --- a/ecosystem/platform/server/app/views/leaderboard/it3.html.erb +++ /dev/null @@ -1,151 +0,0 @@ -<% content_for(:page_title, 'AIT-3 Validator Status') %> -
-
-

Community

-

<%= content_for(:page_title) %>

-
-
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

226

-
<%= render DividerComponent.new %>
-

Nodes

- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

41

-
<%= render DividerComponent.new %>
-

Countries

- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -

91

-
<%= render DividerComponent.new %>
-

Cities

- <% end %> -
-
-
- <%= turbo_frame_tag 'metrics', data: { controller: 'refresh', refresh_interval_value: 1.minute, refresh_src_value: request.path, turbo_action: 'advance' } do %> - <%= content_tag :div, class: 'overflow-x-auto' do %> - <%= render TableComponent.new(class: 'w-full table-auto border-separate border-spacing-y-2') do |t| %> - <%= t.with_column(:rank, '#', align: 'left') %> - <%= t.with_column('Owner Address', align: 'left') %> - <%= t.with_column(:liveness, 'Liveness', align: 'left') do |column| %> - <%= column.with_tooltip(:info) do |tooltip| %> - <%= tooltip.with_header do %> - Updated hourly. -
- Cumulative range: 0%-100% - <% end %> - <%= tooltip.with_body do %> -
-
- <%= render IconComponent.new(:check_circle, size: :small, class: 'text-teal-400') %> -
- Live -
    -
  • -Push metrics to Aptos telemetry
  • -
  • -Connected to Aptos node
  • -
-
-
-
- <%= render IconComponent.new(:x_circle, size: :small, class: 'text-red-500') %> -
- Not Live -
-
-
- - <% end %> - <% end %> - <% end %> - <%= t.with_column(:rewards_growth, 'Rewards Performance', align: 'left') do |column| %> - <%= column.with_tooltip(:info) do |tooltip| %> - <%= tooltip.with_header do %> - Cumulative range: 0%-100% - <% end %> - <%= tooltip.with_body do %> -
-
-
-
- Above 80% -
-
-
-
-
- Between 75% & 80% -
-
-
-
-
- Below 75% -
-
-
- - <% end %> - <% end %> - <% end %> - <%= t.with_column(:last_epoch_performance, 'Last Epoch Performance', align: 'left') %> - <%= t.with_column(:governance_voting_record, 'Governance Votes', align: 'right') %> - - <%= t.with_body do %> - <% @metrics.each_with_index do |metric, i| %> - <%= render TableRowComponent.new(class: 'cursor-pointer select-none active:translate-y-0.5', title: 'Click to view account on Explorer') do |tr| %> - <%= tr.with_column(align: 'left') do %> - <%= metric.rank %> - <% end %> - <%= tr.with_column(align: 'left') do %> - - <%= truncate_address(metric.owner_address) %> - <%= metric.owner_address %> - - <% end %> - <%= tr.with_column(align: 'left') do %> -
- <%= liveness_icon(metric.liveness) %> - <%= number_to_percentage(metric.liveness, precision: 2) %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> -
-
- <%= number_to_percentage(metric.rewards_growth, precision: 2) %> -
- <% end %> - <%= tr.with_column(align: 'left') do %> - <% if metric.last_epoch_performance.present? %> - <%= metric.last_epoch_performance %> - <% end %> - <% end %> - <%= tr.with_column(align: 'right') do %> - <% if metric.governance_voting_record.present? %> - <%= metric.governance_voting_record %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> - <% end %> -

- <%= render LinkComponent.new(href: 'https://aptos-analytics-data-it3.s3.us-west-2.amazonaws.com/validator_epoch_history.json', target: '_blank') do %> - View complete performance history - <% end %> -

-

This page refreshes every 15 minutes and metrics are calculated at the end of an epoch.

-

Data last updated <%= @last_updated.utc.to_fs(:db) %> UTC

-
-
diff --git a/ecosystem/platform/server/app/views/network_operations/index.html.erb b/ecosystem/platform/server/app/views/network_operations/index.html.erb deleted file mode 100644 index 36cfd1431b031..0000000000000 --- a/ecosystem/platform/server/app/views/network_operations/index.html.erb +++ /dev/null @@ -1,33 +0,0 @@ -<% content_for(:page_title, 'Node Maintenance') %> -
-
-
-

- <%= content_for(:page_title) %> -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> - <% @network_operations.each do |network_operation| %> - - <% end %> - <%= render ButtonComponent.new(href: 'https://medium.com/aptoslabs', size: :large, target: '_blank', rel: 'noopener noreferrer') do %> - Follow @aptoslabs on Medium - <% end %> -
-
-
diff --git a/ecosystem/platform/server/app/views/network_operations/show.html.erb b/ecosystem/platform/server/app/views/network_operations/show.html.erb deleted file mode 100644 index fe331e573c739..0000000000000 --- a/ecosystem/platform/server/app/views/network_operations/show.html.erb +++ /dev/null @@ -1,14 +0,0 @@ -<% content_for(:page_title, @network_operation.title) %> -
-
-
-

- <%= content_for(:page_title) %> -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
- <%= sanitize @network_operation.content %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/nft_offers/minted.html.erb b/ecosystem/platform/server/app/views/nft_offers/minted.html.erb deleted file mode 100644 index b46629c8710a0..0000000000000 --- a/ecosystem/platform/server/app/views/nft_offers/minted.html.erb +++ /dev/null @@ -1,91 +0,0 @@ -<% content_for(:page_title, 'APTOS : ZERO - Testnet NFT') %> -<% content_for(:page_description, 'Claim your Aptos Testnet NFT and help us test the network.') %> -<% content_for(:meta) do %> - -<% end %> -
-
-
-

Community

-
-

- APTOS : ZERO
- Testnet NFT # -

-
-

- Claim your Aptos Testnet NFT and help us test the network. -

- <%= render ButtonComponent.new(href: nft_offer_path(@nft_offer), title: 'Mint your own Aptos NFT', class: '!inline-flex') do %> - Mint your own Aptos NFT - <% end %> -
-
-
-
- <%= content_tag :div, class: 'md:col-span-6 lg:col-span-5 order-last md:order-first' do %> - <%= render 'layouts/flash' %> -

Minted NFT Details

- -
-
Series
-
Aptos:Zero
-
Date Minted
-
#
-
Sequence
-
#
-
Address
-
#
-
-
- <%= turbo_frame_tag :transaction_links, data: { minted_nft_target: 'transactionLinks' } do %> -
    -
  • - <% explorer_url = if @transaction_version - "https://explorer.devnet.aptos.dev/txn/#{@transaction_version}?network=#{@wallet.network}" - else - "https://explorer.devnet.aptos.dev/txn/#{CGI.escape @transaction_hash}?network=#{@wallet.network}" - end %> - <%= link_to explorer_url, class: 'font-mono uppercase text-base text-teal-400 hover:text-teal-300 flex gap-2', target: '_blank' do %> - <%= render IconComponent.new(:search, class: 'w-5') %> - View in Explorer - <% end %> -
  • -
  • - <% twitter_url = if @transaction_version - nft_offer_short_url(offer_id: @nft_offer.id, txn_version: @transaction_version) - else - request.url - end %> - <%= link_to "http://twitter.com/intent/tweet?url=#{CGI.escape(twitter_url)}&text=Check%20out%20my%20APTOS%20%3A%20ZERO%20Testnet%20NFT&hashtags=AptosNFTs", class: 'font-mono uppercase text-base text-teal-400 hover:text-teal-300 flex gap-2', target: '_blank' do %> - <%= render IconComponent.new(:twitter, class: 'w-5') %> - Share on Twitter - <% end %> -
  • -
- <% end %> - <% end %> -
- <%= render CardOutlineComponent.new(scheme: :filled) do %> -
- <%= render ButtonComponent.new(dialog: @image_dialog, scheme: :blank, class: 'cursor-zoom-in') do %> - <%= image_tag 'aptos_nft_zero_08302022.png', data: { minted_nft_target: 'image' } %> - <% end %> -
- <% end %> - <%= render @image_dialog do |dialog| %> - <%= dialog.with_title do %> - # - <% end %> - <%= dialog.with_body do %> -
- <%= image_tag 'aptos_nft_zero_08302022.png', class: 'max-h-[80vh]', data: { minted_nft_target: 'image' } %> -
- <% end %> - <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/nft_offers/show.html.erb b/ecosystem/platform/server/app/views/nft_offers/show.html.erb deleted file mode 100644 index 07c976d2c9fd1..0000000000000 --- a/ecosystem/platform/server/app/views/nft_offers/show.html.erb +++ /dev/null @@ -1,95 +0,0 @@ -<% content_for(:page_title, 'APTOS : ZERO - Testnet NFT') %> -<% content_for(:page_description, 'Claim your Aptos Testnet NFT and help us test the network.') %> -<% content_for(:meta) do %> - -<% end %> - - - -
-
-
-

Community

-
-

- APTOS : ZERO
- Testnet NFT -

-
-

- Claim your Aptos Testnet NFT and help us test the network. -

-
-
-
-
- <%= turbo_frame_tag dom_id(@nft_offer), class: 'md:col-span-6 lg:col-span-5' do %> - <%= render 'layouts/flash' %> -

Claim your NFT

-
    - <% @steps.each_with_index do |step, i| %> - <%= content_tag :li, class: ['pl-10 relative border-dotted', !step.disabled && !step.completed ? 'pb-16' : 'pb-4', step.completed ? 'border-teal-400 opacity-50' : 'border-neutral-400', i + 1 == @steps.length ? '' : 'border-l-2'] do %> - <%= content_tag :div, class: ['absolute w-10 h-10 text-sm font-mono top-0 left-0 -translate-x-1/2 -translate-y-1 bg-neutral-900 rounded-full border-2 flex justify-center items-center', step.disabled ? 'border-neutral-400 text-neutral-400' : 'border-teal-400 text-teal-400'] do %> - <% if step.completed %> - <%= render IconComponent.new(:check, size: :small, class: 'stroke-2') %> - <% else %> - <%= i + 1 %> - <% end %> - <% end %> - <%= content_tag :h3, class: ['uppercase text-2xl font-mono mb-4', step.disabled ? 'text-neutral-400' : 'text-teal-400'] do %> - <% if step.name == :sign_in %> - Sign In - <% elsif step.name == :connect_wallet %> - Connect Wallet - <% elsif step.name == :claim_nft %> - Claim NFT - <% end %> - <% end %> - <% if !step.disabled && !step.completed %> -

    - <% if step.name == :sign_in %> - To begin, sign in to Aptos. - <% elsif step.name == :connect_wallet %> - Connect your wallet. You will need - an Aptos Wallet, such as <%= render(LinkComponent.new(href: 'https://chrome.google.com/webstore/detail/petra-aptos-wallet/ejjladinnckdgjemekebdpeokbikhfci')) { 'Petra Wallet' } %>, - with a funded account and the network set to <%= @nft_offer.network.capitalize %>.
    Refresh the page after installing. - <% elsif step.name == :claim_nft %> - Your NFT is ready to mint! - <% end %> -

    - <% if step.name == :sign_in %> - <%= render ButtonComponent.new(dialog: @login_dialog, size: :large) do %> - Sign in - <% end %> - <%= render @login_dialog do |dialog| %> - <%= dialog.with_title do %> - Sign in with - <% end %> - <%= dialog.with_body do %> -
    - <%= render LoginButtonComponent.new(provider: :discord, size: :large, class: 'w-full') %> - <%= render LoginButtonComponent.new(provider: :google, size: :large, class: 'w-full') %> - <%= render LoginButtonComponent.new(provider: :github, size: :large, class: 'w-full') %> -
    - <% end %> - <% end %> - <% elsif step.name == :connect_wallet %> - <%= render(ConnectWalletButtonComponent.new(wallet: @wallet, required_network: @nft_offer.network, turbo_frame: dom_id(@nft_offer), scheme: :primary, size: :large, class: 'inline-flex')) %> - <% elsif step.name == :claim_nft %> - <%= render(ClaimNftButtonComponent.new(nft_offer: @nft_offer, wallet: @wallet, scheme: :primary, size: :large, class: 'inline-flex')) %> - <% end %> - <% end %> - <% end %> - <% end %> -
- <% end %> -
- <%= render CardOutlineComponent.new(scheme: :filled) do %> -
- <%= render IconComponent.new(:aptos, class: 'w-1/2') %> -
- <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/onboarding/email.html.erb b/ecosystem/platform/server/app/views/onboarding/email.html.erb deleted file mode 100644 index 2745132b214fb..0000000000000 --- a/ecosystem/platform/server/app/views/onboarding/email.html.erb +++ /dev/null @@ -1,72 +0,0 @@ -
-
-

Community

-

Create Account

-
- <%= render DividerComponent.new(scheme: :primary) %> -
-
-
-

Welcome, <%= @oauth_username || @oauth_email %>!

- - <%= render 'layouts/flash' %> - - <% if current_user.errors.any? %> - - <% end %> - - <%= form_with(model: current_user, url: onboarding_email_path, method: :post, data: { turbo: !@show_recaptcha_v2, controller: 'recaptcha', action: 'recaptcha#validate' }, builder: AptosFormBuilder) do |f| %> - <% if !current_user.email_confirmed? %> -
- <%= f.label :email, class: 'font-mono uppercase block mb-2' %> - <%= f.email_field :email, placeholder: 'Enter email address', autofocus: true, autocomplete: 'email', spellcheck: false, required: true, value: current_user.unconfirmed_email || @oauth_email, class: 'md:w-96' %> -
- <% end %> - -
- <%= f.label :username, class: 'font-mono uppercase block mb-2' %> - <%= f.text_field :username, placeholder: 'Create username', autofocus: true, spellcheck: false, pattern: User::USERNAME_REGEX_JS, minlength: 3, maxlength: 20, value: current_user.username, class: 'md:w-96' %> -
    -
  • Allowed Characters: a-z, A-Z, 0-9, _, -
  • -
  • Must begin and end alphanumerically
  • -
  • May not have two consecutive _ or -
  • -
-
- -
- <% if @show_recaptcha_v2 %> - <%= recaptcha_tags theme: :dark %> - <% else %> - <%= recaptcha_v3(action: 'onboarding/email', site_key: ENV.fetch('RECAPTCHA_V3_SITE_KEY', nil), turbolinks: true) %> - <% end %> -
- -
- <%= f.submit 'Continue', class: 'w-72' %> -
- -
- -
-
- This site is protected by reCAPTCHA and the Google - Privacy Policy and - Terms of Service apply. -
- <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/onboarding/email_success.html.erb b/ecosystem/platform/server/app/views/onboarding/email_success.html.erb deleted file mode 100644 index 4e738b7b1afa0..0000000000000 --- a/ecosystem/platform/server/app/views/onboarding/email_success.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -
-
-

Community

-

Create Account

-
- <%= render DividerComponent.new(scheme: :primary) %> -
-
-
-

Welcome, <%= @oauth_username || @oauth_email %>!

-

- A verification email has been sent to <%= current_user.unconfirmed_email %>. -

-

- Please verify your email by clicking the link sent to your inbox. -

-

- If you have not received this email, please check your spam folder, or <%= render(LinkComponent.new(href: onboarding_email_path)) { 'click here' } %> to send a new email. -

-
-
-
-
diff --git a/ecosystem/platform/server/app/views/projects/_form.html.erb b/ecosystem/platform/server/app/views/projects/_form.html.erb deleted file mode 100644 index 3605e052c3737..0000000000000 --- a/ecosystem/platform/server/app/views/projects/_form.html.erb +++ /dev/null @@ -1,166 +0,0 @@ -<%= form_with(model: project, data: { turbo: !@show_recaptcha_v2, controller: 'recaptcha', action: 'recaptcha#validate' }, builder: AptosFormBuilder) do |form| %> - <% if project.errors.any? %> - - <% end %> - -
-

Project Details

-
<%= render DividerComponent.new %>
- -
- <%= form.label :title, class: 'font-mono uppercase block mb-2' %> - <%= form.text_field :title, placeholder: 'Enter project name', required: true %> -
- -
- <%= form.label :website_url, 'Website', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :website_url, placeholder: 'Enter project website URL', required: true %> -
- -
- <%= form.label :short_description, class: 'font-mono uppercase block mb-2' %> - <%= form.text_field :short_description, placeholder: 'Enter tagline / short description', required: true %> -
- -
- <%= form.label :full_description, class: 'font-mono uppercase block mb-2' %> - <%= form.text_area :full_description, placeholder: 'Enter full project description', rows: 8, required: true %> -
- -
- <%= form.label :category_ids, 'Categories', class: 'font-mono uppercase block mb-2' %> - <%= form.collection_select :category_ids, Category.all, :id, :title, {}, { multiple: true, class: 'text-black' } %> -
-
- -
-

Social Links

-
<%= render DividerComponent.new %>
- -
- <%= form.label :github_url, 'GitHub', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :github_url, placeholder: 'Enter project GitHub URL' %> -
- -
- <%= form.label :discord_url, 'Discord', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :discord_url, placeholder: 'Enter project Discord URL' %> -
- -
- <%= form.label :twitter_url, 'Twitter', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :twitter_url, placeholder: 'Enter project Twitter URL' %> -
- -
- <%= form.label :telegram_url, 'Telegram', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :telegram_url, placeholder: 'Enter project Telegram URL' %> -
- -
- <%= form.label :linkedin_url, 'LinkedIn', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :linkedin_url, placeholder: 'Enter project LinkedIn URL' %> -
-
- - <%= content_tag :div, class: 'mb-16', data: { controller: 'project-images', project_images_thumbnail_url_value: project.thumbnail.attached? ? url_for(project.thumbnail) : nil, project_images_screenshot_urls_value: project.screenshots.attached? ? project.screenshots.map { |screenshot| url_for(screenshot) } : nil } do %> -

Media

-
<%= render DividerComponent.new %>
- -
- <%= form.label :thumbnail, 'Thumbnail', class: 'font-mono uppercase block mb-2' %> - <%= content_tag :button, class: 'flex flex-col justify-center items-center w-48 h-48 bg-neutral-800 rounded-lg border-2 border-neutral-700 border-dashed cursor-pointer hover:brightness-105 bg-contain bg-no-repeat bg-center', data: { project_images_target: 'thumbnail', action: 'click->project-images#imageButtonClick change->project-images#thumbnailChange' } do %> -
- <%= render IconComponent.new(:upload, class: 'mb-3 w-10 h-10 text-neutral-400') %> -

Click to upload

-
- <%= form.file_field :thumbnail, accept: 'image/*', class: 'hidden' %> - <% end %> -
- -
- <%= form.label :screenshots, 'Screenshot Gallery', class: 'font-mono uppercase block mb-2' %> - <%= content_tag :button, class: 'flex flex-col justify-center items-center w-full h-64 bg-neutral-800 rounded-lg border-2 border-neutral-700 border-dashed cursor-pointer hover:brightness-105 mb-8', data: { action: 'click->project-images#imageButtonClick change->project-images#screenshotsChange' } do %> -
- <%= render IconComponent.new(:upload, class: 'mb-3 w-10 h-10 text-neutral-400') %> -

Click to upload

-

SVG, PNG, JPG or GIF (MAX. 1920x1080px)

-
- <%= form.file_field :screenshots, name: 'project[screenshots][]', accept: 'image/*', class: 'hidden' %> - <% end %> -
-
- -
- -
- <%= form.label :youtube_url, 'Video', class: 'font-mono uppercase block mb-2' %> - <%= form.url_field :youtube_url, placeholder: 'YouTube video URL' %> -
- <% end %> - - <% if Flipper.enabled?(:profiles) %> -
-

Project Members

-
<%= render DividerComponent.new %>
- -
- <%= form.fields_for(:project_members) do |member_form| %> - <%= member_form.label :user_id, 'Add Users', class: 'font-mono uppercase block mb-2' %> - <%= member_form.text_field :user_id, placeholder: 'Enter username or email address' %> - <%= member_form.label :role, 'Role', class: 'font-mono uppercase block mb-2' %> - <%= member_form.radio_button :role, 'member', checked: true, required: true %> - <%= member_form.label :role, 'Member', value: 'member', class: 'mr-4' %> - <%= member_form.radio_button :role, 'admin', required: true %> - <%= member_form.label :role, 'Admin', value: 'admin' %> - <%= member_form.label :public, 'Visibility', class: 'font-mono uppercase block mb-2' %> - <%= member_form.radio_button :public, 'public', checked: true, required: true %> - <%= member_form.label :public, 'Public', value: 'public', class: 'mr-4' %> - <%= member_form.radio_button :public, 'private', required: true %> - <%= member_form.label :public, 'Private', value: 'private' %> - <% end %> -
-
- <% end %> - -
-

Publishing

-
<%= render DividerComponent.new %>
- -
- <%= form.label :public, 'Visibility', class: 'font-mono uppercase block mb-2' %> - <%= form.radio_button :public, 'public', checked: true, required: true %> - <%= form.label :public, 'Public', value: 'public', class: 'mr-4' %> - <%= form.radio_button :public, 'private', required: true %> - <%= form.label :public, 'Private', value: 'private' %> -
-
- -
- <%= form.submit 'Submit Project', size: :large %> -
- <% if @show_recaptcha_v2 %> - <%= recaptcha_tags theme: :dark %> - <% else %> - <%= recaptcha_v3(action: 'projects/update', site_key: ENV.fetch('RECAPTCHA_V3_SITE_KEY', nil), turbolinks: true) %> - <% end %> -
-
-<% end %> diff --git a/ecosystem/platform/server/app/views/projects/edit.html.erb b/ecosystem/platform/server/app/views/projects/edit.html.erb deleted file mode 100644 index 482648cb6b60c..0000000000000 --- a/ecosystem/platform/server/app/views/projects/edit.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -
-
-

Edit Project

-
- <%= render DividerComponent.new(scheme: :primary) %> -
- <%= render 'form', project: @project %> -
-
diff --git a/ecosystem/platform/server/app/views/projects/index.html.erb b/ecosystem/platform/server/app/views/projects/index.html.erb deleted file mode 100644 index 5ae3510e83a27..0000000000000 --- a/ecosystem/platform/server/app/views/projects/index.html.erb +++ /dev/null @@ -1,23 +0,0 @@ -
-
-
-

Community

-

Projects Building on Aptos

- <%= render ButtonComponent.new(href: new_project_path, size: :medium, class: 'sm:!inline-flex') do %> - Submit Project - <% end %> -
- - <% @groups.each do |category_id, projects| %> - <% category = @categories[category_id] %> -
-

<%= category.title %>

-
- <% projects.each do |project| %> - <%= render ProjectCardComponent.new(project:) %> - <% end %> -
-
- <% end %> -
-
diff --git a/ecosystem/platform/server/app/views/projects/new.html.erb b/ecosystem/platform/server/app/views/projects/new.html.erb deleted file mode 100644 index 10cc94b0bec1d..0000000000000 --- a/ecosystem/platform/server/app/views/projects/new.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -
-
-

Community

-

Submit Project

-
- <%= render DividerComponent.new(scheme: :primary) %> -
- <%= render 'form', project: @project %> -
-
diff --git a/ecosystem/platform/server/app/views/projects/show.html.erb b/ecosystem/platform/server/app/views/projects/show.html.erb deleted file mode 100644 index a676b169b10d4..0000000000000 --- a/ecosystem/platform/server/app/views/projects/show.html.erb +++ /dev/null @@ -1,56 +0,0 @@ -
-
-
-
- - <%= render LinkComponent.new(href: @project.website_url) do %> - Go to website - <% end %> -
- <% if @project.twitter_url %> - - <%= render IconComponent.new(:twitter, size: :small) %> - - <% end %> - <% if @project.discord_url %> - - <%= render IconComponent.new(:discord, size: :small) %> - - <% end %> - <% if @project.github_url %> - - <%= render IconComponent.new(:github, size: :small) %> - - <% end %> -
-
- -
-

<%= @project.title %>

-

<%= @project.short_description %>

-
- <% @project.categories.each do |category| %> - <%= content_tag :a, category.title, href: projects_path(category: category.id), class: 'rounded-full px-6 py-2 border-2 font-medium text-neutral-300 border-neutral-400 leading-none hover:bg-neutral-800 focus:bg-neutral-800' %> - <% end %> -
-
- <%= simple_format @project.full_description %> -
-
-
- <% @project.screenshots.each do |screenshot| %> - Project screenshot - <% end %> -
-
- <% if Flipper.enabled?(:profiles) %> -
- <% [@project.user].concat(@project.members.public).each do |user| %> - <%= content_tag :a, user.username, href: user_path(user) %> - <% end %> -
- <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/settings/connections.html.erb b/ecosystem/platform/server/app/views/settings/connections.html.erb deleted file mode 100644 index ef0d80210fbb6..0000000000000 --- a/ecosystem/platform/server/app/views/settings/connections.html.erb +++ /dev/null @@ -1,34 +0,0 @@ -<% content_for(:page_title, 'Connection Settings') %> -

Connections

-<% User.omniauth_providers.each do |provider| %> - <% authorizations = (@authorizations[provider.to_s] || []) + [nil] %> - <% authorizations.each do |authorization| %> -
-
- <%= render IconComponent.new(provider, size: :large) %> -
-

<%= provider.to_s.titleize %>

- <% if authorization %> -

<%= authorization.display_shortname %>

- <% end %> -
-
-
- <% if authorization %> - <%= form_with(model: authorization, url: settings_connections_url, method: :delete) do |form| %> - <%= form.hidden_field :id %> - <%= render ButtonComponent.new(scheme: :secondary, type: :submit, class: 'w-full') do %> - Disconnect - <% end %> - <% end %> - <% else %> - <%= form_with url: omniauth_authorize_path(User, provider), data: { turbo: false } do |form| %> - <%= render ButtonComponent.new(type: :submit, class: 'w-full') do %> - Connect - <% end %> - <% end %> - <% end %> -
-
- <% end %> -<% end %> diff --git a/ecosystem/platform/server/app/views/settings/notifications.html.erb b/ecosystem/platform/server/app/views/settings/notifications.html.erb deleted file mode 100644 index d142fdf8ba778..0000000000000 --- a/ecosystem/platform/server/app/views/settings/notifications.html.erb +++ /dev/null @@ -1,28 +0,0 @@ -<% content_for(:page_title, 'Notification Settings') %> -

Notifications

-<%= form_with(model: @email_preferences, url: settings_notifications_path, method: :patch, builder: AptosFormBuilder) do |f| %> - <% if @email_preferences.errors.any? %> - - <% end %> - - - - - - <%= f.submit 'Update', class: 'mt-8' %> -<% end %> diff --git a/ecosystem/platform/server/app/views/settings/profile.html.erb b/ecosystem/platform/server/app/views/settings/profile.html.erb deleted file mode 100644 index 10ff9771d38cf..0000000000000 --- a/ecosystem/platform/server/app/views/settings/profile.html.erb +++ /dev/null @@ -1,75 +0,0 @@ -<% content_for(:page_title, 'Account Settings') %> -

Profile

-<%= form_with(model: @user, url: settings_profile_path, builder: AptosFormBuilder) do |f| %> - <% if @user.errors.any? %> - - <% end %> - -
- <%= f.label :username, class: 'font-mono uppercase block mb-2' %> - <%= f.text_field :username, autofocus: true, spellcheck: false, pattern: User::USERNAME_REGEX_JS, minlength: 3, maxlength: 20 %> -
    -
  • Allowed Characters: a-z, A-Z, 0-9, _, -
  • -
  • Must begin and end alphanumerically
  • -
  • May not have two consecutive _ or -
  • -
-
- -
- <%= f.label :email, class: 'font-mono uppercase block mb-2' %> - <%= f.email_field :email, autofocus: true, spellcheck: false %> -
- - <%= f.submit 'Update' %> -<% end %> - -<% delete_account_dialog = DialogComponent.new(id: 'delete_account_dialog') - verif_number = Random.rand(10_000..100_000) %> - -
- <%= render ButtonComponent.new(size: :small, class: 'bg-transparent text-red-400 uppercase font-normal px-0 py-0', dialog: delete_account_dialog) do %> - delete account - <% end %> -
- -<%= render delete_account_dialog do |dialog| %> - <%= dialog.with_title do %> - Delete Account - <% end %> - <%= dialog.with_body do %> -
-
- WARNING: Your account cannot be recovered once it has been - deleted. -
-
- Please type delete my account <%= verif_number %> to confirm. -
- - <%= form_with(model: @user, url: settings_delete_account_url, builder: AptosFormBuilder, method: :delete) do |f| %> - - <%= f.hidden_field :verification_number, value: verif_number %> - -
-
- <%= f.text_field :verification_text, autofocus: true, autocomplete: 'off', spellcheck: false, class: 'focus:border-red-400' %> -
-
- <%= f.submit 'Delete', class: 'rounded-lg bg-red-400 w-full text-neutral-900' %> -
-
- - <% end %> - -
- <% end %> -<% end %> diff --git a/ecosystem/platform/server/app/views/shared/_it3_intro.html.erb b/ecosystem/platform/server/app/views/shared/_it3_intro.html.erb deleted file mode 100644 index c89de40f43366..0000000000000 --- a/ecosystem/platform/server/app/views/shared/_it3_intro.html.erb +++ /dev/null @@ -1,10 +0,0 @@ -
    -
  • -
    -
    Read more <%= render(LinkComponent.new(href: 'https://aptoslabs.medium.com/welcome-to-aptos-incentivized-testnet-3-9d7ce888205c', target: '_blank')) { 'Aptos Incentivized Testnet 3 details' } %>.
    -
  • -
  • -
    -
    Please review the <%= render(LinkComponent.new(href: terms_testnet_path)) { 'Aptos Testnet Participation Terms of Use' } %>.
    -
  • -
diff --git a/ecosystem/platform/server/app/views/static_page/careers.html.erb b/ecosystem/platform/server/app/views/static_page/careers.html.erb deleted file mode 100644 index 6eccd759e8409..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/careers.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% content_for(:page_title, 'Careers at Aptos') %> -<% content_for(:page_description, 'Join the Aptos Team - Aptos') %> - -
-
-
-

- Careers -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
- <% @job_departments.sort.each do |department, jobs| %> -
-

<%= department %>

- <% jobs.each do |job| %> - - <% end %> -
- <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/community.html.erb b/ecosystem/platform/server/app/views/static_page/community.html.erb deleted file mode 100644 index 7b7e7679f814e..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/community.html.erb +++ /dev/null @@ -1,103 +0,0 @@ -<% content_for(:page_title, 'Aptos Community') %> -<% content_for(:page_description, 'Aptos Community - A worldwide movement of developers, node operators, educators, and other contributors') %> -
-
-
-

Community

-
-

- Learn, Build, Evolve - Realizing the Aptos vision together. -

-
-
-

- Aptos Community is a worldwide movement of developers, node operators, educators, and other contributors building the safest, most scalable and widely accessible blockchain ecosystem. -

-
- <% if !user_signed_in? %> - <%= render ButtonComponent.new(size: :large, dialog: @login_dialog, class: '') do %> - Join The Movement - <% end %> - <%= render @login_dialog do |dialog| %> - <%= dialog.with_title do %> - Sign in with - <% end %> - <%= dialog.with_body do %> -
- <%= render LoginButtonComponent.new(provider: :discord, size: :large, class: 'w-full') %> - <%= render LoginButtonComponent.new(provider: :google, size: :large, class: 'w-full') %> - <%= render LoginButtonComponent.new(provider: :github, size: :large, class: 'w-full') %> -
- <% end %> - <% end %> - <% end %> -
-
-
-
-
- <% if user_signed_in? %> - <% if current_user.username? %> -
-

Hello, <%= current_user.username %>!

-
- <% end %> - <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -
-
- <%= render IconComponent.new(:discussion, class: 'w-full h-full text-neutral-300 flex-none mb-4 w-10 h-10') %> -

- Discussion Forum -

-

Participate in open discussions across various threads, explore opportunities to collaborate, and get more involved in projects building on Aptos.

-
-
- <%= render ButtonComponent.new(href: 'https://forum.aptoslabs.com', target: '_blank', title: 'Aptos Discussion Forum', scheme: :tertiary, class: '!p-0') do %> - Get Involved - <% end %> -
-
- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -
-
- <%= render IconComponent.new(:discord, class: 'w-full h-full text-neutral-300 flex-none mb-4 w-10 h-10') %> -

- Discord -

-

Join our Discord to chat with us directly, take part in our growing ecosystem, and participate in Move Mondays.

-
-
- <%= render ButtonComponent.new(href: 'https://discord.gg/zTDYBEud7U', target: '_blank', title: 'Aptos on Discord', scheme: :tertiary, class: '!p-0') do %> - Join Us - <% end %> -
-
- <% end %> -
-
- <%= render CardOutlineComponent.new(scheme: :filled, class: 'h-full') do %> -
-
- <%= render IconComponent.new(:aptos, class: 'w-full h-full text-neutral-300 flex-none mb-4 w-10 h-10') %> -

- Incentivized Testnet -

-

The Aptos ecosystem is rewarding node operators who help us prepare to launch a secure, reliable & decentralized network.

-
-
- <%= render ButtonComponent.new(href: incentivized_testnet_path, title: 'Aptos Incentivized Testnet', scheme: :tertiary, class: '!p-0') do %> - Get Started - <% end %> -
-
- <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/currents.html.erb b/ecosystem/platform/server/app/views/static_page/currents.html.erb deleted file mode 100644 index 559cff8f428fd..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/currents.html.erb +++ /dev/null @@ -1,53 +0,0 @@ -<% content_for(:page_title, 'Currents - Latest updates from Aptos') %> -<% content_for(:page_description, 'Read the latest updates from the Aptos team') %> - -
-
-
-

- Currents -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
- <% article = @feed.items.first %> -
-

<%= article.title %>

-
- - - - (<%= time_ago_in_words(article.pubDate) %> ago) -
-
- <%= @article_html %> -
-
- - <% @feed.items.drop(1).each do |article| %> - - <% end %> - <%= render ButtonComponent.new(href: 'https://medium.com/aptoslabs', size: :large, target: '_blank', rel: 'noopener noreferrer') do %> - Follow @aptoslabs on Medium - <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/developers.html.erb b/ecosystem/platform/server/app/views/static_page/developers.html.erb deleted file mode 100644 index aeb8017ba822c..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/developers.html.erb +++ /dev/null @@ -1,229 +0,0 @@ -<% content_for(:page_title, 'Developing on Aptos - Come Build With Us') %> -<% content_for(:page_description, 'The Aptos developer experience is just getting started and we want you to come build with us!') %> -<% content_for(:meta) do %> - - -<% end %> - -
-
-
-
-

- - Aptos Developers - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
-
-

- Devnet is Live! -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
-

- The Aptos developer experience is just getting started and we - want you to come build with us! -

-

- Join our thriving community and dive into our documentation to - start your journey with Aptos. This is an extremely early look - as we want our community to see our entire evolution and help - create something special. -

-

- Start building on Aptos and stay tuned for more updates around - Testnet and Mainnet! -

-
- -
- <%= render ButtonComponent.new(href: 'https://github.com/aptos-labs', size: :large, class: 'w-full', title: 'Aptos on GitHub') do %> - GitHub - <% end %> - <%= render ButtonComponent.new(href: 'https://aptos.dev/', size: :large, class: 'w-full', title: 'Aptos Docs') do %> - Documentation - <% end %> - <%= render ButtonComponent.new(href: 'https://explorer.devnet.aptos.dev/', size: :large, class: 'w-full', title: 'Aptos Explorer') do %> - Explorer - <% end %> - <%= render ButtonComponent.new(href: 'https://discord.gg/aptoslabs', size: :large, class: 'w-full', title: 'Aptos on Discord') do %> - Discord - <% end %> -
-
-
-
-
- -
-
-
-

- Who is already building in Devnet? -

-
-

- We have some amazing companies and projects who are building on - Aptos. Come join them! -

-
- -
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/incentivized_testnet.html.erb b/ecosystem/platform/server/app/views/static_page/incentivized_testnet.html.erb deleted file mode 100644 index 2a235c6c7089e..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/incentivized_testnet.html.erb +++ /dev/null @@ -1,91 +0,0 @@ -<% content_for(:page_title, 'Incentivized Testnet - Ensuring a production-grade Aptos mainnet.') %> -<% content_for(:page_description, 'The Aptos ecosystem is rewarding node operators, developers, content creators, project leaders, and others who help us prepare to launch a secure, reliable & decentralized network.') %> -<% content_for(:meta) do %> - -<% end %> - -
-
-
-

Community

-
-

- Ensuring a production-grade Aptos mainnet. -

-
-
-

- The Aptos ecosystem is rewarding node operators, developers, content creators, project leaders, and others who help us prepare to launch a secure, reliable & decentralized network. -

-
-
-
-
-
-
-
-
- <%= render IconComponent.new(:check, class: 'w-5 stroke-2') %> -
-
-

AIT-1

- <%= render ButtonComponent.new(href: it1_path, title: 'Aptos Incentivized Testnet 1 results', target: 'blank', size: :tiny, scheme: :secondary, class: 'mt-2') do %> - Results - <% end %> -
-
-
-
-
- <%= render IconComponent.new(:check, class: 'w-5 stroke-2') %> -
-
-

AIT-2

- <%= render ButtonComponent.new(href: it2_path, title: 'Aptos Incentivized Testnet 2 results', target: 'blank', size: :tiny, scheme: :secondary, class: 'mt-2') do %> - Results - <% end %> -
-
-
-
-
- <%= render IconComponent.new(:aptos, class: 'w-5 h-5') %> -
-
-

AIT-3

- <%= render ButtonComponent.new(href: it3_path, title: 'Aptos Incentivized Testnet 3', size: :tiny, scheme: :primary, class: 'mt-2') do %> - Register - <% end %> -
-
-
-
-
-
-

AIT-4

-
-
-
-
-
-
-

Aptos Incentivized Testnet 3

-

Aptos Labs remains focused on launching Mainnet to bring the community the safest, fastest and most reliable foundation for building within Web3.

-
- <%= render ButtonComponent.new(href: it3_path, title: 'Aptos Incentivized Testnet 3 details', target: 'blank', size: :large, scheme: :primary, class: '') do %> - Get Started - <% end %> - <%= render ButtonComponent.new(href: 'https://aptoslabs.medium.com/welcome-to-aptos-incentivized-testnet-3-9d7ce888205c', title: 'Aptos Incentivized Testnet 3 details', target: 'blank', size: :large, scheme: :secondary, class: '') do %> - More Details - <% end %> -
-
    -
  • -
    -
    Please review the <%= render(LinkComponent.new(href: terms_testnet_path)) { 'Aptos Testnet Participation Terms of Use' } %>.
    -
  • -
-
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/privacy.html.erb b/ecosystem/platform/server/app/views/static_page/privacy.html.erb deleted file mode 100644 index 0e4ca45e7e025..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/privacy.html.erb +++ /dev/null @@ -1,352 +0,0 @@ -<% content_for(:page_title, 'Aptos Privacy Policy') %> -<% content_for(:page_description, 'Aptos Privacy Policy') %> - -
-
-
-

- Privacy Policy -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
-

Latest update:  August 2022

-

- This privacy policy ("Privacy Policy") explains how Aptos Labs ("Aptos," - "our," "we," or "us") collects, uses, and discloses information about you. - This Privacy Policy applies when you visit aptoslabs.com, use the Aptos Protocol, contact our customer service team, engage with - us on social media, or otherwise interact with us (the - “Services”).  -

-

- We may change this Privacy Policy from time to time. If we make changes, - we will notify you by revising the date at the top of this policy and, in - some cases, we may provide you with additional notice (such as adding a - statement to our Services or sending you a notification). We encourage you - to review this Privacy Policy regularly to stay informed about our - information practices and the choices available to you. -

-

COLLECTION OF INFORMATION

-

Information You Provide to Us

-

- The categories of personal information we collect depend on how you - interact with Aptos and its Services. Aptos collects information that you - provide us, information we obtain automatically when you use our Services - and information from third-party sources and other organizations. The - types of personal information we may collect from you include name, email - address and any other information you choose to provide.  -

-

Information We Collect Automatically When You Interact with Us

-

- Aptos may collect certain information automatically when you use our - Services. Examples of this information include cookie identifiers, - internet protocol (IP) address, mobile carrier, MAC address, user - settings, mobile ad identifiers, Internet service provider, browser or - device information, location information and metadata about information - you provide Aptos. We may also automatically collect information - pertaining to your use of our Services. Examples of this information may - be related to your pages visited, links clicked, content interacted with, - duration and frequency of your activities and other information about your - use of our Services. -

-

Information We Collect from Other Sources

-

- We obtain information from third-party sources. For example, we may - collect information about you from identity verification services, data - analytics providers, and mailing list providers (if applicable). - Additionally, our Services may allow you to provide information about your - family or friends through our referral service, which allows you to - forward or share certain information with Aptos. Please share information - only for people that you know.   -

-

USE OF INFORMATION

-

We use the information we collect to: 

-
    -
  • Provide, maintain, and improve our products and services;
  • -
  • - Process transactions and send you related information, including - confirmations, receipts, invoices, customer experience surveys, and - recall notices; -
  • -
  • Personalize and improve your experience on our Services;
  • -
  • - Send you technical notices, security alerts, and support and - administrative messages; -
  • -
  • - Respond to your comments and questions and provide customer service; -
  • -
  • - Communicate with you about products, services, and events offered by - Aptos and others and provide news and information that we think will - interest you; -
  • -
  • - Monitor and analyze trends, usage, and activities in connection with our - Services; -
  • -
  • - Facilitate contests, sweepstakes, and promotions and process and deliver - entries and rewards; -
  • -
  • - Detect, investigate, and prevent security incidents and other malicious, - deceptive, fraudulent, or illegal activity and protect the rights and - property of Aptos and others; -
  • -
  • Debug to identify and repair errors in our Services;
  • -
  • Tailor and provide you with content and advertisements; 
  • -
  • Comply with our legal and financial obligations; and
  • -
  • - Carry out any other purpose described to you at the time the information - was collected. -
  • -
-

SHARING OF INFORMATION

-

- We share personal information in the following circumstances or as - otherwise described in this policy: -

-
    -
  • - We share personal information with vendors, service providers, and - consultants that need access to personal information in order to perform - services for us, such as companies that assist us with web hosting, - shipping and delivery, payment processing, fraud prevention, customer - service, and marketing and advertising. -
  • -
  • - We may disclose personal information if we believe that disclosure is in - accordance with, or required by, any applicable law or legal process, - including lawful requests by public authorities to meet national - security or law enforcement requirements. -
  • -
  • - We may share personal information if we believe that your actions are - inconsistent with our user agreements or policies, if we believe that - you have violated the law, or if we believe it is necessary to protect - the rights, property, and safety of Aptos, our users, the public, or - others. -
  • -
  • - We share personal information with our lawyers and other professional - advisors where necessary to obtain advice or otherwise protect and - manage our business interests. -
  • -
  • - We may share personal information in connection with, or during - negotiations concerning, any merger, sale of company assets, financing, - or acquisition of all or a portion of our business by another company. -
  • -
  • - We share personal information with your consent or at your direction. -
  • -
-

- We also share aggregated or de-identified information that cannot - reasonably be used to identify you. -

-

ANALYTICS

-

- We allow others to provide analytics services on our behalf across the web - and in mobile apps. These entities may use cookies, web beacons, device - identifiers, and other technologies to collect information about your use - of our Services and other Services and applications, including your IP - address, web browser, mobile network information, pages viewed, time spent - on pages or in mobile apps, links clicked, and conversion information. - This information may be used by Aptos and others to, among other things, - analyze and track data, determine the popularity of certain content, and - better understand your online activity. Some examples of our analytics - partners include: -

-
    -
  • - Google Analytics. For more information about how Google uses your data - (including for its own purposes, e.g., for profiling or linking it to - other data), please visit - Google Analytics Privacy Policy. -
  • -
  • - Sentry. For more information about how Sentry uses your data, please - visit the - Sentry Privacy Policy. -
  • -
  • - Mailchimp. To learn about how Mailchimp uses your data, please visit the - Intuit Privacy Statement.   -
  • -
  • - Stitch. To learn more about how Stich uses your data, please go to their - privacy statement. -
  • -
-

SECURITY OF YOUR INFORMATION

-

- Aptos takes steps designed to treat your information securely and in - accordance with this Privacy Policy. However, there is no guarantee behind - the security of any information you provide us. As such, Aptos does not - accept liability for any unauthorized disclosure. If we learn of any - authorized disclosure of your information, Aptos may attempt to notify you - electronically or my mail by posting a notice on our Services. -

-

TRANSFER OF INFORMATION TO THE UNITED STATES AND OTHER COUNTRIES

-

- Aptos operates and engages service providers in various jurisdictions. - Therefore, we and our service providers may transfer your personal - information to, or store or access it in, jurisdictions that may not - provide levels of data protection that are equivalent to those of your - home jurisdiction. We will take steps to ensure that your personal - information receives an adequate level of protection in the jurisdictions - in which we process it. -

-

PETRA WALLET

-

- You may access and use the Petra Wallet, which is a digital wallet created - and operated by Aptos. When setting up an Account within Aptos, you will be - responsible for keeping your own account secrets, which may include - twelve-word seed phrases (“Mnemonic(s)”), your private keys, an account file, - or other locally stored secret information. Aptos encrypts this information - locally with a password you provide. -

-

YOUR CALIFORNIA PRIVACY RIGHTS

-

- The California Consumer Privacy Act or "CCPA" (Cal. Civ. Code § - 1798.100 et seq.) affords consumers residing in California certain - rights with respect to their personal information. If you are a California - resident, this section applies to you. -

-

- Under the CCPA, you have the right to request to know: (i) the categories - of personal information we have collected about you in the last 12 months; - (ii) the specific pieces of personal information we have about you; (iii) - the categories of sources from which that personal information was - collected; (iv) the categories of your personal information that we sold - or disclosed in the last 12 months; (v) the categories of third parties to - whom your personal information was sold or disclosed in the last 12 - months; and (vi) the purpose for collecting and selling your personal - information. These rights are subject to limitations as described in the - CCPA. Aptos may deny your request if we need to do so to comply with our - legal rights or obligations. -

-

- We will not discriminate against any consumer for exercising their CCPA - rights. -

-

- You may exercise these rights yourself or you may designate an authorized - agent to make these requests on your behalf. To protect your information, - we may need to verify your identity before processing your request, - including by collecting additional information to verify your identity, - such as government issued identification documents. Aptos will not fulfill - your request unless you have provided sufficient information for us to - reasonably verify you are the individual about whom we collected personal - information. We will only use the personal information provided in the - verification process to verify your identity or authority to make a - request and to track and document request responses, unless you initially - provided the information for another purpose. When we verify your - agent’s request, we may verify your identity and request a signed - document from your agent that authorizes your agent to make the request on - your behalf. To protect your personal information, we reserve the right to - deny a request from an agent that does not submit proof that they have - been authorized by you to act on their behalf. -

-

- If you would like to exercise any of these rights, please contact us at - the email in the “Contact us” section below. -

-

ADDITIONAL DISCLOSURES FOR INDIVIDUALS IN EUROPE

-

- If you are located in the European Economic Area ("EEA"), the United - Kingdom, or Switzerland, you have certain rights and protections under the - law regarding the processing of your personal data, and this section - applies to you. -

-

Legal Basis for Processing

-

- When we process your personal data, we will do so in reliance on the - following lawful bases: -

-
    -
  • - To perform our responsibilities under our contract with you (e.g., - processing payments for and providing the products and services you - requested). -
  • -
  • - When we have a legitimate interest in processing your personal data to - operate our business or protect our interests (e.g., to provide, - maintain, and improve our products and services, conduct data analytics, - and communicate with you). -
  • -
  • - To comply with our legal obligations (e.g., to maintain a record of your - consents and track those who have opted out of communications). -
  • -
  • - When we have your consent to do so (e.g., when you opt in to receive - communications from us). When consent is the legal basis for our - processing of your personal data, you may withdraw such consent at any - time. -
  • -
-

Data Retention

-

- We store other personal data for as long as necessary to carry out the - purposes for which we originally collected it and for other legitimate - business purposes, including to meet our legal, regulatory, or other - compliance obligations. -

-

Data Subject Requests

-

- Subject to certain limitations, you have the right to request access to - the personal data we hold about you and to receive your data in a portable - format, the right to ask that your personal data be corrected or erased, - and the right to object to, or request that we restrict, certain - processing. If you would like to exercise any of these rights, please - contact us at - terms@aptoslabs.com.  -

-

Questions or Complaints

-

- If you have a concern about our processing of personal data that we are - not able to resolve, you have the right to lodge a complaint with the Data - Protection Authority where you reside. Contact details for your Data - Protection Authority can be found using the links below: -

-

- For individuals in the EEA: https://edpb.europa.eu/about-edpb/board/members_en -

-

- For individuals in the UK: https://ico.org.uk/global/contact-us/ -

-

- For individuals in Switzerland: https://www.edoeb.admin.ch/edoeb/en/home/the-fdpic/contact.html -

-

CONTACT US

-

- If you have any questions about this Privacy Policy or would like to - exercise your rights hereunder, please contact us at - terms@aptoslabs.com - or Aptos Labs, 745 Emerson St, Palo Alto, CA 94301. -

-
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/root.html.erb b/ecosystem/platform/server/app/views/static_page/root.html.erb deleted file mode 100644 index 63a2606631ec9..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/root.html.erb +++ /dev/null @@ -1,64 +0,0 @@ -
-
-
-
-

- <%= render IconComponent.new(:aptos_word, class: 'fill-white w-5/12 md:w-3/12') %> - Aptos - Building the safest and most scalable Layer 1 blockchain -

- - <%= render DividerComponent.new(scheme: :primary, class: 'my-6') %> - -
-
-

- Building the safest and most scalable Layer 1 blockchain. -

-
-
-
-
-
-
- <%= render CardOutlineComponent.new do %> -

- Community -

- <%= render DividerComponent.new(class: 'mb-4') %> -

- Support the Aptos Vision and Join Our Community. -

- <%= render ButtonComponent.new(href: community_path, class: 'w-full mt-auto') do %> - Join - <% end %> - <% end %> - - <%= render CardOutlineComponent.new do %> -

- Explorer -

- <%= render DividerComponent.new(class: 'mb-4') %> -

- Scan Transactions and Accounts on the Network. -

- <%= render ButtonComponent.new(href: 'https://explorer.devnet.aptos.dev/', class: 'w-full mt-auto') do %> - Explore - <% end %> - <% end %> - - <%= render CardOutlineComponent.new do %> -

- Documentation -

- <%= render DividerComponent.new(class: 'mb-4') %> -

- Discover Technical Concepts and Tutorials. -

- <%= render ButtonComponent.new(href: 'https://aptos.dev/', class: 'w-full mt-auto') do %> - Discover - <% end %> - <% end %> -
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/terms.html.erb b/ecosystem/platform/server/app/views/static_page/terms.html.erb deleted file mode 100644 index be3dbe052adb3..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/terms.html.erb +++ /dev/null @@ -1,667 +0,0 @@ -<% content_for(:page_title, 'Aptos Terms of Use') %> -<% content_for(:page_description, 'Aptos Terms of Use') %> - -
-
-
-

- Terms of Use -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
-

Latest update:  August 2022

-

- Please read these terms carefully and keep a copy of them for your - reference. Please also note that there may be specific terms or conditions - applicable to you as a user in a given jurisdiction, as detailed below. -

-

- Please refer to our Privacy Policy, available at - https://aptoslabs.com/privacy/ - for information about how we collect, use, share and otherwise process - information about you. -

-

AGREEMENT TO TERMS

-

- This Terms of Service (“Terms”) is a binding contract between - you, an individual user or site visitor, whether personally or on behalf - of an entity (“user,” “you,” “your”) - and Aptos Labs ( “Aptos,” “we,” “us” - or “our”) concerning use of  Aptos’s services (the - “Service”), including the www.aptoslabs.com website as well as - any other media form, media channel, or mobile website related, linked, or - otherwise connected thereto (collectively, the “Site”). - Currently, Aptos maintains and operates - aptoslabs.com - as a portal for news, information, and updates about the Aptos protocol or - blockchain (the “Aptos Network”) and the Aptos ecosystem. For - the avoidance of doubt, Aptos does not control the Aptos Network and - cannot control activity and data on the Aptos Network, the activities of - persons who develop and use applications on the Network, the validation of - transactions on the Aptos Network, or use of the Aptos Network. The Aptos - Network is an open-source protocol that is maintained and processed by - Aptos Network validators across the globe. -

-

- BY ACCESSING OR USING THE SERVICE, YOU AGREE THAT YOU HAVE READ, - UNDERSTOOD, AND AGREE TO BE BOUND BY THE TERMS. IF YOU DO NOT AGREE, - PLEASE DO NOT USE THE SERVICE OR SITE. -

-

- Supplemental terms and conditions or documents that may be posted on the - Site from time to time are hereby expressly incorporated herein by - reference. We reserve the right, in our sole discretion, to make changes - or modifications to these Terms at any time and for any reason. We will - alert you about any changes by updating the “Last updated” - date of the Terms, and you waive any right to receive specific notice of - each such change. It is your responsibility to periodically review the - Terms to stay informed of updates. You will be subject to, and will be - deemed to have been made aware of and to have accepted, the changes in any - revised Terms by your continued use of the Service after the date such - revised Terms is posted. -

-

- The information provided on the Site is not intended for distribution to - or use by any person or entity in any jurisdiction or country where such - distribution or use would be contrary to law or regulation or which would - subject us to any registration requirement within such jurisdiction or - country. Accordingly, those persons who choose to access the Site from - other locations do so on their own initiative and are solely responsible - for compliance with local laws, if and to the extent local laws are - applicable. -

-

- The Service is intended for users who are at least 18 years old. You agree - that by using the Site and the Service you are at least 18 years of age, - or accessing the Service under the supervision of a parent or guardian, - and you are legally able to enter into a contract. If you are a parent or - legal guardian of a user under the age of 18 (or the age of legal - majority), you agree to be fully responsible for the acts or omissions of - such user in relation to the Service. If you use the Service on behalf of - another person or entity, (a) all references to “you” - throughout the Terms will include that person or entity, (b) you represent - that you are authorized to accept these Terms on that person’s or - entity’s behalf, and (c) in the event you or the person or entity - violates these Terms, the person or entity agrees to be responsible to us. -

-

- PLEASE NOTE: THE “DISPUTE RESOLUTION” SECTION OF THIS TERMS - CONTAINS AN ARBITRATION CLAUSE THAT REQUIRES DISPUTES TO BE ARBITRATED ON - AN INDIVIDUAL BASIS, AND - PROHIBITS CLASS ACTION CLAIMS. IT AFFECTS - HOW DISPUTES BETWEEN YOU AND APTOS ARE RESOLVED. BY ACCEPTING THIS TERMS, - YOU AGREE TO BE BOUND BY THIS ARBITRATION PROVISION. PLEASE READ IT - CAREFULLY. -

-

TERMINATION OR SUSPENSION OF SERVICES

-

- The Service may only be used by you in compliance with the Terms. You may - not modify, alter, reproduce, or distribute the Service. You may not - directly rent, lease, lend, sell, or redistribute the Service. You may not - copy, decompile, reverse engineer, disassemble, attempt to derive the - source code of, modify, or create derivative works of any portion of the - Service, any updates, or any part thereof (except as and only to the - extent any foregoing restriction is prohibited by applicable law), nor - attempt to disable or circumvent any security or other technological - measure designed to protect the Service or any content available through - the Service. If you breach the Terms, then you may be subject to - prosecution and damages, as well as liability for infringement of - intellectual property rights, and denial of access to the Service. -

-

- WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS, WE RESERVE THE RIGHT - TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO - AND USE OF THE SERVICE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY - PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR - BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THIS - Terms OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR - PARTICIPATION IN THE SITE AT ANY TIME, WITHOUT WARNING, IN OUR SOLE - DISCRETION. If we terminate or suspend your access to the Site for any - reason, you are prohibited from attempting to access the Site under your - name, a fake or borrowed name, or the name of any third party, even if you - may be acting on behalf of the third party. In addition to terminating or - suspending your access, we reserve the right to take appropriate legal - action, including without limitation pursuing civil, criminal, and - injunctive redress. -

-

CONTENT THROUGH THE SERVICES

-

- You are responsible for your use of the Services and for any content you - provide, You should only provide content that you are comfortable sharing - with others. Any use or reliance on any content or materials posted via - the Services or obtained by you through the Services is at your own risk. - We do not endorse, support, represent or guarantee the completeness, - truthfulness, accuracy, or reliability of any content or communications - posted via the Services or endorse any opinions expressed via the - Services. You understand that by using the Services, you may be exposed to - content that might be offensive, harmful, inaccurate or otherwise - inappropriate, or in some cases, postings that have been mislabeled or are - otherwise deceptive. All Content is the sole responsibility of the person - who originated such content. We may not monitor or control the content - posted via the Services and, we cannot take responsibility for such - content. We reserve the right to remove content that violates these terms - or we otherwise deem inappropriate to share on our website, including for - example, copyright or trademark violations or other intellectual property - misappropriation, impersonation, unlawful conduct, indecent material or - harassment. If you believe that your content has been copied in a way that - constitutes copyright infringement, please report this to our designated - copyright agent at: -

- -
- Aptos Labs
- Attn: Copyright Agent
- 745 Emerson St.
- Palo Alto, CA 94301

- Email: - copyright@aptoslabs.com
-
- -

- You retain your rights to any content you submit, post or display on or - through the Services. By submitting, posting or displaying content on or - through the Services, you grant us a worldwide, non-exclusive, - royalty-free license (with the right to sublicense) to use, copy, - reproduce, process, adapt, modify, publish, transmit, display and - distribute such content in any and all media or distribution methods now - known or later developed (for clarity, these rights include, for example, - curating, transforming, and translating). This license authorizes us to - make your content available to the rest of the world and to let others do - the same. You represent and warrant that you have, or have obtained, all - rights, licenses, consents, permissions, power and/or authority necessary - to grant the rights granted herein for any content that you submit, post - or display on or through the Services. You agree that such content will - not contain material subject to copyright or other proprietary rights, - unless you have necessary permission or are otherwise legally entitled to - post the material and to grant Aptos the license described above. -

-

TESTNET

-

- (a) No Monetary Value. In your use of the Testnet, you may - accumulate “Testnet Tokens,” such as through the - Testnet faucet, which are not, and shall never convert to or accrue to - become mainnet tokens or any other tokens or virtual assets. Testnet - Tokens are virtual items with no monetary value. Testnet Tokens do not - constitute any currency or property of any type and are not redeemable, - refundable, or eligible for any fiat or virtual currency or anything else - of value. Testnet Tokens are not transferable between users outside of the - Testnet, and you may not attempt to sell, trade, or transfer any Testnet - Tokens outside of the Testnet, or obtain any manner of credit using any - Testnet Tokens. Any attempt to sell, trade, or transfer any Testnet Tokens - outside of the Testnet will be null and void. -

-

- (b) Modification.Aptos may, in its sole discretion, decide to delete, wipe - or otherwise remove the Testnet at any time without notice, including, - without limitation, the modification of the presence, amounts, or any - other conditions applicable to the Testnet Tokens, without any liability - to you or other Testnetet users. Aptos does not guarantee that Testnet - Tokens will continue to be offered for a specific length of time and you - may not rely upon the continued availability of any Testnet Tokens. If the - Testnet expires, you acknowledge and agree that your access to and use of - your Testnet Tokens will be removed, and all accrued Testnet Tokens will - be deleted from the Testnet system. Testnet Tokens will not be converted - into any future rewards offered by Aptos. -

-

PROHIBITED LOCATIONS

-

- Aptos is not offered to anyone who is a “Restricted Person.” - Restricted Persons are those who are subject to sanctions administered or - enforced by any country or government or otherwise designated on any list - of prohibited or restricted parties (including but not limited to the - lists maintained by the United Nations Security Council, the U.S. - Government, the European Union or its Member States, or other applicable - government authority) or a citizen or organization or resident in a - country or territory that is the subject of country-wide or territory-wide - sanctions (including, without limitation, Cuba, Democratic People’s - Republic of Korea, the Crimea, Donetsk, and Luhansk regions, Iran, or - Syria). For clarity, if you are a Restricted Person, you are prohibited - from using the Service.  -

-

PROHIBITED ACTIVITIES

-

- You may not access or use the Service for any purpose other than that for - which we make the Service available. The Service may not be used in - connection with any commercial endeavors except those that are - specifically endorsed or approved by us. -

-

As a user of the Service, you agree not to:

-
    -
  1. - Systematically retrieve data or other content from the Service to create - or compile, directly or indirectly, a collection, compilation, database, - or directory without written permission from us. -
  2. -
  3. - Make any unauthorized use of the Service, including collecting usernames - and/or email addresses of users by electronic or other means for the - purpose of sending unsolicited email, or creating user accounts by - automated means or under false pretenses. -
  4. -
  5. - Circumvent, disable, or otherwise interfere with security-related - features of the Service, including features that prevent or restrict the - use or copying of any content or enforce limitations on the use of the - Service and/or the content contained therein. -
  6. -
  7. Engage in unauthorized framing of or linking to the Site.
  8. -
  9. - Trick, defraud, or mislead us and other users, especially in any attempt - to learn sensitive account information such as user passwords. -
  10. -
  11. - Make improper use of our support services or submit false reports of - abuse or misconduct. -
  12. -
  13. - Engage in any automated use of the system, such as using scripts to send - comments or messages, or using any data mining, robots, or similar data - gathering and extraction tools. -
  14. -
  15. - Interfere with, disrupt, or create an undue burden on the Site or the - networks or services connected to the Site. -
  16. -
  17. Attempt to impersonate another user or person.
  18. -
  19. - Use any information obtained from the Site in order to harass, abuse, or - harm another person. -
  20. -
  21. - Use the Service as part of any effort to compete with us or otherwise - use the Service and/or the content for any revenue-generating endeavor - or commercial enterprise. -
  22. -
  23. - Decipher, decompile, disassemble, or reverse engineer any of the - software comprising or in any way making up a part of the Site. -
  24. -
  25. - Harass, annoy, intimidate, or threaten any of our employees or agents - engaged in providing any portion of the Service to you. -
  26. -
  27. - Attempt to bypass any measures of the Site designed to prevent or - restrict access to the Site, or any portion of the Site. -
  28. -
  29. - Delete the copyright or other proprietary rights notice from any - content. -
  30. -
  31. - Copy or adapt the Site’s software, including but not limited to - Flash, PHP, HTML, JavaScript, or other code. -
  32. -
  33. - Upload or transmit (or attempt to upload or to transmit) viruses, Trojan - horses, or other material, including excessive use of capital letters - and spamming (continuous posting of repetitive text), that interferes - with any party’s uninterrupted use and enjoyment of the Service or - modifies, impairs, disrupts, alters, or interferes with the use, - features, functions, operation, or maintenance of the Service. -
  34. -
  35. - Upload or transmit (or attempt to upload or to transmit) any material - that acts as a passive or active information collection or transmission - mechanism, including without limitation, clear graphics interchange - formats (“gifs”), 1×1 pixels, web bugs, cookies, or - other similar devices (sometimes referred to as “spyware” or - “passive collection mechanisms” or “pcms”). -
  36. -
  37. - Except as may be the result of standard search engine or Internet - browser usage, use, launch, develop, or distribute any automated system, - including without limitation, any spider, robot, cheat utility, scraper, - or offline reader that accesses the Site, or using or launching any - unauthorized script or other software. -
  38. -
  39. - Disparage, tarnish, distribute hate speech/explicit content or otherwise - harm, in our opinion, us, the Service and/or other users of the Service. -
  40. -
  41. - Copy, reproduce, distribute, publicly perform or publicly display all or - portions of our Service, except as expressly permitted by us or our - licensors. -
  42. -
  43. - Modify our Service, remove any proprietary rights notices or markings, - or otherwise make any derivative works based upon our Service. -
  44. -
  45. - Use VPN software or any other tools to circumvent any restrictions that - apply to the use of Aptos. -
  46. -
  47. - Infringe any patent, trademark, trade secret, copyright or other - intellectual or proprietary right of Aptos or any third party. -
  48. -
  49. - Be listed on any sanctions list or equivalent maintained by the United - States government.  -
  50. -
  51. - Use the Service in a manner inconsistent with any applicable laws or - regulations. -
  52. -
-

SITE MANAGEMENT

-

- We reserve the right, but not the obligation, to: (1) monitor the Site for - violations of this Terms; (2) take appropriate legal action against anyone - who, in our sole discretion, violates the law or this Terms, including - without limitation, reporting such user to law enforcement authorities; - (3) in our sole discretion and without limitation, notice, or liability, - to remove from the Site or otherwise disable all files and content that - are excessive in size or are in any way burdensome to our systems; and (4) - otherwise manage the Site in a manner designed to protect our rights and - property and to facilitate the proper functioning of the Site. -

-

TRADEMARKS

-

- “Aptos” and our logos, our product or service names, our - slogans and the look and feel of the Service are trademarks of Aptos and - may not be copied, imitated or used, in whole or in part, without our - prior written permission, which may be obtained by emailing - terms@aptoslabs.com. All other trademarks, registered trademarks, product names and company - names or logos mentioned on the Service are the property of their - respective owners. Reference to any products, services, processes or other - information by trade name, trademark, manufacturer, supplier or otherwise - does not constitute or imply endorsement, sponsorship or recommendation by - us. -

-

- Governing Law and Forum Choice. These Terms and any action related - thereto will be governed by the U.S. Federal Arbitration Act, federal - arbitration law, and the laws of the State of California, without regard - to its conflict of laws provisions. Except as otherwise expressly set - forth in the “Dispute Resolution” section below, the exclusive - jurisdiction for all Disputes (defined below) that you and Aptos are not - required to arbitrate will be the state and federal courts located in the - county of Santa Clara, California, and you and Aptos each waive any - objection to jurisdiction and venue in such courts. -

-

DISPUTE RESOLUTION

-

- **Please read the following section carefully because it requires you to - arbitrate certain disputes and claims with Aptos and limits the manner in - which you can seek relief from us. No class or representative actions or - arbitrations are allowed under this arbitration provision. **In addition, - arbitration precludes you from suing in court or having a jury trial. - **(a) Mandatory Arbitration of Disputes. (a) We each agree that any - dispute, claim or controversy arising out of or relating to these Terms or - the breach, termination, enforcement, interpretation or validity thereof - or the use of the Interface (collectively, “Disputes”) - will be resolved solely by binding, individual arbitration and not in - a class, representative or consolidated action or proceeding. You and - Aptos agree that the U.S. Federal Arbitration Act governs the - interpretation and enforcement of these Terms, and that you and Aptos are - each waiving the right to a trial by jury or to participate in a class - action. This arbitration provision shall survive termination of these - Terms. -

-

- (b) Exceptions. As limited exceptions to the section above: (i) we - both may seek to resolve a Dispute in small claims court if it qualifies; - and (ii) we each retain the right to seek injunctive or other equitable - relief from a court to prevent (or enjoin) the infringement or - misappropriation of our intellectual property rights. -

-

- (c) Conducting Arbitration and Arbitration Rules. The arbitration - will be conducted by the American Arbitration Association - (“AAA”) under its Consumer Arbitration Rules (the “AAA - Rules”) then in effect, except as modified by these Terms. The AAA - Rules are available at www.adr.org. A party who wishes to start arbitration must submit a written Demand - for Arbitration to AAA and give notice to the other party as specified in - the AAA Rules. The AAA provides a form Demand for Arbitration at www.adr.org. The place of arbitration shall be Palo Alto, California. The language - of arbitration shall be English. The parties agree that the arbitrator - shall have exclusive authority to decide all issues relating to the - interpretation, applicability, enforceability and scope of this - arbitration agreement. -

-

- (d) Arbitration Costs. Payment of all filing, administration and - arbitrator fees will be governed by the AAA Rules, and we won’t seek - to recover the administration and arbitrator fees we are responsible for - paying, unless the arbitrator finds your Dispute frivolous. If we prevail - in arbitration we’ll pay all of our attorneys’ fees and costs - and won’t seek to recover them from you. If you prevail in - arbitration you will be entitled to an award of attorneys’ fees and - expenses to the extent provided under Applicable Law. -

-

- (e) Injunctive and Declaratory Relief. Except as provided above, the - arbitrator shall determine all issues of liability on the merits of any - claim asserted by either party and may award declaratory or injunctive - relief only in favor of the individual party seeking relief and only to - the extent necessary to provide relief warranted by that party’s - individual claim. To the extent that you or we prevail on a claim and seek - public injunctive relief (that is, injunctive relief that has the primary - purpose and effect of prohibiting unlawful acts that threaten future - injury to the public), the entitlement to and extent of such relief must - be litigated in a civil court of competent jurisdiction and not in - arbitration. The parties agree that litigation of any issues of public - injunctive relief shall be stayed pending the outcome of the merits of any - individual claims in arbitration. -

-

- (f) Class Action Waiver. YOU AND APTOS AGREE THAT EACH MAY BRING - CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL CAPACITY, AND NOT - AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR REPRESENTATIVE - PROCEEDING.  Further, if the parties’ Dispute is resolved - through arbitration, the arbitrator may not consolidate another - person’s claims with your claims, and may not otherwise preside over - any form of a representative or class proceeding. If this specific - provision is found to be unenforceable, then the entirety of this Dispute - Resolution section shall be null and void. -

-

- (g) Severability. With the exception of any of the provisions above - (“Class Action Waiver”), if an arbitrator or court of - competent jurisdiction decides that any part of these Terms is invalid or - unenforceable, the other parts of these Terms will still apply. -

-

UPDATES

-

- There may be information on the Site that contains typographical errors, - inaccuracies, or omissions, including descriptions, pricing, availability, - and various other information. We reserve the right to correct any errors, - inaccuracies, or omissions and to change or update the information on the - Site at any time, without prior notice. Aptos does not warrant that the - content will be uninterrupted or error free or free of computer viruses, - contaminants or other harmful items. -

-

DISCLAIMER

-

- THE SITE AND SERVICE IS PROVIDED ON AN “AS-IS” AND - “AS-AVAILABLE” BASIS. TO THE MAXIMUM EXTENT PERMITTED BY LAW, - APTOS WILL NOT BE LIABLE FOR ANY DAMAGES OF ANY KIND ARISING FROM THE USE - OF THE SITE OR SERVICE, INCLUDING, BUT NOT LIMITED TO INDIRECT, - INCIDENTAL, PUNITIVE, EXEMPLARY, SPECIAL OR CONSEQUENTIAL DAMAGES, EVEN IF - WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. YOU AGREE THAT - YOUR USE OF THE SITE AND SERVICE WILL BE AT YOUR SOLE RISK. APTOS IS NOT - RESPONSIBLE FOR ANY DAMAGES OR LOSSES THAT RESULT FROM YOUR USE OF THE - SERVICE, INCLUDING, BUT NOT LIMITED TO, YOUR USE OR INABILITY TO USE THE - SERVICE; ANY CHANGES TO OR INACCESSIBILITY OR TERMINATION OF THE SERVICE; - ANY DELAY, FAILURE, UNAUTHORIZED ACCESS TO, OR ALTERATION OF ANY - TRANSMISSION OR DATA; ANY TRANSACTION OR AGREEMENT ENTERED INTO THROUGH - THE SERVICE; ANY ACTIVITIES OR COMMUNICATIONS OF THIRD PARTIES; OR ANY - DATA OR MATERIAL FROM A THIRD PERSON ACCESSED ON OR THROUGH THE SERVICES. - WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR - COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES - LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR - ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) - PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING - FROM YOUR ACCESS TO AND USE OF THE SITE OR SERVICE, (3) ANY UNAUTHORIZED - ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL - INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY - INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY - BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR - THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN - ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED - AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE - MADE AVAILABLE VIA THE SITE. -

-

- IF YOU ARE DISSATISFIED WITH THE SERVICE, YOU AGREE THAT YOUR SOLE AND - EXCLUSIVE REMEDY SHALL BE FOR YOU TO DISCONTINUE YOUR USE OF THE SERVICE. - SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL - OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION AND EXCLUSIONS MAY NOT - APPLY TO YOU. -

-

- Aptos may link to products and services offered by third parties through - the Service. These third-party products and services are not offered by - Aptos and Aptos is not responsible for any damages or losses that you - might incur as a result of your use or purchase of these products and - services. -

-

- You shall and hereby do waive California Civil Code Section 1542 or any - other similar law of any jurisdiction, which says in substance: “A - general release does not extend to claims which the creditor does not know - or suspect to exist in his favor at the time of executing the release, - which, if known by him must have materially affected his settlement with - the debtor.” Some jurisdictions do not allow the exclusion of - implied warranties, so the above exclusion may not apply to you. You may - have other rights which vary from jurisdiction to jurisdiction. -

-

INDEMNIFICATION

-

- You hereby agree to defend, indemnify, and hold Aptos harmless from and - against any loss, damage, liability, claim, or demand, including - reasonable attorneys’ fees and expenses, made by any third party due - to or arising out of: (1) use of the Service; (2) breach of these Terms; - (3) any breach of your representations and warranties set forth in these - Terms; (4) your violation of the rights of a third party, including but - not limited to intellectual property rights; (5) any overt harmful act - toward any other user of the Service with whom you connected via the - Service; or (6) any breach of, or failure to comply with, applicable law. - Notwithstanding the foregoing, we reserve the right, at your expense, to - assume the exclusive defense and control of any matter for which you are - required to indemnify us, and you agree to cooperate, at your expense, - with our defense of such claims. We will use reasonable efforts to notify - you of any such claim, action, or proceeding which is subject to this - indemnification upon becoming aware of it. -

-

MODIFYING AND TERMINATING OUR SERVICE

-

- We reserve the right to modify our Service or to suspend or stop providing - all or portions of our Service at any time. You also have the right to - stop using our Service at any time. We are not responsible for any loss or - harm related to your inability to access or use our Service. -

-

USER DATA

-

- Although we perform regular routine backups of data, you are solely - responsible for all data that you transmit or that relates to any activity - you have undertaken using the Site. You agree that we shall have no - liability to you for any loss or corruption of any such data, and you - hereby waive any right of action against us arising from any such loss or - corruption of such data. -

-

- ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES -

-

- You agree and consent to receive disclosures and communications from us - regarding our services (“Communications”), including, but not - limited to: -

-
    -
  • Terms and conditions of service, and amendments thereto;
  • -
  • Privacy policies and notices, and amendments thereto;
  • -
  • Client agreements and receipts;
  • -
  • Legal and regulatory disclosures and communications; and
  • -
  • Customer service communications.
  • -
-

- We may provide Communications to you by email or by making them accessible - on the Site or through email (including via “hyperlinks” - provided online and in emails). We may always, in our sole discretion, - provide you with any Communication via paper. -

-

- Visiting the Site, sending us emails, and completing online forms - constitute Communications. You consent to receive Communications, and you - agree that all agreements, notices, disclosures, and other communications - we provide to you electronically, via email and on the Site, satisfy any - legal requirement that such communication be in writing. YOU HEREBY AGREE - TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, - AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF - TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby - waive any rights or requirements under any statutes, regulations, rules, - ordinances, or other laws in any jurisdiction which require an original - signature or delivery or retention of non-electronic records, or to - payments or the granting of credits by any means other than electronic - means. -

-

Withdrawal of Consent

-

- You may withdraw your consent to receive Communications under this Terms - by contacting us at - terms@aptoslabs.com. We will process your request to withdraw your consent to receive - electronic Communications in a reasonable time. After we process your - request, your access and use of the Service will terminate. -

-

Requesting Paper Copies

-

- You may request that we mail a paper copy of any electronic Communication - by contacting us at - terms@aptoslabs.com. We may charge you fees associated with processing and mailing your - request. We will send a copy of the Communication to you within a - reasonable timeframe. -

-

Termination and Changes

-

- We reserve the right, in our sole discretion, to discontinue the provision - of your Communications, or to terminate or change the terms and conditions - on which we provide Communications. We will provide you notice of such - termination or change as required by law. -

-

CALIFORNIA USERS AND RESIDENTS

-

- If any complaint with us is not satisfactorily resolved, you can contact - the Complaint Assistance Unit of the Division of Consumer Services of the - California Department of Consumer Affairs in writing at 1625 North Market - Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) - 952-5210 or (916) 445-1254. -

-

MISCELLANEOUS

-

- These Terms and any policies or operating rules posted by us on the Site - or in respect to the Service constitute the entire agreement and - understanding between you and us. Our failure to exercise or enforce any - right or provision of these Terms shall not operate as a waiver of such - right or provision. These Terms operate to the fullest extent permissible - by law. We may assign any or all of our rights and obligations to others - at any time. We shall not be responsible or liable for any loss, damage, - delay, or failure to act caused by any cause beyond our reasonable - control. If any provision or part of a provision of these Terms is - determined to be unlawful, void, or unenforceable, that provision or part - of the provision is deemed severable from these Terms and does not affect - the validity and enforceability of any remaining provisions. There is no - joint venture, partnership, employment or agency relationship created - between you and us as a result of these Terms or use of the Service. You - agree that these Terms will not be construed against us by virtue of - having drafted them. You hereby waive any and all defenses you may have - based on the electronic form of these Terms and lack of signing by the - parties hereto to execute these Terms. -

-

CONTACT US

-

- In order to resolve a complaint regarding the Site or to receive further - information regarding use of the Service, please contact us at: - terms@aptoslabs.com.  -

-
-
-
-
diff --git a/ecosystem/platform/server/app/views/static_page/terms_testnet.html.erb b/ecosystem/platform/server/app/views/static_page/terms_testnet.html.erb deleted file mode 100644 index 8dd7874f023c1..0000000000000 --- a/ecosystem/platform/server/app/views/static_page/terms_testnet.html.erb +++ /dev/null @@ -1,621 +0,0 @@ -<% content_for(:page_title, 'Aptos Testnet Participation Terms of Use') %> -<% content_for(:page_description, 'Aptos Testnet Participation Terms of Use') %> - -
-
-
-

- Testnet Participation Terms of Use -

- <%= render DividerComponent.new(scheme: :primary, class: 'mt-6 mb-16') %> -
-

Last updated: May 13, 2022

-

- These Aptos Testnet Participation Terms of Use (the “Terms”) - apply to your access to and use of the websites, platform, software, - technologies, features, and other online products and services - (collectively, the “Aptos Services”) provided or made - available by Aptos Labs (“Company” “Aptos” or - “we”) in connection with the testnet - (“Testnet”).  -

-

Agreement to Terms

-

- By accessing or using our Aptos Services or by participating in our - Testnet, you agree to these Terms and to our Privacy Policy[link] and any - other agreements or terms as set forth by the Company. These Terms - constitute a binding obligation between you and the Company.  If you - do not agree to these Terms, do not use our Aptos Services. If you have - any questions about these Terms, the Aptos Services or the Incentived - Testnet, please contact us at terms@aptoslabs.com. -

-

- If you are accessing or participating in the Testnet on behalf of a - company (such as your employer) or other legal entity, you represent and - warrant that you have the authority to bind that company or other legal - entity to these Terms. In that case, “you” and - “your” will also refer to that company or other legal entity. -

-

- YOUR PARTICIPATION IN TESTNET IS ENTIRELY VOLUNTARY, BUT IF YOU ARE - PARTICIPATING IN TESTNET, YOU MUST STRICTLY ADHERE TO THE TERMS. -

-

- NOTICE: Please read these Terms carefully as it governs your use of - the  -

-

- Testnet. These Terms contain important information, including a binding - arbitration provision and a class action waiver, both of which impact your - rights as to how disputes are resolved.  -

-

Privacy Policy

-

- Please refer to our Privacy Policy[link] for more details on the - information that the Company may collect, use and disclose and under what - circumstances. You acknowledge and agree that your participation in - Testnet is subject to this Privacy Policy. -

-

Changes to Terms

-

- The Company may update the Terms at any time, in its sole discretion. If - it does so, the Company will deliver a notice either by posting the - updated Terms on its website, on any applicable Aptos blog or forum used - for sharing of information, or through other communications. It’s - important that you review any and all updated Terms. If you continue to - participate in Testnet after the Company has posted updated Terms, you are - agreeing to be bound by the updated Terms. If you don’t agree to be - bound by the updated Terms, then you  -

-

may not participate in Testnet anymore. 

-

Duration of the Testnet

-

- Testnet will commence on the date prescribed by the Company and continue - until terminated by the Company in its sole discretion (“Testnet - Period”).  Notwithstanding any other information provided by - the Company regarding the Testnet (including on its website, blog posts or - through other communications (such as forums, Telegram, Discord, or other - channels), the Company may change, discontinue, or terminate, temporarily - or permanently, all or any part of Testnet, at any time and without - notice, at its sole discretion (including prior to providing any - incentives or rewards). -

-

- Testnet is designed to improve the operational experience, security, and - design of the Aptos mainnet protocol and to expose potential issues and to - improve participant experiences prior to the mainnet launch of the Aptos - Protocol. -

-

Eligibility for Testnet

-

- You may participate in Testnet only if: (a) you are 18 years or older and - capable of forming a binding contract with the Company; (b) you are not - subject of sanctions administered or enforced by any country or government - or otherwise designated on any list of prohibited or restricted parties - (including but not limited to the lists maintained by the United Nations - Security Council, the U.S. Government, the European Union or its Member - States, or other applicable government authority) or a citizen or - organized or resident in a country or territory that is the subject of - country-wide or territory-wide sanctions (including, without limitation, - Cuba, Democratic People’s Republic of Korea, the Crimea, Donetsk, - and Luhansk regions, Iran, or Syria); and (c) you are not barred from - participating under applicable law. In addition, to be eligible for any - incentives or rewards as part of the Testnet, you (i) must be a natural - person, (ii) must not be a U.S. person or citizen, and (iii) must not be - an employee, consultant or affiliate of the Company. -

-

- Furthermore, in order to participate in the incentivized testnet, - participants must demonstrate the ability to configure and deploy an Aptos - node to the satisfaction of the Company in its sole discretion and will be - required to provide certain identifying information (e.g. name, residence - or domicile, date of birth, etc.) and related documentation and pass - sanctions and watchlist screening. Failure to provide such identifying - information, pass sanctions and watchlist screening, and/or a failure to - demonstrate compliance with the requirements herein may result in - termination of your participation, forfeiture of any incentives or - rewards, and prohibition from participating in future testnet challenges, - and other actions. -

-

- Among those candidates who register for the incentivized testnet and meet - all of the eligibility criteria, Company will select the participants for - the incentivized testnet at its sole discretion based on criteria as - determined by the Company (including, without limitation, geographical - distribution and applicant reputation).  By applying or registering, - there is no promise or guarantee that you will be able to participate in - Testnet. -

-

- The Company’s current plan regarding the Testnet is available - here.  However, notwithstanding this information or any other - information provided by the Company regarding the Testnet (including on - its website, blog posts or through other communications (such as forums, - Telegram, Discord, or other channels), Company may change or modify at any - time the number of participants eligible to participate in Testnet or the - requirements of the Testnet and terminate any participant’s - participation at any time. -

-

- The Testnet may operate in certain phases.  Your selection or - participation in any one phase of the Testnet does not imply that you will - be selected for any other phases of the Testnet. -

-

Third-Party Services

-

- The Company may share identifying information and documentation with - certain vendors or third-party providers who provide such identity - verification and sanctions and watchlist screening services (including - without limitation - Persona) (the “Third-Party Services”).  For more information on - Persona and their data privacy practices, please see their privacy policy - available here: - https://withpersona.com/legal/privacy-policy.   You agree that your access and use of such Third Party Services - is governed solely by the terms and conditions of such Third Party - Services, and the Company is not responsible or liable for, and make no - representations as to any aspect of such Third Party Services, including, - without limitation, their content or the manner in which they handle, - protect, manage or process data or any interaction between you and the - provider of such Third Party Services. You irrevocably waive any claim - against the Company with respect to such Third-Party Services. We are not - liable for any damage or loss caused or alleged to be caused by or in - connection with your enablement, access or use of any such Third-Party - Services, or your reliance on the privacy practices, data security - processes or other policies of such Third-Party Services.  -

-

Rewards/Incentives

-

- As part of your participation in Testnet, the Company may choose, in its - sole discretion, to provide certain incentives or rewards to eligible - participants for completing certain activities, including running a - validator node and meeting certain performance criteria or other - requirements set by the Company.   Further details are set out in the - Incentivized Testnet Program website.  Other contributions to Testnet - may further be rewarded by the Company in its discretion.  Such - rewards may include Aptos mainnet tokens; provided, that, (x) any such - Aptos mainnet tokens will be provided only following successful mainnet - launch and any tokens provided will be subject to a one-year lockup period - and (y) U.S. citizens and residents are not eligible for Aptos mainnet - tokens.  Notwithstanding any other information provided by the - Company regarding the Testnet (including on its website, blog posts or - through other communications (such as forums, Telegram, Discord, or other - channels), the Company may in its discretion change or modify the amounts - or types of rewards or incentives and/or discontinue, or terminate, - temporarily or permanently, all or any part of the incentives or rewards - program at any time and without notice and the Company may remove or - reallocate any rewards or incentives earned by any participant or elect - not to provide any rewards to any participant. -

-

- The Company reserves the right to block your access to Testnet.  If - you violate any of the terms and conditions of the Terms (as determined - solely by the Company) or if you do not complete the necessary information - or fail to provide accurate information, then you will not be eligible to - receive rewards. -

-

- The Company reserves the right to request information about, review and - investigate all Testnet activities, and to disqualify participants if it - believes a participant has engaged in any activity that is abusive, - fraudulent, in bad faith or otherwise fails to meet Testnet standards and - requirements.  -

-

- You agree that any rewards or incentives received will be for your - services in testing the Testnet and Aptos network.   -

-

Taxes

-

- You are responsible for the payment of all taxes associated with your - receipt of any rewards (including, if applicable, Aptos mainnet tokens). - You agree to provide the Company with any additional information and - complete any required tax or other forms relating to your receipt of such - rewards. -

-

- You may suffer adverse tax consequences as a result of your participation - in Testnet. You hereby represent that (i) you have consulted with a tax - adviser that you deem advisable in connection with your participation, or - that you have had the opportunity to obtain tax advice but have chosen not - to do so, (ii) the Company has not provided you with any tax advice with - respect to your participation, and (iii) you are not relying on the - Company for any tax advice. -

-

Security; Wallet

-

- You are responsible for maintaining adequate security and control of any - and all IDs, passwords, hints, personal identification numbers (PINs), or - any other codes that you use to access the Testnet as part of your - systems. The Company assumes no responsibility for any losses resulting - from any compromise of your systems. or wallet(s). -

-

- As part of certain phases of the testnet, mainnet or as part of providing - incentives/rewards, the Company may send or receive testnet tokens or - rewards to your wallet application. In such a case, you are responsible - for the management of the private keys and security for your wallet(s). - The Company does not and will not manage, store, collect or otherwise - access the private keys for your wallet(s). You’re responsible for - all activities that occur using your wallet, whether or not you know about - them. -

-

Updates; Monitoring

-

- We may make any improvement, modifications or updates to our Testnet, - including but not limited to changes and updates to the underlying - software, infrastructure, security protocols, technical configurations or - service features (the “Updates”) from time to time.  Your - continued access and use of our Testnet are subject to such Updates and - you shall accept any patches, system upgrades, bug fixes, feature - modifications, or other maintenance work that arise out of such - Updates.  We are not liable for any failure by you to accept and use - such Updates in the manner specified or required by us.  Although the - Company is  not obligated to monitor access to or participation in - Testnet, it has the right to do so for the purpose of operating Testnet, - to ensure compliance with the Terms and to comply with applicable law or - other legal requirements.  -

-

Testnet; Testnet Tokens

-

- No Monetary Value. In your use of the Testnet, you may - accumulate “testnet tokens,” such as through a - faucet, which are not, and shall never convert to or accrue to become - mainnet tokens or any other tokens or virtual assets. Testnet tokens are - virtual items with no monetary value. Testnet tokens do not constitute any - currency or property of any type and are not redeemable, refundable, or - eligible for any fiat or virtual currency or anything else of value. - Testnet tokens are not transferable between users outside of the Testnet, - and you may not attempt to sell, trade, or transfer any Testnet tokens - outside of the Testnet, or obtain any manner of credit using any Testnet - tokens. Any attempt to sell, trade, or transfer any Testnet tokens outside - of the Testnet will be null and void. -

-

- Modification. Aptos may, in its sole discretion, decide to delete, - wipe or otherwise remove the Testnet at any time without notice, - including, without limitation, the modification of the presence, amounts, - or any other conditions applicable to the Testnet tokens, without any - liability to you or other Testnet users. Aptos does not guarantee that - Testnet tokens will continue to be offered for a specific length of time - and you may not rely upon the continued availability of any Testnet - tokens. If the Testnet expires or terminates, you acknowledge and agree - that your access to and use of your Testnet tokens will be removed, and - all accrued Testnet tokens will be deleted from the Testnet system. - Testnet tokens will not be converted into any future rewards offered by - Aptos. -

-

Intellectual Property Rights; Feedback

-

- By participating in our Testnet, you do not gain any rights thereto. All - right, title, and interest in and to our Testnet, including all - modifications, improvements, and enhancements made thereto, and all - proprietary rights therein, shall be and remain the Company’s sole - and exclusive property. -

-

- The Company welcomes feedback, comments and suggestions for improvements - to the Testnet and related technologies of the Aptos protocol - (“Feedback”). You grant to the Company a non-exclusive, - transferable, worldwide, perpetual, irrevocable, fully-paid, royalty-free - license, with the right to sublicense, under any and all intellectual - property rights that you own or control to use, copy, modify, create - derivative works based upon and otherwise exploit the Feedback for any - purpose, in any form, format, media or media channels now known or later - developed or discovered. -

-

Prohibited Activities

-

- You will not (in each case except as otherwise contemplated as part of - these Terms): -

-
    -
  • - Initiate any attacks that violate your cloud service, data-center or - other applicable third party service provider’s rules or policies; -
  • -
  • - Unless as expressly requested by the Company as part of a security or - similar challenge, disrupt or initiate any attacks against users of the - Aptos Services or the Testnet; -
  • -
  • - Disrupt, compromise, or otherwise damage data or property owned by other - parties. -
  • -
  • - Impersonate any person or entity or misrepresent your affiliation with - any person or entity; -
  • -
  • - Access any accounts or data other than your own (or those for which you - have explicit, permission from their owners);  -
  • -
  • - Interfere with, or attempt to interfere with, the access of any user, - host or network, including, without limitation, sending a virus, - overloading, flooding, spamming, creating, encouraging or implementing - Sibyl attacks; -
  • -
  • Sell or resell Aptos Services; 
  • -
  • - Participate in the Testnet from a jurisdiction other than the - jurisdiction of your residence (as determined by the identity - documentation provided by you); and -
  • -
  • - Encourage or enable any other individual or entity to do any of the - foregoing or otherwise violate the Terms. -
  • -
-

Compliance with Laws

-

- You agree that to comply with all applicable laws, rules, regulations, and - any generally accepted practices or guidelines in the relevant - jurisdictions (including any laws regarding the export of data or software - to and from the United States or other relevant countries and all - applicable privacy and data collection laws and regulations) in connection - with your participation with Testnet. To the extent required by law, you - are solely responsible for obtaining or filing any approval, clearance, - registration, permit, or other regulatory authorization and shall comply - with the requirements of such authorization. -

-

WARRANTY DISCLAIMERS

-

- THE COMPANY MAKES NO, AND HEREBY DISCLAIMS ALL REPRESENTATIONS AND - WARRANTIES OF ANY KIND WITH RESPECT TO OUR TESTNET. THE TESTNET IS - PROVIDED “AS IS” AND WITH ALL FAULTS AND WITHOUT WARRANTY OF - ANY KIND. WITHOUT LIMITING THE FOREGOING, THE COMPANY EXPLICITLY DISCLAIMS - ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR - PURPOSE, VALUE, QUIET ENJOYMENT AND NON-INFRINGEMENT, AND ANY WARRANTIES - ARISING OUT OF COURSE OF DEALING OR USAGE OF TRADE.  The Company has - made no promises or guarantees with respect to delivery of any future - features or functions. Any discussions of any future features or - functions, either prior to or following the agreement to these Terms, are - for informational purposes only, and the Company has no obligation to - provide any such features or functions. You acknowledge that you have not - relied on any statement, promise, assurance, or warranty that is not set - out in the Terms. -

-

- YOU ACCEPT AND ACKNOWLEDGE THAT THERE ARE RISKS ASSOCIATED WITH - PARTICIPATING IN TESTNET INCLUDING, BUT NOT LIMITED TO, THE RISK OF - FAILURE OF HARDWARE, SOFTWARE AND INTERNET CONNECTIONS, THE RISK OF - MALICIOUS SOFTWARE INTRODUCTION, LOSS OF REWARDS, AND SECURITY RISKS. YOU - ACCEPT AND ACKNOWLEDGE THAT THE COMPANY WILL NOT BE RESPONSIBLE FOR ANY - LOSSES, FAILURES, DISRUPTIONS, ERRORS, DISTORTIONS OR DELAYS YOU MAY - EXPERIENCE WHEN PARTICIPATING IN TESTNET, HOWEVER CAUSED.  THE - COMPANY WILL NOT BE RESPONSIBLE OR LIABLE TO YOU FOR ANY LOSS AND TAKES NO - RESPONSIBILITY FOR AND WILL NOT BE LIABLE TO YOU FOR YOUR PARTICIPATION IN - TESTNET. -

-

- The Company makes no warranty that Testnet will meet your requirements or - be available on an uninterrupted, secure, or error-free basis or free of - viruses, errors, or defects. The Company makes no warranty regarding the - quality, accuracy, timeliness, truthfulness, completeness or reliability - of any information or materials offered in connection with Testnet. Any - rewards or incentives you received (including any tokens) as part of the - Testnet may have no value. -

-

You further understand and agree that:  

-
    -
  • - access to Testnet may require the use of your personal computer and/or - mobile devices, as well as communications with or use of data and - storage on such devices. You are responsible for any Internet connection - or mobile fees and charges that you may incur as part of your voluntary - participation in Testnet. -
  • -
  • - certain information, including your on-chain transaction records, are - all public information and can be accessed by anyone, including - participants and non-participants of Testnet.  -
  • -
  • - security and other blockchain audits undertaken by the Company or third - parties will access user data and could result in the loss of data or - provoke actions from telecommunications and other third party service - providers.  -
  • -
-

LIMITATION OF LIABILITY. 

-

- TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL WE OR OUR - AFFILIATES, SUPPLIERS OR LICENSORS BE LIABLE TO YOU OR ANY THIRD PARTY FOR - ANY INDIRECT, INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES, OR FOR LOSS - OF USE, LOST PROFITS, OR LOSS OF DATA ARISING OUT OF OR RELATED TO THESE - TERMS OR THE TESTNET PROGRAM, HOWEVER CAUSED AND REGARDLESS OF THE FORM OF - ACTION, WHETHER IN CONTRACT, TORT, STRICT LIABILITY, OR OTHERWISE, EVEN IF - WE OR OUR SUPPLIERS OR LICENSORS HAVE BEEN ADVISED OF THE POSSIBILITY OF - SUCH DAMAGES. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL THE - CUMULATIVE LIABILITY OF US, OUR SUPPLIERS, AND OUR LICENSORS FOR ANY - CLAIMS ARISING OUT OF OR RELATED TO THESE TERMS OR THE TESTNET EXCEED ONE - HUNDRED DOLLARS ($100). Some jurisdictions do not allow limitations of - liability, so the foregoing limitation may not apply to you. -

-

- THE EXCLUSIONS AND LIMITATIONS OF DAMAGES SET FORTH ABOVE ARE FUNDAMENTAL - ELEMENTS OF THE BASIS OF THE BARGAIN BETWEEN COMPANY AND YOU. -

-

Indemnification

-

- To the fullest extent permitted by applicable law, you will indemnify, - defend and hold harmless Company and our subsidiaries and affiliates, and - each of our respective officers, directors, agents, partners and employees - (individually and collectively, the “Company Parties”) from - and against any losses, liabilities, claims, demands, damages, expenses or - costs (“Claims”) arising out of or related to (a) your access - to or use of the Aptos Services or the Testnet; (b) your violation of - these Terms; (c) your violation, misappropriation or infringement of any - rights of another (including intellectual property rights or privacy - rights); or (d) your conduct in connection with the Aptos Services or your - participation in the Testnet. You agree to promptly notify the Company - Parties of any third-party Claims, cooperate with the Company Parties in - defending such Claims and pay all fees, costs and expenses associated with - defending such Claims (including attorneys’ fees). You also agree - that the Company Parties will have control of the defense or settlement, - at Company’s sole option, of any third-party Claims. -

-

Confidentiality

-

- You acknowledge that, in connection with your participation in the - Testnet, you may be exposed to data and information, including product, - technology, business, and strategy information that is confidential and - proprietary to us (collectively, “Confidential Information”). - All Confidential Information shall be sole and exclusive property of the - Company and may be used by you only for assisting us in resolving any - security issue you have reported to us. You may not reveal, publish, or - otherwise disclose the Confidential Information to any third party without - the prior written consent of the Company, and shall protect the - Confidential Information from disclosure using the same degree of care you - use to protect your own confidential information of like kind, but in no - event using less than reasonable care.  -

-

Governing Law; Forum

-

- These Terms and any action related thereto will be governed by the laws of - the state of California in the United States of America without regard to - its conflict of laws provisions. The exclusive jurisdiction for all - Disputes (defined below) will be in the county of Santa Clara, and you and - Company each waive any objection to such jurisdiction and venue. -

-

DISPUTE RESOLUTION

-

- **Please read the following section carefully because it requires you to - arbitrate certain disputes and claims with Aptos and limits the manner in - which you can seek relief from us. No class or representative actions or - arbitrations are allowed under this arbitration provision. **In addition, - arbitration precludes you from suing in court or having a jury trial. ** -

-

- (a) Mandatory Arbitration of Disputes. (a) We each agree that any dispute, - claim or controversy arising out of or relating to your participation in - Testnet, use of the Aptos Services, or these Terms or the breach, - termination, enforcement, interpretation or validity thereof - (collectively, “Disputes”) will be resolved solely by binding, - individual arbitration and not in a class, representative or consolidated - action or proceeding. You and Aptos agree that the U.S. Federal - Arbitration Act governs the interpretation and enforcement of these Terms, - and that you and Aptos are each waiving the right to a trial by jury or to - participate in a class action. This arbitration provision shall survive - termination of these Terms. -

-

- (b) Exceptions. As limited exceptions to the section above: (i) we both - may seek to resolve a Dispute in small claims court if it qualifies; and - (ii) we each retain the right to seek injunctive or other equitable relief - from a court to prevent (or enjoin) the infringement or misappropriation - of our intellectual property rights. -

-

- (c) Conducting Arbitration and Arbitration Rules. The arbitration will be - conducted by the American Arbitration Association (“AAA”) - under its Consumer Arbitration Rules (the “AAA Rules”) then in - effect, except as modified by these Terms. The AAA Rules are available at - www.adr.org. A party who wishes to start arbitration must submit a written - Demand for Arbitration to AAA and give notice to the other party as - specified in the AAA Rules. The AAA provides a form Demand for Arbitration - at - www.adr.org. The place of arbitration shall be in Palo Alto, CA. The language of - arbitration shall be English. The parties agree that the arbitrator shall - have exclusive authority to decide all issues relating to the - interpretation, applicability, enforceability and scope of this - arbitration agreement. -

-

- (d) Arbitration Costs. Payment of all filing, administration and - arbitrator fees will be governed by the AAA Rules, and we won’t seek - to recover the administration and arbitrator fees we are responsible for - paying, unless the arbitrator finds your Dispute frivolous. If we prevail - in arbitration we’ll pay all of our attorneys’ fees and costs - and won’t seek to recover them from you. If you prevail in - arbitration you will be entitled to an award of attorneys’ fees and - expenses to the extent provided under Applicable Law. -

-

- (e) Injunctive and Declaratory Relief. Except as provided above, the - arbitrator shall determine all issues of liability on the merits of any - claim asserted by either party and may award declaratory or injunctive - relief only in favor of the individual party seeking relief and only to - the extent necessary to provide relief warranted by that party’s - individual claim. To the extent that you or we prevail on a claim and seek - public injunctive relief (that is, injunctive relief that has the primary - purpose and effect of prohibiting unlawful acts that threaten future - injury to the public), the entitlement to and extent of such relief must - be litigated in a civil court of competent jurisdiction and not in - arbitration. The parties agree that litigation of any issues of public - injunctive relief shall be stayed pending the outcome of the merits of any - individual claims in arbitration. -

-

- (f) Class Action Waiver; Jury Trial Waiver. YOU AND APTOS AGREE THAT EACH - MAY BRING CLAIMS AGAINST THE OTHER ONLY IN YOUR OR ITS INDIVIDUAL - CAPACITY, AND NOT AS A PLAINTIFF OR CLASS MEMBER IN ANY PURPORTED CLASS OR - REPRESENTATIVE PROCEEDING.  Further, if the parties’ Dispute is - resolved through arbitration, the arbitrator may not consolidate another - person’s claims with your claims, and may not otherwise preside over - any form of a representative or class proceeding. If this specific - provision is found to be unenforceable, then the entirety of this Dispute - Resolution section shall be null and void.  You and we both agree to - waive the right to demand a trial by jury. -

-

- (g) Severability. With the exception of any of the provisions above - (“Class Action Waiver”), if an arbitrator or court of - competent jurisdiction decides that any part of these Terms is invalid or - unenforceable, the other parts of these Terms will still apply. -

-

Assignment

-

- You may not sell, assign or transfer any of your rights, duties or - obligations under these Terms without our prior written consent. Any - attempt by you to assign or transfer the Terms, without such consent, will - be null and void.  We reserve the right to assign or transfer these - Terms or any of its rights, duties and obligations hereunder to any third - party.   Subject to the foregoing, these Terms will bind and inure to - the benefit of the parties, their successors and permitted assigns.  -

-

General Terms

-

- Nothing herein shall constitute an employment, consultancy, joint venture, - or partnership relationship between you and the Company.  If any - provision of the Terms is held invalid or unenforceable by an arbitrator - or a court of competent jurisdiction, that provision will be enforced to - the maximum extent permissible and the other provisions of the Terms will - remain in full force and effect.   These Terms reflect the entire - agreement between the parties relating to the subject matter hereof and - supersede all prior agreements, representations, statements and - understandings of the parties. The section titles in these Terms are for - convenience only and have no legal or contractual effect. Use of the word - “including” will be interpreted to mean “including - without limitation.”  -

-

- Notices. Any notices or other communications provided by Company under the - Terms, including those regarding modifications to the Terms, may be given - by posting to the Aptos website, blog or through other communications - (such as forums, Telegram, Discord, or other channels). -

-

- Waiver of Rights. Company’s failure to enforce any right or - provision of these Terms  will not be considered a waiver of such - right or provision. The waiver of any such right or provision will be - effective only if in writing and signed by a duly authorized - representative of Company. Except as expressly set forth in these Terms , - the exercise by either party of any of its remedies under these Terms will - be without prejudice to its other remedies under these Terms or otherwise. -

-

- Contact Information. If you have any questions about these Terms or - Testnet, please contact terms@aptoslabs.com. -

-
-
-
-
diff --git a/ecosystem/platform/server/app/views/user_mailer/governance_proposal_notification.html.erb b/ecosystem/platform/server/app/views/user_mailer/governance_proposal_notification.html.erb deleted file mode 100644 index abf484d6642d1..0000000000000 --- a/ecosystem/platform/server/app/views/user_mailer/governance_proposal_notification.html.erb +++ /dev/null @@ -1 +0,0 @@ -<%= sanitize @network_operation.content %> diff --git a/ecosystem/platform/server/app/views/user_mailer/node_upgrade_notification.html.erb b/ecosystem/platform/server/app/views/user_mailer/node_upgrade_notification.html.erb deleted file mode 100644 index abf484d6642d1..0000000000000 --- a/ecosystem/platform/server/app/views/user_mailer/node_upgrade_notification.html.erb +++ /dev/null @@ -1 +0,0 @@ -<%= sanitize @network_operation.content %> diff --git a/ecosystem/platform/server/app/views/users/activity.html.erb b/ecosystem/platform/server/app/views/users/activity.html.erb deleted file mode 100644 index 02b5956b712d1..0000000000000 --- a/ecosystem/platform/server/app/views/users/activity.html.erb +++ /dev/null @@ -1 +0,0 @@ -

<%= Faker::Lorem.paragraph %>

diff --git a/ecosystem/platform/server/app/views/users/projects.html.erb b/ecosystem/platform/server/app/views/users/projects.html.erb deleted file mode 100644 index 446e988fa56e2..0000000000000 --- a/ecosystem/platform/server/app/views/users/projects.html.erb +++ /dev/null @@ -1,5 +0,0 @@ -
- <% @projects.each do |project| %> - <%= render ProjectCardComponent.new(project:) %> - <% end %> -
diff --git a/ecosystem/platform/server/app/views/users/rewards.html.erb b/ecosystem/platform/server/app/views/users/rewards.html.erb deleted file mode 100644 index 02b5956b712d1..0000000000000 --- a/ecosystem/platform/server/app/views/users/rewards.html.erb +++ /dev/null @@ -1 +0,0 @@ -

<%= Faker::Lorem.paragraph %>

diff --git a/ecosystem/platform/server/app/views/users/show.html.erb b/ecosystem/platform/server/app/views/users/show.html.erb deleted file mode 100644 index 02b5956b712d1..0000000000000 --- a/ecosystem/platform/server/app/views/users/show.html.erb +++ /dev/null @@ -1 +0,0 @@ -

<%= Faker::Lorem.paragraph %>

diff --git a/ecosystem/platform/server/bin/bundle b/ecosystem/platform/server/bin/bundle deleted file mode 100755 index 6e6dae775ef66..0000000000000 --- a/ecosystem/platform/server/bin/bundle +++ /dev/null @@ -1,122 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# -# This file was generated by Bundler. -# -# The application 'bundle' is installed as part of a gem, and -# this file is here to facilitate running it. -# - -require 'rubygems' - -m = Module.new do - module_function - - def invoked_as_script? - File.expand_path($PROGRAM_NAME) == File.expand_path(__FILE__) - end - - def env_var_version - ENV.fetch('BUNDLER_VERSION', nil) - end - - def cli_arg_version - return unless invoked_as_script? # don't want to hijack other binstubs - return unless 'update'.start_with?(ARGV.first || ' ') # must be running `bundle update` - - bundler_version = nil - update_index = nil - ARGV.each_with_index do |a, i| - bundler_version = a if update_index && update_index.succ == i && a =~ Gem::Version::ANCHORED_VERSION_PATTERN - next unless a =~ /\A--bundler(?:[= ](#{Gem::Version::VERSION_PATTERN}))?\z/ - - bundler_version = Regexp.last_match(1) - update_index = i - end - bundler_version - end - - def gemfile - gemfile = ENV.fetch('BUNDLE_GEMFILE', nil) - return gemfile if gemfile && !gemfile.empty? - - File.expand_path('../Gemfile', __dir__) - end - - def lockfile - lockfile = - case File.basename(gemfile) - when 'gems.rb' then gemfile.sub(/\.rb$/, gemfile) - else "#{gemfile}.lock" - end - File.expand_path(lockfile) - end - - def lockfile_version - return unless File.file?(lockfile) - - lockfile_contents = File.read(lockfile) - return unless lockfile_contents =~ /\n\nBUNDLED WITH\n\s{2,}(#{Gem::Version::VERSION_PATTERN})\n/ - - Regexp.last_match(1) - end - - def bundler_requirement - @bundler_requirement ||= - env_var_version || cli_arg_version || - bundler_requirement_for(lockfile_version) - end - - def bundler_requirement_for(version) - return "#{Gem::Requirement.default}.a" unless version - - bundler_gem_version = Gem::Version.new(version) - - requirement = bundler_gem_version.approximate_recommendation - - return requirement unless Gem.rubygems_version < Gem::Version.new('2.7.0') - - requirement += '.a' if bundler_gem_version.prerelease? - - requirement - end - - def load_bundler! - ENV['BUNDLE_GEMFILE'] ||= gemfile - - activate_bundler - end - - def activate_bundler - gem_error = activation_error_handling do - gem 'bundler', bundler_requirement - end - return if gem_error.nil? - - require_error = activation_error_handling do - require 'bundler/version' - end - if require_error.nil? && Gem::Requirement.new(bundler_requirement).satisfied_by?(Gem::Version.new(Bundler::VERSION)) - return - end - - warn "Activating bundler (#{bundler_requirement}) failed:\n#{gem_error.message}\n\nTo install the version of " \ - "bundler this project requires, run `gem install bundler -v '#{bundler_requirement}'`" - exit 42 - end - - def activation_error_handling - yield - nil - rescue StandardError, LoadError => e - e - end -end - -m.load_bundler! - -load Gem.bin_path('bundler', 'bundle') if m.invoked_as_script? diff --git a/ecosystem/platform/server/bin/dev b/ecosystem/platform/server/bin/dev deleted file mode 100755 index a1104a50b1024..0000000000000 --- a/ecosystem/platform/server/bin/dev +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -if ! command -v foreman &> /dev/null -then - echo "Installing foreman..." - gem install foreman -fi - -foreman start -f Procfile.dev "$@" diff --git a/ecosystem/platform/server/bin/importmap b/ecosystem/platform/server/bin/importmap deleted file mode 100755 index 6a44b8ca9194c..0000000000000 --- a/ecosystem/platform/server/bin/importmap +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require_relative '../config/application' -require 'importmap/commands' diff --git a/ecosystem/platform/server/bin/rails b/ecosystem/platform/server/bin/rails deleted file mode 100755 index 5272129484fa1..0000000000000 --- a/ecosystem/platform/server/bin/rails +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -APP_PATH = File.expand_path('../config/application', __dir__) -require_relative '../config/boot' -require 'rails/commands' diff --git a/ecosystem/platform/server/bin/rake b/ecosystem/platform/server/bin/rake deleted file mode 100755 index fab06af24540a..0000000000000 --- a/ecosystem/platform/server/bin/rake +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require_relative '../config/boot' -require 'rake' -Rake.application.run diff --git a/ecosystem/platform/server/bin/setup b/ecosystem/platform/server/bin/setup deleted file mode 100755 index e826035cf0dcf..0000000000000 --- a/ecosystem/platform/server/bin/setup +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/env ruby -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'fileutils' - -# path to your application root. -APP_ROOT = File.expand_path('..', __dir__) - -def system!(*args) - system(*args) || abort("\n== Command #{args} failed ==") -end - -FileUtils.chdir APP_ROOT do - # This script is a way to set up or update your development environment automatically. - # This script is idempotent, so that you can run it at any time and get an expectable outcome. - # Add necessary setup steps to this file. - - puts '== Installing dependencies ==' - system! 'gem install bundler --conservative' - system('bundle check') || system!('bundle install') - system('yarn check') || system!('yarn install') - - puts "\n== Copying sample files ==" - FileUtils.cp '.env.example', '.env' unless File.exist?('.env') - - puts "\n== Preparing database ==" - system! 'bin/rails db:prepare' - - puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rails log:clear tmp:clear' - - puts "\n== Restarting application server ==" - system! 'bin/rails restart' -end diff --git a/ecosystem/platform/server/build.js b/ecosystem/platform/server/build.js deleted file mode 100755 index c4cddeb7ef12d..0000000000000 --- a/ecosystem/platform/server/build.js +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env node - -require("dotenv").config(); -const { build } = require("esbuild"); - -if (!process.env.NODE_ENV) { - process.env.NODE_ENV = process.env.RAILS_ENV; -} - -const define = ["NODE_ENV", "SENTRY_FRONTEND_DSN"].reduce((acc, env) => { - acc[`process.env.${env}`] = JSON.stringify(process.env[env]); - return acc; -}, {}); - -const options = { - entryPoints: ["./app/javascript/application.ts"], - bundle: true, - minify: process.env.NODE_ENV === "production", - target: "es2020", - sourcemap: true, - outdir: "./app/assets/builds/", - define: define, -}; - -build(options).catch(() => process.exit(1)); diff --git a/ecosystem/platform/server/config.ru b/ecosystem/platform/server/config.ru deleted file mode 100644 index ec45a5ce954c9..0000000000000 --- a/ecosystem/platform/server/config.ru +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# This file is used by Rack-based servers to start the application. - -require_relative 'config/environment' - -run Rails.application -Rails.application.load_server diff --git a/ecosystem/platform/server/config/application.rb b/ecosystem/platform/server/config/application.rb deleted file mode 100644 index 074bd878ce128..0000000000000 --- a/ecosystem/platform/server/config/application.rb +++ /dev/null @@ -1,44 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require_relative 'boot' - -require 'rails/all' - -# Require the gems listed in Gemfile, including any gems -# you've limited to :test, :development, or :production. -Bundler.require(*Rails.groups) - -module CommunityPlatform - class Application < Rails::Application - # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 7.0 - - keyfile = Rails.root.join('aptos-community-sa-keys.json') - if !Rails.env.test? && ENV['STORAGE_SERVICE_ACCOUNT_KEY'].present? && !keyfile.exist? - File.write(keyfile, ENV.fetch('STORAGE_SERVICE_ACCOUNT_KEY')) - end - - # Configuration for the application, engines, and railties goes here. - # - # These settings can be overridden in specific environments using the files - # in config/environments, which are processed later. - # - # config.time_zone = "Central Time (US & Canada)" - # config.eager_load_paths << Rails.root.join("extras") - - # config.debug_exception_response_format = :api - - # Enable gzip compression for HTTP responses. - # TODO: Remove when the CDN handles compression. - config.middleware.insert_before(Rack::Sendfile, Rack::Deflater) - - # View helpers should be scoped to the corresponding controller. - config.action_controller.include_all_helpers = false - - # Image analysis is not needed. - config.active_storage.analyzers = [] - end -end diff --git a/ecosystem/platform/server/config/boot.rb b/ecosystem/platform/server/config/boot.rb deleted file mode 100644 index ce4fb80171c5f..0000000000000 --- a/ecosystem/platform/server/config/boot.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) - -require 'bundler/setup' # Set up gems listed in the Gemfile. -require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/ecosystem/platform/server/config/cable.yml b/ecosystem/platform/server/config/cable.yml deleted file mode 100644 index c02c5536d698a..0000000000000 --- a/ecosystem/platform/server/config/cable.yml +++ /dev/null @@ -1,10 +0,0 @@ -development: - adapter: async - -test: - adapter: test - -production: - adapter: redis - url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> - channel_prefix: cp_production diff --git a/ecosystem/platform/server/config/database.yml b/ecosystem/platform/server/config/database.yml deleted file mode 100644 index 560a6089188d5..0000000000000 --- a/ecosystem/platform/server/config/database.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Postgres -# gem install postgres -# - -default: &default - adapter: postgresql - encoding: unicode - pool: <%= ENV.fetch("RAILS_DB_POOL", ENV.fetch("RAILS_MAX_THREADS", 5) * 2) %> - timeout: 5000 - username: <%= ENV['COMMUNITY_DB_USER'] %> - password: <%= ENV['COMMUNITY_DB_PASS'] %> - host: <%= ENV['COMMUNITY_DB_HOST'] %> - port: <%= ENV['COMMUNITY_DB_PORT'] %> - -development: - <<: *default - database: <%= ENV.fetch("COMMUNITY_DB_NAME") { "community_platform_dev" }%> - -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. -test: - <<: *default - database: <%= ENV.fetch("COMMUNITY_DB_NAME") { "community_platform_test" }%> - -production: - <<: *default - database: <%= ENV.fetch("COMMUNITY_DB_NAME") { "community_platform_prod" }%> diff --git a/ecosystem/platform/server/config/environment.rb b/ecosystem/platform/server/config/environment.rb deleted file mode 100644 index b462839994c8d..0000000000000 --- a/ecosystem/platform/server/config/environment.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Load the Rails application. -require_relative 'application' - -# Initialize the Rails application. -Rails.application.initialize! diff --git a/ecosystem/platform/server/config/environments/development.rb b/ecosystem/platform/server/config/environments/development.rb deleted file mode 100644 index 84dc368ab8791..0000000000000 --- a/ecosystem/platform/server/config/environments/development.rb +++ /dev/null @@ -1,94 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'active_support/core_ext/integer/time' - -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - # In the development environment your application's code is reloaded any time - # it changes. This slows down response time but is perfect for development - # since you don't have to restart the web server when you make code changes. - config.cache_classes = false - - # Do not eager load code on boot. - config.eager_load = false - - # Show full error reports. - config.consider_all_requests_local = true - - # Enable server timing - config.server_timing = true - - # Enable/disable caching. By default caching is disabled. - # Run rails dev:cache to toggle caching. - if Rails.root.join('tmp/caching-dev.txt').exist? - config.action_controller.perform_caching = true - config.action_controller.enable_fragment_cache_logging = true - - config.cache_store = :memory_store - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{2.days.to_i}" - } - else - config.action_controller.perform_caching = false - - config.cache_store = :null_store - end - - # Store uploaded files on the local file system (see config/storage.yml for options). - # Store uploaded files on the local file system (see config/storage.yml for options) - config.active_storage.service = if Rails.root.join('aptos-community-sa-keys.json').exist? - :google_keybased - else - :local - end - - # Don't care if the mailer can't send. - config.action_mailer.raise_delivery_errors = false - config.action_mailer.default_url_options = { host: 'localhost', port: 3001, - protocol: 'http' } - - config.action_mailer.delivery_method = :smtp - config.action_mailer.perform_deliveries = true - config.action_mailer.raise_delivery_errors = true - config.action_mailer.smtp_settings = { address: 'localhost', port: 1025 } - config.action_mailer.preview_path = "#{Rails.root}/test/mailers/previews" - - config.action_mailer.perform_caching = false - - # Print deprecation notices to the Rails logger. - config.active_support.deprecation = :log - - # Raise exceptions for disallowed deprecations. - config.active_support.disallowed_deprecation = :raise - - # Tell Active Support which deprecation messages to disallow. - config.active_support.disallowed_deprecation_warnings = [] - - # Raise an error on page load if there are pending migrations. - config.active_record.migration_error = :page_load - - # Highlight code that triggered database queries in logs. - config.active_record.verbose_query_logs = true - - # Allow serving from any host, for easier debugging - config.hosts << '*' - config.hosts << 'capcap.ngrok.io' - - # Suppress logger output for asset requests. - config.assets.quiet = true - config.assets.debug = true - # Raises error for missing translations. - # config.i18n.raise_on_missing_translations = true - - config.active_job.queue_adapter = :delayed - - # Annotate rendered view with file names. - # config.action_view.annotate_rendered_view_with_filenames = true - - # Uncomment if you wish to allow Action Cable access from any origin. - # config.action_cable.disable_request_forgery_protection = true -end diff --git a/ecosystem/platform/server/config/environments/production.rb b/ecosystem/platform/server/config/environments/production.rb deleted file mode 100644 index 685a299476281..0000000000000 --- a/ecosystem/platform/server/config/environments/production.rb +++ /dev/null @@ -1,121 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'active_support/core_ext/integer/time' - -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - # Code is not reloaded between requests. - config.cache_classes = true - - # Eager load code on boot. This eager loads most of Rails and - # your application in memory, allowing both threaded web servers - # and those relying on copy on write to perform better. - # Rake tasks automatically ignore this option for performance. - config.eager_load = true - - # Full error reports are disabled and caching is turned on. - config.consider_all_requests_local = false - config.action_controller.perform_caching = true - - # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] - # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). - # config.require_master_key = true - - # Disable serving static files from the `/public` folder by default since - # Apache or NGINX already handles this. - config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? - config.public_file_server.headers = { - 'Cache-Control' => 'public, max-age=31536000, immutable', - 'Expires' => 1.year.from_now.to_formatted_s(:rfc822) - } - - # Compress CSS using a preprocessor. - # Must set up dart-sass before re-enabling - config.assets.css_compressor = nil - - # Do not fallback to assets pipeline if a precompiled asset is missed. - config.assets.compile = false - - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.asset_host = "http://assets.example.com" - - # Specifies the header that your server uses for sending files. - # config.action_dispatch.x_sendfile_header = "X-Sendfile" # for Apache - # config.action_dispatch.x_sendfile_header = "X-Accel-Redirect" # for NGINX - - # Store uploaded files on the local file system (see config/storage.yml for options) - config.active_storage.service = if Rails.root.join('aptos-community-sa-keys.json').exist? - :google_keybased - else - :google - end - - # Mount Action Cable outside main process or domain. - # config.action_cable.mount_path = nil - # config.action_cable.url = "wss://example.com/cable" - # config.action_cable.allowed_request_origins = [ "http://example.com", /http:\/\/example.*/ ] - - # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. - # config.force_ssl = true - - # Include generic and useful information about system operation, but avoid logging too much - # information to avoid inadvertent exposure of personally identifiable information (PII). - config.log_level = :info - - # Prepend all log lines with the following tags. - config.log_tags = [:request_id] - - # Use a redis cache store in production. - config.cache_store = :redis_cache_store, { url: ENV.fetch('REDIS_URL', nil) } - - # Use a real queuing backend for Active Job (and separate queues per environment). - config.active_job.queue_adapter = :delayed - # config.active_job.queue_name_prefix = "cp_production" - - config.action_mailer.perform_caching = false - config.action_mailer.default_url_options = { host: 'aptoslabs.com', protocol: 'https' } - config.action_mailer.delivery_method = :smtp - config.action_mailer.perform_deliveries = true - config.action_mailer.raise_delivery_errors = true - config.action_mailer.smtp_settings = { - address: ENV.fetch('SMTP_HOST', nil), - port: ENV.fetch('SMTP_PORT', nil), - enable_starttls_auto: true, # detects and uses STARTTLS - user_name: 'community@aptoslabs.com', - password: ENV.fetch('MAILCHIMP_API_KEY', nil), # SMTP password is any valid API key - authentication: 'login', # Mandrill supports 'plain' or 'login' - domain: 'aptoslabs.com' - } - config.action_mailer.preview_path = "#{Rails.root}/tmp/mailers/previews" - - # Ignore bad email addresses and do not raise email delivery errors. - # Set this to true and configure the email server for immediate delivery to raise delivery errors. - # config.action_mailer.raise_delivery_errors = false - - # Enable locale fallbacks for I18n (makes lookups for any locale fall back to - # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = true - - # Don't log any deprecations. - config.active_support.report_deprecations = false - - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = ::Logger::Formatter.new - - # Use a different logger for distributed setups. - # require "syslog/logger" - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new "app-name") - - if ENV['RAILS_LOG_TO_STDOUT'].present? - logger = ActiveSupport::Logger.new($stdout) - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end - - # Do not dump schema after migrations. - config.active_record.dump_schema_after_migration = false -end diff --git a/ecosystem/platform/server/config/environments/test.rb b/ecosystem/platform/server/config/environments/test.rb deleted file mode 100644 index 3eef6c48d14c1..0000000000000 --- a/ecosystem/platform/server/config/environments/test.rb +++ /dev/null @@ -1,68 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'active_support/core_ext/integer/time' - -# The test environment is used exclusively to run your application's -# test suite. You never need to work with it otherwise. Remember that -# your test database is "scratch space" for the test suite and is wiped -# and recreated between test runs. Don't rely on the data there! - -Rails.application.configure do - # Settings specified here will take precedence over those in config/application.rb. - - # Turn false under Spring and add config.action_view.cache_template_loading = true. - config.cache_classes = true - - # Eager loading loads your whole application. When running a single test locally, - # this probably isn't necessary. It's a good idea to do in a continuous integration - # system, or in some way before deploying your code. - config.eager_load = ENV['CI'].present? - - # Configure public file server for tests with Cache-Control for performance. - config.public_file_server.enabled = true - config.public_file_server.headers = { - 'Cache-Control' => "public, max-age=#{1.hour.to_i}" - } - - # Show full error reports and disable caching. - config.consider_all_requests_local = true - config.action_controller.perform_caching = false - config.cache_store = :null_store - - # Raise exceptions instead of rendering exception templates. - config.action_dispatch.show_exceptions = false - - # Disable request forgery protection in test environment. - config.action_controller.allow_forgery_protection = false - - # Store uploaded files on the local file system in a temporary directory. - config.active_storage.service = :test - - config.action_mailer.perform_caching = false - - # Tell Action Mailer not to deliver emails to the real world. - # The :test delivery method accumulates sent emails in the - # ActionMailer::Base.deliveries array. - config.action_mailer.delivery_method = :test - - config.action_mailer.default_url_options = { host: 'localhost', port: 3001, - protocol: 'http' } - - # Print deprecation notices to the stderr. - config.active_support.deprecation = :stderr - - # Raise exceptions for disallowed deprecations. - config.active_support.disallowed_deprecation = :raise - - # Tell Active Support which deprecation messages to disallow. - config.active_support.disallowed_deprecation_warnings = [] - - # Raises error for missing translations. - # config.i18n.raise_on_missing_translations = true - - # Annotate rendered view with file names. - # config.action_view.annotate_rendered_view_with_filenames = true -end diff --git a/ecosystem/platform/server/config/initializers/active_admin.rb b/ecosystem/platform/server/config/initializers/active_admin.rb deleted file mode 100644 index f5e716e738909..0000000000000 --- a/ecosystem/platform/server/config/initializers/active_admin.rb +++ /dev/null @@ -1,341 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -ActiveAdmin.setup do |config| - # == Site Title - # - # Set the title that is displayed on the main layout - # for each of the active admin pages. - # - config.site_title = 'Community Platform' - - # Set the link url for the title. For example, to take - # users to your main site. Defaults to no link. - # - # config.site_title_link = "/" - - # Set an optional image to be displayed for the header - # instead of a string (overrides :site_title) - # - # Note: Aim for an image that's 21px high so it fits in the header. - # - # config.site_title_image = "logo.png" - - # == Default Namespace - # - # Set the default namespace each administration resource - # will be added to. - # - # eg: - # config.default_namespace = :hello_world - # - # This will create resources in the HelloWorld module and - # will namespace routes to /hello_world/* - # - # To set no namespace by default, use: - # config.default_namespace = false - # - # Default: - # config.default_namespace = :admin - # - # You can customize the settings for each namespace by using - # a namespace block. For example, to change the site title - # within a namespace: - # - # config.namespace :admin do |admin| - # admin.site_title = "Custom Admin Title" - # end - # - # This will ONLY change the title for the admin section. Other - # namespaces will continue to use the main "site_title" configuration. - - # == User Authentication - # - # Active Admin will automatically call an authentication - # method in a before filter of all controller actions to - # ensure that there is a currently logged in admin user. - # - # This setting changes the method which Active Admin calls - # within the application controller. - config.authentication_method = :authenticate_user! - - # == User Authorization - # - # Active Admin will automatically call an authorization - # method in a before filter of all controller actions to - # ensure that there is a user with proper rights. You can use - # CanCanAdapter or make your own. Please refer to documentation. - config.authorization_adapter = ActiveAdmin::CanCanAdapter - - # In case you prefer Pundit over other solutions you can here pass - # the name of default policy class. This policy will be used in every - # case when Pundit is unable to find suitable policy. - # config.pundit_default_policy = "MyDefaultPunditPolicy" - - # If you wish to maintain a separate set of Pundit policies for admin - # resources, you may set a namespace here that Pundit will search - # within when looking for a resource's policy. - # config.pundit_policy_namespace = :admin - - # You can customize your CanCan Ability class name here. - # config.cancan_ability_class = "Ability" - - # You can specify a method to be called on unauthorized access. - # This is necessary in order to prevent a redirect loop which happens - # because, by default, user gets redirected to Dashboard. If user - # doesn't have access to Dashboard, he'll end up in a redirect loop. - # Method provided here should be defined in application_controller.rb. - # config.on_unauthorized_access = :access_denied - config.on_unauthorized_access = :admin_access_denied - - # == Current User - # - # Active Admin will associate actions with the current - # user performing them. - # - # This setting changes the method which Active Admin calls - # (within the application controller) to return the currently logged in user. - config.current_user_method = :current_user - - # == Logging Out - # - # Active Admin displays a logout link on each screen. These - # settings configure the location and method used for the link. - # - # This setting changes the path where the link points to. If it's - # a string, the strings is used as the path. If it's a Symbol, we - # will call the method to return the path. - # - # Default: - config.logout_link_path = :destroy_user_session_path - - # This setting changes the http method used when rendering the - # link. For example :get, :delete, :put, etc.. - # - # Default: - config.logout_link_method = :get - - # == Root - # - # Set the action to call for the root path. You can set different - # roots for each namespace. - # - # Default: - # config.root_to = 'dashboard#index' - - # == Admin Comments - # - # This allows your users to comment on any resource registered with Active Admin. - # - # You can completely disable comments: - # config.comments = false - # - # You can change the name under which comments are registered: - # config.comments_registration_name = 'AdminComment' - # - # You can change the order for the comments and you can change the column - # to be used for ordering: - # config.comments_order = 'created_at ASC' - # - # You can disable the menu item for the comments index page: - # config.comments_menu = false - # - # You can customize the comment menu: - # config.comments_menu = { parent: 'Admin', priority: 1 } - - # == Batch Actions - # - # Enable and disable Batch Actions - # - config.batch_actions = true - - # == Controller Filters - # - # You can add before, after and around filters to all of your - # Active Admin resources and pages from here. - # - # config.before_action :do_something_awesome - - # == Attribute Filters - # - # You can exclude possibly sensitive model attributes from being displayed, - # added to forms, or exported by default by ActiveAdmin - # - config.filter_attributes = %i[encrypted_password password password_confirmation] - - # == Localize Date/Time Format - # - # Set the localize format to display dates and times. - # To understand how to localize your app with I18n, read more at - # https://guides.rubyonrails.org/i18n.html - # - # You can run `bin/rails runner 'puts I18n.t("date.formats")'` to see the - # available formats in your application. - # - config.localize_format = :long - - # == Setting a Favicon - # - config.favicon = 'favicon.ico' - - # == Meta Tags - # - # Add additional meta tags to the head element of active admin pages. - # - # Add tags to all pages logged in users see: - # config.meta_tags = { author: 'My Company' } - - # By default, sign up/sign in/recover password pages are excluded - # from showing up in search engine results by adding a robots meta - # tag. You can reset the hash of meta tags included in logged out - # pages: - # config.meta_tags_for_logged_out_pages = {} - - # == Removing Breadcrumbs - # - # Breadcrumbs are enabled by default. You can customize them for individual - # resources or you can disable them globally from here. - # - # config.breadcrumb = false - - # == Create Another Checkbox - # - # Create another checkbox is disabled by default. You can customize it for individual - # resources or you can enable them globally from here. - # - # config.create_another = true - - # == Register Stylesheets & Javascripts - # - # We recommend using the built in Active Admin layout and loading - # up your own stylesheets / javascripts to customize the look - # and feel. - # - # To load a stylesheet: - # config.register_stylesheet 'my_stylesheet.css' - # - # You can provide an options hash for more control, which is passed along to stylesheet_link_tag(): - # config.register_stylesheet 'my_print_stylesheet.css', media: :print - # - # To load a javascript file: - # config.register_javascript 'my_javascript.js' - - # == CSV options - # - # Set the CSV builder separator - # config.csv_options = { col_sep: ';' } - # - # Force the use of quotes - # config.csv_options = { force_quotes: true } - - # == Menu System - # - # You can add a navigation menu to be used in your application, or configure a provided menu - # - # To change the default utility navigation to show a link to your website & a logout btn - # - # config.namespace :admin do |admin| - # admin.build_menu :utility_navigation do |menu| - # menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank } - # admin.add_logout_button_to_menu menu - # end - # end - # - # If you wanted to add a static menu item to the default menu provided: - # - # config.namespace :admin do |admin| - # admin.build_menu :default do |menu| - # menu.add label: "My Great Website", url: "http://www.mygreatwebsite.com", html_options: { target: :blank } - # end - # end - - # == Download Links - # - # You can disable download links on resource listing pages, - # or customize the formats shown per namespace/globally - # - # To disable/customize for the :admin namespace: - # - # config.namespace :admin do |admin| - # - # # Disable the links entirely - # admin.download_links = false - # - # # Only show XML & PDF options - # admin.download_links = [:xml, :pdf] - # - # # Enable/disable the links based on block - # # (for example, with cancan) - # admin.download_links = proc { can?(:view_download_links) } - # - # end - - # == Pagination - # - # Pagination is enabled by default for all resources. - # You can control the default per page count for all resources here. - # - # config.default_per_page = 30 - # - # You can control the max per page count too. - # - # config.max_per_page = 10_000 - - # == Filters - # - # By default the index screen includes a "Filters" sidebar on the right - # hand side with a filter for each attribute of the registered model. - # You can enable or disable them for all resources here. - # - # config.filters = true - # - # By default the filters include associations in a select, which means - # that every record will be loaded for each association (up - # to the value of config.maximum_association_filter_arity). - # You can enabled or disable the inclusion - # of those filters by default here. - # - # config.include_default_association_filters = true - - # config.maximum_association_filter_arity = 256 # default value of :unlimited will change to 256 in a future version - # config.filter_columns_for_large_association = [ - # :display_name, - # :full_name, - # :name, - # :username, - # :login, - # :title, - # :email, - # ] - # config.filter_method_for_large_association = '_starts_with' - - # == Head - # - # You can add your own content to the site head like analytics. Make sure - # you only pass content you trust. - # - # config.head = ''.html_safe - - # == Footer - # - # By default, the footer shows the current Active Admin version. You can - # override the content of the footer here. - # - # config.footer = 'my custom footer text' - - # == Sorting - # - # By default ActiveAdmin::OrderClause is used for sorting logic - # You can inherit it with own class and inject it for all resources - # - # config.order_clause = MyOrderClause - - # == Webpacker - # - # By default, Active Admin uses Sprocket's asset pipeline. - # You can switch to using Webpacker here. - # - # config.use_webpacker = true -end diff --git a/ecosystem/platform/server/config/initializers/assets.rb b/ecosystem/platform/server/config/initializers/assets.rb deleted file mode 100644 index 4d5b7af956d0f..0000000000000 --- a/ecosystem/platform/server/config/initializers/assets.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Be sure to restart your server when you modify this file. - -# Version of your assets, change this if you want to expire all your assets. -Rails.application.config.assets.version = '1.0' - -# Add additional assets to the asset load path. -# Rails.application.config.assets.paths << Emoji.images_path - -# Precompile additional assets. -# application.js, application.css, and all non-JS/CSS in the app/assets -# folder are already added. -# Rails.application.config.assets.precompile += %w( admin.js admin.css ) diff --git a/ecosystem/platform/server/config/initializers/better_html.rb b/ecosystem/platform/server/config/initializers/better_html.rb deleted file mode 100644 index cdf23678898c6..0000000000000 --- a/ecosystem/platform/server/config/initializers/better_html.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -BetterHtml.configure do |config| - # Ignore ERB files from gems or Rails itself. - config.template_exclusion_filter = proc { |filename| !filename.start_with?(Rails.root.to_s) } -end diff --git a/ecosystem/platform/server/config/initializers/content_security_policy.rb b/ecosystem/platform/server/config/initializers/content_security_policy.rb deleted file mode 100644 index 59fadbf745104..0000000000000 --- a/ecosystem/platform/server/config/initializers/content_security_policy.rb +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Be sure to restart your server when you modify this file. - -# Define an application-wide content security policy -# For further information see the following documentation -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy - -# Rails.application.configure do -# config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" -# end -# -# # Generate session nonces for permitted importmap and inline scripts -# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } -# config.content_security_policy_nonce_directives = %w(script-src) -# -# # Report CSP violations to a specified URI. See: -# # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only -# # config.content_security_policy_report_only = true -# end diff --git a/ecosystem/platform/server/config/initializers/cors.rb b/ecosystem/platform/server/config/initializers/cors.rb deleted file mode 100644 index f6d87380ea885..0000000000000 --- a/ecosystem/platform/server/config/initializers/cors.rb +++ /dev/null @@ -1,24 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Be sure to restart your server when you modify this file. - -# Avoid CORS issues when API is called from the frontend app. -# Handle Cross-Origin Resource Sharing (CORS) in order to accept cross-origin AJAX requests. - -# Read more: https://github.com/cyu/rack-cors - -if Rails.env.development? - # Only allow this during development: long term, should remove - Rails.application.config.middleware.insert_before 0, Rack::Cors do - allow do - origins '*' - - resource '*', - headers: :any, - methods: %i[get post put patch delete options head] - end - end -end diff --git a/ecosystem/platform/server/config/initializers/crash_if_no_db.rb b/ecosystem/platform/server/config/initializers/crash_if_no_db.rb deleted file mode 100644 index b16e07731f96d..0000000000000 --- a/ecosystem/platform/server/config/initializers/crash_if_no_db.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# This crashes if there is no DB present, for @Christian -# Only if this is running as a rails server -if Rails.env.production? && !ENV.fetch('SKIP_DB_CHECK', - nil) && (ActiveRecord::Base.connection.data_source_exists? :users) - Rails.application.config.after_initialize do - User.where(id: 1).exists? - end -end diff --git a/ecosystem/platform/server/config/initializers/delayed.rb b/ecosystem/platform/server/config/initializers/delayed.rb deleted file mode 100644 index c31b36dad61a1..0000000000000 --- a/ecosystem/platform/server/config/initializers/delayed.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -Delayed.logger = Rails.logger - -Delayed.default_log_level = 'debug' diff --git a/ecosystem/platform/server/config/initializers/devise.rb b/ecosystem/platform/server/config/initializers/devise.rb deleted file mode 100644 index 95cffd6ec2062..0000000000000 --- a/ecosystem/platform/server/config/initializers/devise.rb +++ /dev/null @@ -1,320 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Assuming you have not yet modified this file, each configuration option below -# is set to its default value. Note that some are commented out while others -# are not: uncommented lines are intended to protect your configuration from -# breaking changes in upgrades (i.e., in the event that future versions of -# Devise change the default values for those options). -# -# Use this hook to configure devise mailer, warden hooks and so forth. -# Many of these configuration options can be set straight in your model. -Devise.setup do |config| - # The secret key used by Devise. Devise uses this key to generate - # random tokens. Changing this key will render invalid all existing - # confirmation, reset password and unlock tokens in the database. - # Devise will use the `secret_key_base` as its `secret_key` - # by default. You can change it below and use your own secret key. - # config.secret_key = 'afaf66a707e7fe89c641fd...ff7f309f097290768ff090' - - # ==> Controller configuration - # Configure the parent class to the devise controllers. - # config.parent_controller = 'DeviseController' - - # ==> Mailer Configuration - # Configure the e-mail address which will be shown in Devise::Mailer, - # note that it will be overwritten if you use your own mailer class - # with default "from" parameter. - config.mailer_sender = 'community@aptoslabs.com' - - # Configure the class responsible to send e-mails. - # config.mailer = 'Devise::Mailer' - - # Configure the parent class responsible to send e-mails. - # config.parent_mailer = 'ActionMailer::Base' - - # ==> ORM configuration - # Load and configure the ORM. Supports :active_record (default) and - # :mongoid (bson_ext recommended) by default. Other ORMs may be - # available as additional gems. - require 'devise/orm/active_record' - - # ==> Configuration for any authentication mechanism - # Configure which keys are used when authenticating a user. The default is - # just :email. You can configure it to use [:username, :subdomain], so for - # authenticating a user, both parameters are required. Remember that those - # parameters are used only when authenticating and not when retrieving from - # session. If you need permissions, you should implement that in a before filter. - # You can also supply a hash where the value is a boolean determining whether - # or not authentication should be aborted when the value is not present. - config.authentication_keys = [:username] - - # Configure parameters from the request object used for authentication. Each entry - # given should be a request method and it will automatically be passed to the - # find_for_authentication method and considered in your model lookup. For instance, - # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. - # The same considerations mentioned for authentication_keys also apply to request_keys. - # config.request_keys = [] - - # Configure which authentication keys should be case-insensitive. - # These keys will be downcased upon creating or modifying a user and when used - # to authenticate or find a user. Default is :email. - config.case_insensitive_keys = %i[email username] - - # Configure which authentication keys should have whitespace stripped. - # These keys will have whitespace before and after removed upon creating or - # modifying a user and when used to authenticate or find a user. Default is :email. - config.strip_whitespace_keys = %i[email username] - - # Tell if authentication through request.params is enabled. True by default. - # It can be set to an array that will enable params authentication only for the - # given strategies, for example, `config.params_authenticatable = [:database]` will - # enable it only for database (email + password) authentication. - # config.params_authenticatable = true - - # Tell if authentication through HTTP Auth is enabled. False by default. - # It can be set to an array that will enable http authentication only for the - # given strategies, for example, `config.http_authenticatable = [:database]` will - # enable it only for database authentication. - # For API-only applications to support authentication "out-of-the-box", you will likely want to - # enable this with :database unless you are using a custom strategy. - # The supported strategies are: - # :database = Support basic authentication with authentication key + password - # config.http_authenticatable = false - - # If 401 status code should be returned for AJAX requests. True by default. - # config.http_authenticatable_on_xhr = true - - # The realm used in Http Basic Authentication. 'Application' by default. - # config.http_authentication_realm = 'Application' - - # It will change confirmation, password recovery and other workflows - # to behave the same regardless if the e-mail provided was right or wrong. - # Does not affect registerable. - # config.paranoid = true - - # By default Devise will store the user in session. You can skip storage for - # particular strategies by setting this option. - # Notice that if you are skipping storage for all authentication paths, you - # may want to disable generating routes to Devise's sessions controller by - # passing skip: :sessions to `devise_for` in your config/routes.rb - config.skip_session_storage = [:http_auth] - - # By default, Devise cleans up the CSRF token on authentication to - # avoid CSRF token fixation attacks. This means that, when using AJAX - # requests for sign in and sign up, you need to get a new CSRF token - # from the server. You can disable this option at your own risk. - # config.clean_up_csrf_token_on_authentication = true - - # When false, Devise will not attempt to reload routes on eager load. - # This can reduce the time taken to boot the app but if your application - # requires the Devise mappings to be loaded during boot time the application - # won't boot properly. - # config.reload_routes = true - - # ==> Configuration for :database_authenticatable - # For bcrypt, this is the cost for hashing the password and defaults to 12. If - # using other algorithms, it sets how many times you want the password to be hashed. - # The number of stretches used for generating the hashed password are stored - # with the hashed password. This allows you to change the stretches without - # invalidating existing passwords. - # - # Limiting the stretches to just one in testing will increase the performance of - # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use - # a value less than 10 in other environments. Note that, for bcrypt (the default - # algorithm), the cost increases exponentially with the number of stretches (e.g. - # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). - config.stretches = Rails.env.test? ? 1 : 12 - - # Set up a pepper to generate the hashed password. - # config.pepper = '15e9d302d9c7cf3...2cbaa4345309fb06abb70b9bd' - - # Send a notification to the original email when the user's email is changed. - # config.send_email_changed_notification = false - - # Send a notification email when the user's password is changed. - # config.send_password_change_notification = false - - # ==> Configuration for :confirmable - # A period that the user is allowed to access the website even without - # confirming their account. For instance, if set to 2.days, the user will be - # able to access the website for two days without confirming their account, - # access will be blocked just in the third day. - # You can also set it to nil, which will allow the user to access the website - # without confirming their account. - # Default is 0.days, meaning the user cannot access the website without - # confirming their account. - config.allow_unconfirmed_access_for = nil - - # A period that the user is allowed to confirm their account before their - # token becomes invalid. For example, if set to 3.days, the user can confirm - # their account within 3 days after the mail was sent, but on the fourth day - # their account can't be confirmed with the token any more. - # Default is nil, meaning there is no restriction on how long a user can take - # before confirming their account. - # config.confirm_within = 3.days - - # If true, requires any email changes to be confirmed (exactly the same way as - # initial account confirmation) to be applied. Requires additional unconfirmed_email - # db field (see migrations). Until confirmed, new email is stored in - # unconfirmed_email column, and copied to email column on successful confirmation. - config.reconfirmable = true - - # Defines which key will be used when confirming an account - # config.confirmation_keys = [:email] - - # ==> Configuration for :rememberable - # The time the user will be remembered without asking for credentials again. - # config.remember_for = 2.weeks - - # Invalidates all the remember me tokens when the user signs out. - config.expire_all_remember_me_on_sign_out = true - - # If true, extends the user's remember period when remembered via cookie. - # config.extend_remember_period = false - - # Options to be passed to the created cookie. For instance, you can set - # secure: true in order to force SSL only cookies. - # config.rememberable_options = {} - - # ==> Configuration for :validatable - # Range for password length. - config.password_length = 6..128 - - # Email regex used to validate email formats. It simply asserts that - # one (and only one) @ exists in the given string. This is mainly - # to give user feedback and not to assert the e-mail validity. - config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ - - # ==> Configuration for :timeoutable - # The time you want to timeout the user session without activity. After this - # time the user will be asked for credentials again. Default is 30 minutes. - # config.timeout_in = 30.minutes - - # ==> Configuration for :lockable - # Defines which strategy will be used to lock an account. - # :failed_attempts = Locks an account after a number of failed attempts to sign in. - # :none = No lock strategy. You should handle locking by yourself. - # config.lock_strategy = :failed_attempts - - # Defines which key will be used when locking and unlocking an account - # config.unlock_keys = [:email] - - # Defines which strategy will be used to unlock an account. - # :email = Sends an unlock link to the user email - # :time = Re-enables login after a certain amount of time (see :unlock_in below) - # :both = Enables both strategies - # :none = No unlock strategy. You should handle unlocking by yourself. - # config.unlock_strategy = :both - - # Number of authentication tries before locking an account if lock_strategy - # is failed attempts. - # config.maximum_attempts = 20 - - # Time interval to unlock the account if :time is enabled as unlock_strategy. - # config.unlock_in = 1.hour - - # Warn on the last attempt before the account is locked. - # config.last_attempt_warning = true - - # ==> Configuration for :recoverable - # - # Defines which key will be used when recovering the password for an account - # config.reset_password_keys = [:email] - - # Time interval you can reset your password with a reset password key. - # Don't put a too small interval or your users won't have the time to - # change their passwords. - config.reset_password_within = 6.hours - - # When set to false, does not sign a user in automatically after their password is - # reset. Defaults to true, so a user is signed in automatically after a reset. - # config.sign_in_after_reset_password = true - - # ==> Configuration for :encryptable - # Allow you to use another hashing or encryption algorithm besides bcrypt (default). - # You can use :sha1, :sha512 or algorithms from others authentication tools as - # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 - # for default behavior) and :restful_authentication_sha1 (then you should set - # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). - # - # Require the `devise-encryptable` gem when using anything other than bcrypt - # config.encryptor = :sha512 - - # ==> Scopes configuration - # Turn scoped views on. Before rendering "sessions/new", it will first check for - # "users/sessions/new". It's turned off by default because it's slower if you - # are using only default views. - # config.scoped_views = false - - # Configure the default scope given to Warden. By default it's the first - # devise role declared in your routes (usually :user). - # config.default_scope = :user - - # Set this configuration to false if you want /users/sign_out to sign out - # only the current scope. By default, Devise signs out all scopes. - # config.sign_out_all_scopes = true - - # ==> Navigation configuration - # Lists the formats that should be treated as navigational. Formats like - # :html, should redirect to the sign in page when the user does not have - # access, but formats like :xml or :json, should return 401. - # - # If you have any extra navigational formats, like :iphone or :mobile, you - # should add them to the navigational formats lists. - # - # The "*/*" below is required to match Internet Explorer requests. - # config.navigational_formats = ['*/*', :html] - - # The default HTTP method used to sign out a resource. Default is :delete. - config.sign_out_via = :get - - # ==> OmniAuth - # Add a new OmniAuth provider. Check the wiki for more information on setting - # up on your models and hooks. - config.omniauth :developer unless Rails.env.production? - config.omniauth :discord, ENV.fetch('DISCORD_CLIENT_ID', nil), ENV.fetch('DISCORD_CLIENT_SECRET', nil), - scope: 'identify email' - config.omniauth :github, ENV.fetch('GITHUB_CLIENT_ID', nil), ENV.fetch('GITHUB_CLIENT_SECRET', nil), - scope: 'read:user,user:email', provider_ignores_state: true - config.omniauth :google_oauth2, ENV.fetch('GOOGLE_CLIENT_ID', nil), ENV.fetch('GOOGLE_CLIENT_SECRET', nil), - name: 'google' - - # ==> Warden configuration - # If you want to use other strategies, that are not supported by Devise, or - # change the failure app, you can configure them inside the config.warden block. - # - # config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - # end - - # ==> Mountable engine configurations - # When using Devise inside an engine, let's call it `MyEngine`, and this engine - # is mountable, there are some extra configurations to be taken into account. - # The following options are available, assuming the engine is mounted as: - # - # mount MyEngine, at: '/my_engine' - # - # The router that invoked `devise_for`, in the example above, would be: - # config.router_name = :my_engine - # - # When using OmniAuth, Devise cannot automatically set OmniAuth path, - # so you need to do it manually. For the users scope, it would be: - # config.omniauth_path_prefix = '/my_engine/users/auth' - - # ==> Turbolinks configuration - # If your app is using Turbolinks, Turbolinks::Controller needs to be included to make redirection work correctly: - # - # ActiveSupport.on_load(:devise_failure_app) do - # include Turbolinks::Controller - # end - - # ==> Configuration for :registerable - - # When set to false, does not sign a user in automatically after their password is - # changed. Defaults to true, so a user is signed in automatically after changing a password. - # config.sign_in_after_change_password = true -end diff --git a/ecosystem/platform/server/config/initializers/filter_parameter_logging.rb b/ecosystem/platform/server/config/initializers/filter_parameter_logging.rb deleted file mode 100644 index 931c97d7b2573..0000000000000 --- a/ecosystem/platform/server/config/initializers/filter_parameter_logging.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Be sure to restart your server when you modify this file. - -# Configure parameters to be filtered from the log file. Use this to limit dissemination of -# sensitive information. See the ActiveSupport::ParameterFilter documentation for supported -# notations and behaviors. -Rails.application.config.filter_parameters += %i[ - passw secret token _key crypt salt certificate otp ssn -] diff --git a/ecosystem/platform/server/config/initializers/inflections.rb b/ecosystem/platform/server/config/initializers/inflections.rb deleted file mode 100644 index 722848e6f495e..0000000000000 --- a/ecosystem/platform/server/config/initializers/inflections.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Be sure to restart your server when you modify this file. - -# Add new inflection rules using the following format. Inflections -# are locale specific, and you may define rules for as many different -# locales as you wish. All of these examples are active by default: -# ActiveSupport::Inflector.inflections(:en) do |inflect| -# inflect.plural /^(ox)$/i, "\\1en" -# inflect.singular /^(ox)en/i, "\\1" -# inflect.irregular "person", "people" -# inflect.uncountable %w( fish sheep ) -# end - -# These inflection rules are supported but not enabled by default: -ActiveSupport::Inflector.inflections(:en) do |inflect| - inflect.acronym 'KYC' -end diff --git a/ecosystem/platform/server/config/initializers/lograge.rb b/ecosystem/platform/server/config/initializers/lograge.rb deleted file mode 100644 index c761722fb37f6..0000000000000 --- a/ecosystem/platform/server/config/initializers/lograge.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -Rails.application.configure do - config.lograge.enabled = !Rails.env.development? || ENV.fetch('LOGRAGE_IN_DEVELOPMENT', nil) == 'true' - config.lograge.formatter = Lograge::Formatters::Json.new - - config.lograge.custom_options = lambda do |event| - result = {} - result[:time] = Time.now.to_f - result[:request_id] = event.payload[:request_id] - result[:user_id] = event.payload[:user_id] if event.payload[:user_id].present? - result - end -end diff --git a/ecosystem/platform/server/config/initializers/permissions_policy.rb b/ecosystem/platform/server/config/initializers/permissions_policy.rb deleted file mode 100644 index fd137875c1d8d..0000000000000 --- a/ecosystem/platform/server/config/initializers/permissions_policy.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Define an application-wide HTTP permissions policy. For further -# information see https://developers.google.com/web/updates/2018/06/feature-policy -# -# Rails.application.config.permissions_policy do |f| -# f.camera :none -# f.gyroscope :none -# f.microphone :none -# f.usb :none -# f.fullscreen :self -# f.payment :self, "https://secure.example.com" -# end diff --git a/ecosystem/platform/server/config/initializers/schema.rb b/ecosystem/platform/server/config/initializers/schema.rb deleted file mode 100644 index f05003091fc0a..0000000000000 --- a/ecosystem/platform/server/config/initializers/schema.rb +++ /dev/null @@ -1,7 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# These tables are excluded from db/schema.rb. -ActiveRecord::SchemaDumper.ignore_tables = [/^directus_/] diff --git a/ecosystem/platform/server/config/initializers/sentry.rb b/ecosystem/platform/server/config/initializers/sentry.rb deleted file mode 100644 index b8b3f59eb121d..0000000000000 --- a/ecosystem/platform/server/config/initializers/sentry.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -Sentry.init do |config| - config.dsn = ENV.fetch('SENTRY_DSN', nil) - config.breadcrumbs_logger = %i[active_support_logger http_logger] - - config.enabled_environments = %w[staging production] - - # To activate performance monitoring, set one of these options. - # We recommend adjusting the value in production: - config.traces_sample_rate = 0.2 - config.environment = Rails.env -end diff --git a/ecosystem/platform/server/config/initializers/wrap_parameters.rb b/ecosystem/platform/server/config/initializers/wrap_parameters.rb deleted file mode 100644 index 29ff8182eabd5..0000000000000 --- a/ecosystem/platform/server/config/initializers/wrap_parameters.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Be sure to restart your server when you modify this file. - -# This file contains settings for ActionController::ParamsWrapper which -# is enabled by default. - -# Enable parameter wrapping for JSON. You can disable this by setting :format to an empty array. -ActiveSupport.on_load(:action_controller) do - wrap_parameters format: [:json] -end - -# To enable root element in JSON for ActiveRecord objects. -# ActiveSupport.on_load(:active_record) do -# self.include_root_in_json = true -# end diff --git a/ecosystem/platform/server/config/locales/devise.en.yml b/ecosystem/platform/server/config/locales/devise.en.yml deleted file mode 100644 index 53110eebdea0f..0000000000000 --- a/ecosystem/platform/server/config/locales/devise.en.yml +++ /dev/null @@ -1,65 +0,0 @@ -# Additional translations at https://github.com/heartcombo/devise/wiki/I18n - -en: - devise: - confirmations: - confirmed: "Your email address has been successfully confirmed." - send_instructions: "You will receive an email with instructions for how to confirm your email address in a few minutes." - send_paranoid_instructions: "If your email address exists in our database, you will receive an email with instructions for how to confirm your email address in a few minutes." - failure: - already_authenticated: "You are already signed in." - inactive: "Your account is not activated yet." - invalid: "Invalid %{authentication_keys} or password." - locked: "Your account is locked." - last_attempt: "You have one more attempt before your account is locked." - not_found_in_database: "Invalid %{authentication_keys} or password." - timeout: "Your session expired. Please sign in again to continue." - unauthenticated: "You need to sign in or sign up before continuing." - unconfirmed: "You have to confirm your email address before continuing." - mailer: - confirmation_instructions: - subject: "Confirmation instructions" - reset_password_instructions: - subject: "Reset password instructions" - unlock_instructions: - subject: "Unlock instructions" - email_changed: - subject: "Email Changed" - password_change: - subject: "Password Changed" - omniauth_callbacks: - failure: 'Could not authenticate you from %{kind} because "%{reason}".' - success: "Successfully authenticated from %{kind} account." - passwords: - no_token: "You can't access this page without coming from a password reset email. If you do come from a password reset email, please make sure you used the full URL provided." - send_instructions: "You will receive an email with instructions on how to reset your password in a few minutes." - send_paranoid_instructions: "If your email address exists in our database, you will receive a password recovery link at your email address in a few minutes." - updated: "Your password has been changed successfully. You are now signed in." - updated_not_active: "Your password has been changed successfully." - registrations: - destroyed: "Bye! Your account has been successfully cancelled. We hope to see you again soon." - signed_up: "Welcome! You have signed up successfully." - signed_up_but_inactive: "You have signed up successfully. However, we could not sign you in because your account is not yet activated." - signed_up_but_locked: "You have signed up successfully. However, we could not sign you in because your account is locked." - signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please follow the link to activate your account." - update_needs_confirmation: "You updated your account successfully, but we need to verify your new email address. Please check your email and follow the confirmation link to confirm your new email address." - updated: "Your account has been updated successfully." - updated_but_not_signed_in: "Your account has been updated successfully, but since your password was changed, you need to sign in again." - sessions: - signed_in: "Signed in successfully." - signed_out: "Signed out successfully." - already_signed_out: "Signed out successfully." - unlocks: - send_instructions: "You will receive an email with instructions for how to unlock your account in a few minutes." - send_paranoid_instructions: "If your account exists, you will receive an email with instructions for how to unlock it in a few minutes." - unlocked: "Your account has been unlocked successfully. Please sign in to continue." - errors: - messages: - already_confirmed: "was already confirmed, please try signing in" - confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one" - expired: "has expired, please request a new one" - not_found: "not found" - not_locked: "was not locked" - not_saved: - one: "1 error prohibited this %{resource} from being saved:" - other: "%{count} errors prohibited this %{resource} from being saved:" diff --git a/ecosystem/platform/server/config/locales/en.yml b/ecosystem/platform/server/config/locales/en.yml deleted file mode 100644 index 8ca56fc74f3ae..0000000000000 --- a/ecosystem/platform/server/config/locales/en.yml +++ /dev/null @@ -1,33 +0,0 @@ -# Files in the config/locales directory are used for internationalization -# and are automatically loaded by Rails. If you want to use locales other -# than English, add the necessary files in this directory. -# -# To use the locales, use `I18n.t`: -# -# I18n.t "hello" -# -# In views, this is aliased to just `t`: -# -# <%= t("hello") %> -# -# To use a different locale, set it with `I18n.locale`: -# -# I18n.locale = :es -# -# This would use the information in config/locales/es.yml. -# -# The following keys must be escaped otherwise they will not be retrieved by -# the default I18n backend: -# -# true, false, on, off, yes, no -# -# Instead, surround them with single quotes. -# -# en: -# "true": "foo" -# -# To learn more, please read the Rails Internationalization guide -# available at https://guides.rubyonrails.org/i18n.html. - -en: - hello: "Hello world" diff --git a/ecosystem/platform/server/config/puma.rb b/ecosystem/platform/server/config/puma.rb deleted file mode 100644 index 4807bf1403a53..0000000000000 --- a/ecosystem/platform/server/config/puma.rb +++ /dev/null @@ -1,48 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Puma can serve each request in a thread from an internal thread pool. -# The `threads` method setting takes two numbers: a minimum and maximum. -# Any libraries that use thread pools should be configured to match -# the maximum value specified for Puma. Default is set to 5 threads for minimum -# and maximum; this matches the default thread size of Active Record. -# -max_threads_count = ENV.fetch('RAILS_MAX_THREADS', 5) -min_threads_count = ENV.fetch('RAILS_MIN_THREADS') { max_threads_count } -threads min_threads_count, max_threads_count - -# Specifies the `worker_timeout` threshold that Puma will use to wait before -# terminating a worker in development environments. -# -worker_timeout 3600 if ENV.fetch('RAILS_ENV', 'development') == 'development' - -# Specifies the `port` that Puma will listen on to receive requests; default is 3001. -# -port ENV.fetch('PORT', 3001) - -# Specifies the `environment` that Puma will run in. -# -environment ENV.fetch('RAILS_ENV', 'development') - -# Specifies the `pidfile` that Puma will use. -pidfile ENV.fetch('PIDFILE', 'tmp/pids/server.pid') - -# Specifies the number of `workers` to boot in clustered mode. -# Workers are forked web server processes. If using threads and workers together -# the concurrency of the application would be max `threads` * `workers`. -# Workers do not work on JRuby or Windows (both of which do not support -# processes). -# -# workers ENV.fetch("WEB_CONCURRENCY") { 2 } - -# Use the `preload_app!` method when specifying a `workers` number. -# This directive tells Puma to first boot the application and load code -# before forking the application. This takes advantage of Copy On Write -# process behavior so workers use less memory. -# -# preload_app! - -# Allow puma to be restarted by `bin/rails restart` command. -plugin :tmp_restart diff --git a/ecosystem/platform/server/config/routes.rb b/ecosystem/platform/server/config/routes.rb deleted file mode 100644 index 02217e1cf6f6e..0000000000000 --- a/ecosystem/platform/server/config/routes.rb +++ /dev/null @@ -1,116 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -Rails.application.routes.draw do - # Redirect www to non-www - constraints(host: /www\.aptoslabs\.com/) do - match '/(*path)' => redirect { |params, _req| "https://aptoslabs.com/#{params[:path]}" }, via: %i[get post] - end - - # Redirect community.aptoslabs.com to aptoslabs.com - constraints host: /community.aptoslabs.com/ do - match '/*path' => redirect { |params, _req| "https://aptoslabs.com/#{params[:path]}" }, via: %i[get post] - match '/' => redirect { |_params, _req| 'https://aptoslabs.com/community' }, via: %i[get post] - end - - devise_for :users, { - controllers: { - omniauth_callbacks: 'users/omniauth_callbacks', - sessions: 'users/sessions', - confirmations: 'users/confirmations' - } - } - - # Administration - ActiveAdmin.routes(self) - constraints(lambda { |request| - user = request.env['warden'].user - user.respond_to?(:is_root?) && user.is_root? - }) do - # Feature flags - mount Flipper::UI.app(Flipper) => '/flipper' - end - - # Define your application routes per the DSL in https://guides.rubyonrails.org/routing.html - - namespace :user do - root to: redirect('/community') # creates user_root_path, where users go after confirming email - end - - # CMS - resources :articles, param: :slug, only: %i[index show] - resources :network_operations, only: %i[index show] - - # Settings - get 'settings', to: redirect('/settings/profile') - get 'settings/profile' - patch 'settings/profile', to: 'settings#profile_update' - get 'settings/notifications' - patch 'settings/notifications', to: 'settings#notifications_update' - get 'settings/connections' - delete 'settings/connections', to: 'settings#connections_delete' - delete 'settings/delete_account', to: 'settings#delete_account' - - # Discourse SSO - get 'discourse/sso', to: 'discourse#sso' - - # KYC routes - get 'onboarding/kyc_redirect', to: 'onboarding#kyc_redirect' - get 'onboarding/kyc_callback', to: 'onboarding#kyc_callback' - - # Onboarding - get 'onboarding/email' - get 'onboarding/email_success' - post 'onboarding/email', to: 'onboarding#email_update' - - # Health check - get 'health', to: 'health#health' - - # IT3 - resource :it3, only: %i[show update] - resources :it3_profiles, except: %i[show create new index destroy] - resources :it3_surveys, except: %i[index destroy] - - # NFTs - resources :nft_offers, param: :slug, only: %i[show update] - get 'nft_images/:nft_offer_slug/:image_num', to: 'nft_images#show', constraints: { image_num: /\d+/ } - get 'n/:offer_id/:txn_version', as: 'nft_offer_short', to: 'nft_offers#short', constraints: { txn_version: /\d+/ } - - # Leaderboards - get 'leaderboard/it1', to: redirect('/it1') - get 'leaderboard/it2', to: redirect('/it2') - get 'leaderboard/it3' - - # IT1 - get 'it1', to: 'leaderboard#it1' - get 'it2', to: 'leaderboard#it2' - - # Projects - resources :projects, except: %i[edit update] - - # User profiles - resources :users, only: %i[show] do - get 'projects' - get 'activity' - get 'rewards' - end - - # Wallets - resources :wallets, only: %i[show create] - - # Discord invite link - get 'discord', to: redirect('https://discord.com/invite/aptoslabs') - - # Static pages - get 'community', to: 'static_page#community' - get 'incentivized-testnet', to: 'static_page#incentivized_testnet' - get 'terms', to: 'static_page#terms' - get 'terms-testnet', to: 'static_page#terms_testnet' - get 'privacy', to: 'static_page#privacy' - get 'developers', to: 'static_page#developers' - get 'currents', to: 'static_page#currents' - get 'careers', to: 'static_page#careers' - root 'static_page#root' -end diff --git a/ecosystem/platform/server/config/storage.yml b/ecosystem/platform/server/config/storage.yml deleted file mode 100644 index 98b8697841bc3..0000000000000 --- a/ecosystem/platform/server/config/storage.yml +++ /dev/null @@ -1,33 +0,0 @@ -test: - service: Disk - root: <%= Rails.root.join("tmp/storage") %> - -local: - service: Disk - root: <%= Rails.root.join("storage") %> - -# Use bin/rails credentials:edit to set the AWS secrets (as aws:access_key_id|secret_access_key) -# amazon: -# service: S3 -# access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %> -# secret_access_key: <%= Rails.application.credentials.dig(:aws, :secret_access_key) %> -# region: us-east-1 -# bucket: your_own_bucket-<%= Rails.env %> - -# Remember not to checkin your GCS keyfile to a repository -google: - service: GCS - project: aptos-community-<%= ENV['STORAGE_ENV'] %> - bucket: aptos-community-assets-<%= ENV['STORAGE_ENV'] %> - gsa_email: community-app@aptos-community-staging.iam.gserviceaccount.com - iam: true - -google_keybased: - service: GCS - project: aptos-community-<%= ENV['STORAGE_ENV'] %> - bucket: aptos-community-assets-<%= ENV['STORAGE_ENV'] %> - credentials: <%= Rails.root.join("aptos-community-sa-keys.json") %> -# mirror: -# service: Mirror -# primary: local -# mirrors: [ amazon, google ] diff --git a/ecosystem/platform/server/db/migrate/20220429011641_devise_create_users.rb b/ecosystem/platform/server/db/migrate/20220429011641_devise_create_users.rb deleted file mode 100644 index 3e1d225111781..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220429011641_devise_create_users.rb +++ /dev/null @@ -1,53 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class DeviseCreateUsers < ActiveRecord::Migration[7.0] - def change - create_table :users do |t| - ## Database authenticatable - t.string :username, null: true - t.string :email, null: true - - # Password auth only for admins - t.string :encrypted_password, null: false, default: '' - - ## Recoverable - t.string :reset_password_token - t.datetime :reset_password_sent_at - - ## Rememberable - t.datetime :remember_created_at - - ## Trackable - t.integer :sign_in_count, default: 0, null: false - t.datetime :current_sign_in_at - t.datetime :last_sign_in_at - t.string :current_sign_in_ip - t.string :last_sign_in_ip - - ## Confirmable - t.string :confirmation_token - t.datetime :confirmed_at - t.datetime :confirmation_sent_at - t.string :unconfirmed_email # Only if using reconfirmable - - ## Lockable - # t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts - # t.string :unlock_token # Only if unlock strategy is :email or :both - # t.datetime :locked_at - - # Admin flag - t.boolean :is_root, null: false, default: false - - t.timestamps null: false - end - - add_index :users, :username, unique: true - add_index :users, :email, unique: true - add_index :users, :reset_password_token, unique: true - add_index :users, :confirmation_token, unique: true - # add_index :users, :unlock_token, unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220429011642_add_personas_to_user.rb b/ecosystem/platform/server/db/migrate/20220429011642_add_personas_to_user.rb deleted file mode 100644 index 6c00d3c32b40f..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220429011642_add_personas_to_user.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddPersonasToUser < ActiveRecord::Migration[6.1] - def change - change_table :users do |t| - t.boolean :is_developer, null: false, default: false - t.boolean :is_node_operator, null: false, default: false - - t.string :mainnet_address, null: true - t.string :kyc_status, null: false, default: :not_started - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220429011643_create_authorizations.rb b/ecosystem/platform/server/db/migrate/20220429011643_create_authorizations.rb deleted file mode 100644 index af8ca4424710e..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220429011643_create_authorizations.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateAuthorizations < ActiveRecord::Migration[6.1] - def change - create_table :authorizations do |t| - t.integer :user_id - t.string :provider - t.string :uid - t.string :email - - t.string :username - t.string :full_name - t.text :profile_url - - t.string :token - t.string :secret - t.string :refresh_token - t.boolean :expires - t.datetime :expires_at - t.timestamps - - t.index %i[provider uid], name: :index_authorizations_on_provider_and_uid - t.index [:provider], name: :index_authorizations_on_provider - t.index [:uid], name: :index_authorizations_on_uid - t.index [:user_id], name: :index_authorizations_on_user_id - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220429012658_create_active_admin_comments.rb b/ecosystem/platform/server/db/migrate/20220429012658_create_active_admin_comments.rb deleted file mode 100644 index f019a7e9c26a5..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220429012658_create_active_admin_comments.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateActiveAdminComments < ActiveRecord::Migration[7.0] - def self.up - create_table :active_admin_comments do |t| - t.string :namespace - t.text :body - t.references :resource, polymorphic: true - t.references :author, polymorphic: true - t.timestamps - end - add_index :active_admin_comments, [:namespace] - end - - def self.down - drop_table :active_admin_comments - end -end diff --git a/ecosystem/platform/server/db/migrate/20220506185917_create_it1_profiles.rb b/ecosystem/platform/server/db/migrate/20220506185917_create_it1_profiles.rb deleted file mode 100644 index 88376df251b63..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220506185917_create_it1_profiles.rb +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -class CreateIt1Profiles < ActiveRecord::Migration[7.0] - def change - create_table :it1_profiles do |t| - t.references :user, null: false, foreign_key: true, unique: true - t.string :consensus_key, unique: true - t.string :account_key, unique: true - t.string :network_key, unique: true - - t.string :validator_ip - t.string :validator_address - t.integer :validator_port - t.integer :validator_metrics_port - t.integer :validator_api_port - - t.boolean :validator_verified, default: false - - t.string :fullnode_address - t.integer :fullnode_port - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220509235946_create_delayed_jobs.rb b/ecosystem/platform/server/db/migrate/20220509235946_create_delayed_jobs.rb deleted file mode 100644 index b66a121f0bc8f..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220509235946_create_delayed_jobs.rb +++ /dev/null @@ -1,29 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# -# rubocop:disable Layout/LineLength -class CreateDelayedJobs < ActiveRecord::Migration[7.0] - def self.up - create_table :delayed_jobs do |table| - table.integer :priority, default: 0, null: false # Allows some jobs to jump to the front of the queue - table.integer :attempts, default: 0, null: false # Provides for retries, but still fail eventually. - table.text :handler, null: false # YAML-encoded string of the object that will do work - table.text :last_error # reason for last failure (See Note below) - table.datetime :run_at # When to run. Could be Time.zone.now for immediately, or sometime in the future. - table.datetime :locked_at # Set when a client is working on this object - table.datetime :failed_at # Set when all retries have failed - table.string :locked_by # Who is working on this object (if locked) - table.string :queue # The name of the queue this job is in - table.timestamps null: true - end - - add_index :delayed_jobs, %i[priority run_at], name: 'delayed_jobs_priority' - end - - def self.down - drop_table :delayed_jobs - end -end -# rubocop:enable Layout/LineLength diff --git a/ecosystem/platform/server/db/migrate/20220511001438_add_terms_to_it1.rb b/ecosystem/platform/server/db/migrate/20220511001438_add_terms_to_it1.rb deleted file mode 100644 index a2ec0a6ff3442..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220511001438_add_terms_to_it1.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -class AddTermsToIt1 < ActiveRecord::Migration[7.0] - def change - change_table :it1_profiles do |t| - t.boolean :terms_accepted, default: false - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220511034418_create_locations.rb b/ecosystem/platform/server/db/migrate/20220511034418_create_locations.rb deleted file mode 100644 index 98c1658c75a17..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220511034418_create_locations.rb +++ /dev/null @@ -1,74 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# rubocop:disable Layout/LineLength -class CreateLocations < ActiveRecord::Migration[7.0] - def change - create_table :locations do |t| - t.references :item, polymorphic: true, null: false - - # Location fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/Location - t.integer :accuracy_radius # The approximate accuracy radius in kilometers around the latitude and longitude for the IP address. - t.integer :average_income # The average income in US dollars associated with the requested IP address. - t.float :latitude # The approximate latitude of the location associated with the IP address. - t.float :longitude # The approximate longitude of the location associated with the IP address. - t.integer :metro_code # The metro code of the location if the location is in the US. - t.integer :population_density # The estimated population per square kilometer associated with the IP address. - t.string :time_zone # The time zone associated with location, as specified by the IANA Time Zone Database, e.g., “America/New_York”. - - # Traits fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/Traits - t.boolean :anonymous # This is true if the IP address belongs to any sort of anonymous network. - t.boolean :anonymous_vpn # This is true if the IP address is registered to an anonymous VPN provider. If a VPN provider does not register subnets under names associated with them, we will likely only flag their IP ranges using the hosting_provider property. - t.integer :autonomous_system_number # The autonomous system number associated with the IP address. - t.string :autonomous_system_organization # The organization associated with the registered autonomous system number for the IP address. - t.string :connection_type # The connection type may take the following values: “Dialup”, “Cable/DSL”, “Corporate”, “Cellular”. - t.string :domain # he second level domain associated with the IP address. This will be something like “example.com” or “example.co.uk”, not “foo.example.com”. - t.boolean :hosting_provider # This is true if the IP address belongs to a hosting or VPN provider (see description of the anonymous_vpn property). - t.string :ip_address # The IP address that the data in the model is for. If you performed a “me” lookup against the web service, this will be the externally routable IP address for the system the code is running on. If the system is behind a NAT, this may differ from the IP address locally assigned to it. - t.string :isp # The name of the ISP associated with the IP address. - t.boolean :legitimate_proxy # This attribute is true if MaxMind believes this IP address to be a legitimate proxy, such as an internal VPN used by a corporation. - t.string :mobile_country_code # The mobile country code (MCC) associated with the IP address and ISP. - t.string :mobile_network_code # The mobile network code (MNC) associated with the IP address and ISP. - t.string :network # The network in CIDR notation associated with the record. - t.string :organization # The name of the organization associated with the IP address. - t.boolean :public_proxy # This is true if the IP address belongs to a public proxy. - t.boolean :residential_proxy # This is true if the IP address is on a suspected anonymizing network and belongs to a residential ISP. - t.float :static_ip_score # An indicator of how static or dynamic an IP address is. - t.boolean :tor_exit_node # This is true if the IP address is a Tor exit node. - t.integer :user_count # The estimated number of users sharing the IP/network during the past 24 hours. - t.string :user_type # The user type associated with the IP address. This can be one of the following values:, business, cafe, cellular, college, content_delivery_network, dialup, government, hosting, library, military, residential, router, school, search_engine_spider, traveler - - # Continent fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/Continent - t.string :continent_code # A two character continent code like “NA” (North America) or “OC” (Oceania). - t.string :continent_geoname_id # The GeoName ID for the continent. - t.string :continent_name # The first available localized name in order of preference. - - # Country fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/Country - t.integer :country_confidence # A value from 0-100 indicating MaxMind's confidence that the country is correct. - t.string :country_geoname_id # The GeoName ID for the country. - t.string :country_iso_code # The two-character ISO 3166-1 alpha code for the country. - t.string :country_name # The first available localized name in order of preference. - - # Subdivision fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/Subdivision - t.integer :subdivision_confidence # This is a value from 0-100 indicating MaxMind's confidence that the subdivision is correct. - t.string :subdivision_geoname_id # TThis is a GeoName ID for the subdivision. - t.string :subdivision_iso_code # This is a string up to three characters long contain the subdivision portion of the ISO 3166-2 code. - t.string :subdivision_name # The first available localized name in order of preference. - - # City fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/City - t.integer :city_confidence # A value from 0-100 indicating MaxMind's confidence that the city is correct. - t.string :city_geoname_id # The GeoName ID for the city. - t.string :city_name # The first available localized name in order of preference. - - # Postal fields: https://www.rubydoc.info/gems/maxmind-geoip2/MaxMind/GeoIP2/Record/Postal - t.integer :postal_confidence # A value from 0-100 indicating MaxMind's confidence that the postal code is correct. - t.string :postal_code # The postal code of the location. - - t.timestamps - end - end -end - -# rubocop:enable Layout/LineLength diff --git a/ecosystem/platform/server/db/migrate/20220511230000_add_pg_crypto.rb b/ecosystem/platform/server/db/migrate/20220511230000_add_pg_crypto.rb deleted file mode 100644 index e513b9933814b..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220511230000_add_pg_crypto.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -class AddPgCrypto < ActiveRecord::Migration[7.0] - def change - enable_extension 'pgcrypto' - end -end diff --git a/ecosystem/platform/server/db/migrate/20220511232114_add_guid_to_user.rb b/ecosystem/platform/server/db/migrate/20220511232114_add_guid_to_user.rb deleted file mode 100644 index 3a51fae06be3d..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220511232114_add_guid_to_user.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddGuidToUser < ActiveRecord::Migration[7.0] - def change - change_table :users do |t| - t.uuid :external_id, null: false, default: 'gen_random_uuid()' - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220512031021_add_kyc_fields_to_users.rb b/ecosystem/platform/server/db/migrate/20220512031021_add_kyc_fields_to_users.rb deleted file mode 100644 index 9228702e99c33..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220512031021_add_kyc_fields_to_users.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -class AddKYCFieldsToUsers < ActiveRecord::Migration[7.0] - def change - change_table :users do |t| - t.boolean :kyc_exempt, default: false - t.string :completed_persona_inquiry_id - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220513141301_add_fullnode_network_key_to_it1_profile.rb b/ecosystem/platform/server/db/migrate/20220513141301_add_fullnode_network_key_to_it1_profile.rb deleted file mode 100644 index c35b4e7846762..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220513141301_add_fullnode_network_key_to_it1_profile.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -class AddFullnodeNetworkKeyToIt1Profile < ActiveRecord::Migration[7.0] - def change - add_column :it1_profiles, :fullnode_network_key, :string, unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220520172136_create_flipper_tables.rb b/ecosystem/platform/server/db/migrate/20220520172136_create_flipper_tables.rb deleted file mode 100644 index e3b882ee3c46d..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220520172136_create_flipper_tables.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -class CreateFlipperTables < ActiveRecord::Migration[7.0] - def self.up - create_table :flipper_features do |t| - t.string :key, null: false - t.timestamps null: false - end - add_index :flipper_features, :key, unique: true - - create_table :flipper_gates do |t| - t.string :feature_key, null: false - t.string :key, null: false - t.string :value - t.timestamps null: false - end - add_index :flipper_gates, %i[feature_key key value], unique: true - end - - def self.down - drop_table :flipper_gates - drop_table :flipper_features - end -end diff --git a/ecosystem/platform/server/db/migrate/20220520193550_add_selected_to_it1_profile.rb b/ecosystem/platform/server/db/migrate/20220520193550_add_selected_to_it1_profile.rb deleted file mode 100644 index 9a9f5dcabaa45..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220520193550_add_selected_to_it1_profile.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -class AddSelectedToIt1Profile < ActiveRecord::Migration[7.0] - def change - add_column :it1_profiles, :selected, :boolean, default: false, null: false, - comment: 'Whether this node is selected for participation in IT1.' - end -end diff --git a/ecosystem/platform/server/db/migrate/20220522220553_add_final_checks_for_it1.rb b/ecosystem/platform/server/db/migrate/20220522220553_add_final_checks_for_it1.rb deleted file mode 100644 index 38a52fa21ca05..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220522220553_add_final_checks_for_it1.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddFinalChecksForIt1 < ActiveRecord::Migration[7.0] - def change - add_column :it1_profiles, :validator_verified_final, :boolean - add_column :it1_profiles, :metrics_data, :jsonb - end -end diff --git a/ecosystem/platform/server/db/migrate/20220602180010_add_indexes_to_users.rb b/ecosystem/platform/server/db/migrate/20220602180010_add_indexes_to_users.rb deleted file mode 100644 index 4c22edfe20d72..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220602180010_add_indexes_to_users.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddIndexesToUsers < ActiveRecord::Migration[7.0] - def change - add_index :users, :external_id - add_index :users, :current_sign_in_ip - add_index :users, :last_sign_in_ip - end -end diff --git a/ecosystem/platform/server/db/migrate/20220607175842_create_nft_offers.rb b/ecosystem/platform/server/db/migrate/20220607175842_create_nft_offers.rb deleted file mode 100644 index 2ead20cd1de9c..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220607175842_create_nft_offers.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateNftOffers < ActiveRecord::Migration[7.0] - def change - create_table :nft_offers do |t| - t.string :name, null: false - t.datetime :valid_from - t.datetime :valid_until - - t.timestamps - end - add_index :nft_offers, :name, unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220607180333_create_nfts.rb b/ecosystem/platform/server/db/migrate/20220607180333_create_nfts.rb deleted file mode 100644 index 7934b65d18c3f..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220607180333_create_nfts.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateNfts < ActiveRecord::Migration[7.0] - def change - create_table :nfts do |t| - t.references :user, null: false, foreign_key: true - t.references :nft_offer, null: false, foreign_key: true - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220610190033_add_explorer_url_to_nft.rb b/ecosystem/platform/server/db/migrate/20220610190033_add_explorer_url_to_nft.rb deleted file mode 100644 index dc0f95963d88f..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220610190033_add_explorer_url_to_nft.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddExplorerUrlToNft < ActiveRecord::Migration[7.0] - def change - add_column :nfts, :explorer_url, :string - end -end diff --git a/ecosystem/platform/server/db/migrate/20220615171316_create_it2_profiles.rb b/ecosystem/platform/server/db/migrate/20220615171316_create_it2_profiles.rb deleted file mode 100644 index e2c0905afe5e6..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220615171316_create_it2_profiles.rb +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateIt2Profiles < ActiveRecord::Migration[7.0] - def change - create_table :it2_profiles do |t| - t.references :user, null: false, foreign_key: true, index: { unique: true } - t.string :consensus_key, null: false, index: { unique: true } - t.string :account_key, null: false, index: { unique: true } - t.string :network_key, null: false, index: { unique: true } - t.string :validator_ip - t.string :validator_address, null: false - t.integer :validator_port, null: false - t.integer :validator_metrics_port, null: false - t.integer :validator_api_port, null: false - t.boolean :validator_verified, default: false, null: false - t.string :fullnode_address - t.integer :fullnode_port - t.string :fullnode_network_key, index: { unique: true } - t.boolean :terms_accepted, default: false, null: false - t.boolean :selected, default: false, null: false, - comment: 'Whether this node is selected for participation in IT2.' - t.boolean :validator_verified_final - t.jsonb :metrics_data - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220627190226_create_it2_surveys.rb b/ecosystem/platform/server/db/migrate/20220627190226_create_it2_surveys.rb deleted file mode 100644 index 3f736d0ced640..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220627190226_create_it2_surveys.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateIt2Surveys < ActiveRecord::Migration[7.0] - def change - create_table :it2_surveys do |t| - t.references :user, null: false, foreign_key: true - t.string :persona, null: false - t.string :participate_reason, null: false - t.string :qualified_reason, null: false - t.string :website - t.string :interest_reason, null: false - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220701031008_add_job_id_to_it2_profile.rb b/ecosystem/platform/server/db/migrate/20220701031008_add_job_id_to_it2_profile.rb deleted file mode 100644 index fd50c4ad676c8..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220701031008_add_job_id_to_it2_profile.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddJobIdToIt2Profile < ActiveRecord::Migration[7.0] - def change - add_column :it2_profiles, :nhc_job_id, :string, null: true - add_column :it2_profiles, :nhc_output, :text, null: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220707015905_add_discourse_id_to_users.rb b/ecosystem/platform/server/db/migrate/20220707015905_add_discourse_id_to_users.rb deleted file mode 100644 index 1b05232eaa6e0..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220707015905_add_discourse_id_to_users.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddDiscourseIdToUsers < ActiveRecord::Migration[7.0] - def change - add_column :users, :discourse_id, :integer, null: true, index: { unique: true } - end -end diff --git a/ecosystem/platform/server/db/migrate/20220707181731_create_articles.rb b/ecosystem/platform/server/db/migrate/20220707181731_create_articles.rb deleted file mode 100644 index 51ee09048537b..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220707181731_create_articles.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateArticles < ActiveRecord::Migration[7.0] - def change - create_table :articles do |t| - t.string :title, null: false - t.string :slug, null: false - t.text :content, null: false - t.string :status, null: false, default: 'draft' - - t.timestamps null: true - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220729235238_add_account_address_to_itprofiles.rb b/ecosystem/platform/server/db/migrate/20220729235238_add_account_address_to_itprofiles.rb deleted file mode 100644 index bc0ac6e9dd1e2..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220729235238_add_account_address_to_itprofiles.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddAccountAddressToItprofiles < ActiveRecord::Migration[7.0] - def change - add_column :it1_profiles, :account_address, :string, index: { unique: true } - add_column :it2_profiles, :account_address, :string, index: { unique: true } - end -end diff --git a/ecosystem/platform/server/db/migrate/20220730180322_populate_account_address_on_itprofiles.rb b/ecosystem/platform/server/db/migrate/20220730180322_populate_account_address_on_itprofiles.rb deleted file mode 100644 index c49a4e325d616..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220730180322_populate_account_address_on_itprofiles.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class PopulateAccountAddressOnItprofiles < ActiveRecord::Migration[7.0] - # The following was already run asynchronously in staging/prod, to prevent downtime - def up - $stdout.sync = true - ActiveRecord::Base.logger = Logger.new($stdout, level: Logger::INFO) - - [It1Profile, It2Profile].each do |ait_klass| - profile_query = ait_klass.where.not(account_key: nil).where(account_address: nil) - profile_count = profile_query.count - puts "#{profile_count} #{ait_klass.to_s.pluralize} to process" - total_processed = 0 - profile_query.find_in_batches.map do |group| - group.each { |ait| ait.update_columns(account_address: ApplicationRecord.address_from_key(ait.account_key)) } - total_processed += group.length - puts "Processed #{total_processed}/#{profile_count} #{ait_klass.to_s.pluralize}" - end - end - end - - def down; end -end diff --git a/ecosystem/platform/server/db/migrate/20220801170954_create_notifications.rb b/ecosystem/platform/server/db/migrate/20220801170954_create_notifications.rb deleted file mode 100644 index 2b5e94d2da449..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220801170954_create_notifications.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateNotifications < ActiveRecord::Migration[7.0] - def change - create_table :notifications do |t| - t.references :recipient, polymorphic: true, null: false - t.string :type, null: false - t.jsonb :params - t.datetime :read_at - - t.timestamps - end - add_index :notifications, :read_at - end -end diff --git a/ecosystem/platform/server/db/migrate/20220801171703_create_network_operations.rb b/ecosystem/platform/server/db/migrate/20220801171703_create_network_operations.rb deleted file mode 100644 index dc1a87af7adf0..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220801171703_create_network_operations.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateNetworkOperations < ActiveRecord::Migration[7.0] - def change - create_table :network_operations do |t| - t.string :title, null: false - t.text :content, null: false - - t.timestamps null: true - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220801175155_create_it3_profiles.rb b/ecosystem/platform/server/db/migrate/20220801175155_create_it3_profiles.rb deleted file mode 100644 index 553c05deae4cd..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220801175155_create_it3_profiles.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateIt3Profiles < ActiveRecord::Migration[7.0] - def change - create_table :it3_profiles do |t| - t.references :user, null: false, foreign_key: true, index: { unique: true } - t.string :owner_key, null: false, index: { unique: true } - t.string :consensus_key, null: false, index: { unique: true } - t.string :account_key, null: false, index: { unique: true } - t.string :network_key, null: false, index: { unique: true } - t.string :validator_ip - t.string :validator_address, null: false - t.integer :validator_port, null: false - t.integer :validator_metrics_port, null: false - t.integer :validator_api_port, null: false - t.boolean :validator_verified, default: false, null: false - t.string :fullnode_address - t.integer :fullnode_port - t.string :fullnode_network_key, index: { unique: true } - t.boolean :terms_accepted, default: false, null: false - t.boolean :selected, default: false, null: false, - comment: 'Whether this node is selected for participation in IT3.' - t.boolean :validator_verified_final - t.jsonb :metrics_data - t.string :nhc_job_id, null: true - t.text :nhc_output, null: true - t.string :account_address, null: false, index: { unique: true } - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220801175454_create_it3_surveys.rb b/ecosystem/platform/server/db/migrate/20220801175454_create_it3_surveys.rb deleted file mode 100644 index 133ad29ffad15..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220801175454_create_it3_surveys.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateIt3Surveys < ActiveRecord::Migration[7.0] - def change - create_table :it3_surveys do |t| - t.references :user, null: false, foreign_key: true - t.string :persona, null: false - t.string :participate_reason, null: false - t.string :qualified_reason, null: false - t.string :website - t.string :interest_reason, null: false - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220811165000_create_active_storage_tables.active_storage.rb b/ecosystem/platform/server/db/migrate/20220811165000_create_active_storage_tables.active_storage.rb deleted file mode 100644 index 71dfd7aa3a731..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220811165000_create_active_storage_tables.active_storage.rb +++ /dev/null @@ -1,64 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# This migration comes from active_storage (originally 20170806125915) -class CreateActiveStorageTables < ActiveRecord::Migration[5.2] - def change - # Use Active Record's configured type for primary and foreign keys - primary_key_type, foreign_key_type = primary_and_foreign_key_types - - create_table :active_storage_blobs, id: primary_key_type do |t| - t.string :key, null: false - t.string :filename, null: false - t.string :content_type - t.text :metadata - t.string :service_name, null: false - t.bigint :byte_size, null: false - t.string :checksum - - if connection.supports_datetime_with_precision? - t.datetime :created_at, precision: 6, null: false - else - t.datetime :created_at, null: false - end - - t.index [:key], unique: true - end - - create_table :active_storage_attachments, id: primary_key_type do |t| - t.string :name, null: false - t.references :record, null: false, polymorphic: true, index: false, type: foreign_key_type - t.references :blob, null: false, type: foreign_key_type - - if connection.supports_datetime_with_precision? - t.datetime :created_at, precision: 6, null: false - else - t.datetime :created_at, null: false - end - - t.index %i[record_type record_id name blob_id], name: :index_active_storage_attachments_uniqueness, - unique: true - t.foreign_key :active_storage_blobs, column: :blob_id - end - - create_table :active_storage_variant_records, id: primary_key_type do |t| - t.belongs_to :blob, null: false, index: false, type: foreign_key_type - t.string :variation_digest, null: false - - t.index %i[blob_id variation_digest], name: :index_active_storage_variant_records_uniqueness, unique: true - t.foreign_key :active_storage_blobs, column: :blob_id - end - end - - private - - def primary_and_foreign_key_types - config = Rails.configuration.generators - setting = config.options[config.orm][:primary_key_type] - primary_key_type = setting || :primary_key - foreign_key_type = setting || :bigint - [primary_key_type, foreign_key_type] - end -end diff --git a/ecosystem/platform/server/db/migrate/20220811165226_create_projects.rb b/ecosystem/platform/server/db/migrate/20220811165226_create_projects.rb deleted file mode 100644 index 2240fced0306a..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220811165226_create_projects.rb +++ /dev/null @@ -1,26 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateProjects < ActiveRecord::Migration[7.0] - def change - create_table :projects do |t| - t.references :user, null: false, foreign_key: true - t.string :title, null: false - t.string :short_description, null: false - t.string :full_description, null: false - t.string :website_url, null: false - t.string :github_url - t.string :discord_url - t.string :twitter_url - t.string :telegram_url - t.string :linkedin_url - t.string :youtube_url - t.string :forum_url - t.boolean :public, null: false - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220811165347_create_categories.rb b/ecosystem/platform/server/db/migrate/20220811165347_create_categories.rb deleted file mode 100644 index 2c444832fe022..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220811165347_create_categories.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateCategories < ActiveRecord::Migration[7.0] - def change - create_table :categories do |t| - t.string :title, null: false - - t.timestamps - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220811165357_create_project_categories.rb b/ecosystem/platform/server/db/migrate/20220811165357_create_project_categories.rb deleted file mode 100644 index 5f75c46231f4c..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220811165357_create_project_categories.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateProjectCategories < ActiveRecord::Migration[7.0] - def change - create_table :project_categories do |t| - t.references :project, null: false, foreign_key: true - t.references :category, null: false, foreign_key: true - - t.timestamps - end - - add_index :project_categories, %i[category_id project_id], unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220811165538_create_project_members.rb b/ecosystem/platform/server/db/migrate/20220811165538_create_project_members.rb deleted file mode 100644 index e74d1926969da..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220811165538_create_project_members.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateProjectMembers < ActiveRecord::Migration[7.0] - def change - create_table :project_members do |t| - t.references :project, null: false, foreign_key: true - t.references :user, null: false, foreign_key: true - t.string :role, null: false - t.boolean :public, null: false - - t.timestamps - end - - add_index :project_members, %i[project_id user_id], unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220816173205_add_initial_categories.rb b/ecosystem/platform/server/db/migrate/20220816173205_add_initial_categories.rb deleted file mode 100644 index 755400ffba235..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220816173205_add_initial_categories.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddInitialCategories < ActiveRecord::Migration[7.0] - def up - Category.create(title: 'NFTs') - Category.create(title: 'DeFi') - Category.create(title: 'Gaming') - Category.create(title: 'Tooling') - Category.create(title: 'Wallets') - Category.create(title: 'Data') - Category.create(title: 'Lending') - Category.create(title: 'Other') - end - - def down - Category.delete_all - end -end diff --git a/ecosystem/platform/server/db/migrate/20220817185306_create_notification_preferences.rb b/ecosystem/platform/server/db/migrate/20220817185306_create_notification_preferences.rb deleted file mode 100644 index 0071d9381f70f..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220817185306_create_notification_preferences.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateNotificationPreferences < ActiveRecord::Migration[7.0] - def change - create_table :notification_preferences do |t| - t.references :user, null: false, foreign_key: true - t.integer :delivery_method, null: false, default: 0 - t.boolean :node_upgrade_notification, null: false, default: true - t.boolean :governance_proposal_notification, null: false, default: true - - t.timestamps - end - - add_index :notification_preferences, %i[user_id delivery_method], unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220819161242_add_notified_at_to_network_operation.rb b/ecosystem/platform/server/db/migrate/20220819161242_add_notified_at_to_network_operation.rb deleted file mode 100644 index 4a7aad27c7f8a..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220819161242_add_notified_at_to_network_operation.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddNotifiedAtToNetworkOperation < ActiveRecord::Migration[7.0] - def change - add_column :network_operations, :notified_at, :datetime, - comment: 'The time at which a notification was sent for this network operation.' - end -end diff --git a/ecosystem/platform/server/db/migrate/20220819233543_add_consensus_pop_to_it3_profiles.rb b/ecosystem/platform/server/db/migrate/20220819233543_add_consensus_pop_to_it3_profiles.rb deleted file mode 100644 index 7dfc791c2fb73..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220819233543_add_consensus_pop_to_it3_profiles.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddConsensusPopToIt3Profiles < ActiveRecord::Migration[7.0] - def change - add_column :it3_profiles, :consensus_pop, :string - end -end diff --git a/ecosystem/platform/server/db/migrate/20220823183316_change_notification_preferences_default_to_false.rb b/ecosystem/platform/server/db/migrate/20220823183316_change_notification_preferences_default_to_false.rb deleted file mode 100644 index 426eb2db2e34b..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220823183316_change_notification_preferences_default_to_false.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class ChangeNotificationPreferencesDefaultToFalse < ActiveRecord::Migration[7.0] - def change - change_column_default :notification_preferences, :governance_proposal_notification, from: true, to: false - change_column_default :notification_preferences, :node_upgrade_notification, from: true, to: false - end -end diff --git a/ecosystem/platform/server/db/migrate/20220823211505_add_bio_to_users.rb b/ecosystem/platform/server/db/migrate/20220823211505_add_bio_to_users.rb deleted file mode 100644 index e18d269c86cd7..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220823211505_add_bio_to_users.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddBioToUsers < ActiveRecord::Migration[7.0] - def change - add_column :users, :bio, :string - end -end diff --git a/ecosystem/platform/server/db/migrate/20220826211507_add_owner_address_to_itprofiles.rb b/ecosystem/platform/server/db/migrate/20220826211507_add_owner_address_to_itprofiles.rb deleted file mode 100644 index 99f603c01e885..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220826211507_add_owner_address_to_itprofiles.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddOwnerAddressToItprofiles < ActiveRecord::Migration[7.0] - def change - add_column :it3_profiles, :owner_address, :string, index: { unique: true } - end -end diff --git a/ecosystem/platform/server/db/migrate/20220826211508_populate_owner_address_on_itprofiles.rb b/ecosystem/platform/server/db/migrate/20220826211508_populate_owner_address_on_itprofiles.rb deleted file mode 100644 index 91a2d8917cf22..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220826211508_populate_owner_address_on_itprofiles.rb +++ /dev/null @@ -1,24 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class PopulateOwnerAddressOnItprofiles < ActiveRecord::Migration[7.0] - # The following was already run asynchronously in staging/prod, to prevent downtime - def up - $stdout.sync = true - ActiveRecord::Base.logger = Logger.new($stdout, level: Logger::INFO) - - profile_query = It3Profile.where.not(owner_key: nil).where(owner_address: nil) - profile_count = profile_query.count - puts "#{profile_count} #{It3Profile.to_s.pluralize} to process" - total_processed = 0 - profile_query.find_in_batches.map do |group| - group.each { |ait| ait.update_columns(owner_address: ApplicationRecord.address_from_key(ait.owner_key)) } - total_processed += group.length - puts "Processed #{total_processed}/#{profile_count} #{It3Profile.to_s.pluralize}" - end - end - - def down; end -end diff --git a/ecosystem/platform/server/db/migrate/20220831174120_add_fullnode_api_port_to_it3_profiles.rb b/ecosystem/platform/server/db/migrate/20220831174120_add_fullnode_api_port_to_it3_profiles.rb deleted file mode 100644 index 8933d87434270..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220831174120_add_fullnode_api_port_to_it3_profiles.rb +++ /dev/null @@ -1,22 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddFullnodeApiPortToIt3Profiles < ActiveRecord::Migration[7.0] - def change - change_column_null :it3_profiles, :owner_key, true - change_column_null :it3_profiles, :consensus_key, true - change_column_null :it3_profiles, :account_key, true - change_column_null :it3_profiles, :account_address, true - change_column_null :it3_profiles, :network_key, true - - change_column_null :it3_profiles, :validator_address, true - change_column_null :it3_profiles, :validator_port, true - change_column_null :it3_profiles, :validator_metrics_port, true - change_column_null :it3_profiles, :validator_api_port, true - - add_column :it3_profiles, :fullnode_metrics_port, :integer - add_column :it3_profiles, :fullnode_api_port, :integer - end -end diff --git a/ecosystem/platform/server/db/migrate/20220901173630_create_wallets.rb b/ecosystem/platform/server/db/migrate/20220901173630_create_wallets.rb deleted file mode 100644 index 69db762e45932..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220901173630_create_wallets.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateWallets < ActiveRecord::Migration[7.0] - def change - create_table :wallets do |t| - t.references :user, null: false, foreign_key: true - t.string :network, null: false, comment: "The network that the account exists on (e.g. 'ait3')." - t.string :wallet_name, null: false, comment: "The name of the wallet (e.g. 'petra')." - t.string :public_key, null: false, comment: 'The public key of the account.' - t.string :address, null: false, comment: 'The account address.' - - t.timestamps - - t.index %i[public_key network], unique: true - t.check_constraint "public_key ~ '^0x[0-9a-f]{64}$'" - end - end -end diff --git a/ecosystem/platform/server/db/migrate/20220903154019_drop_nft_tables.rb b/ecosystem/platform/server/db/migrate/20220903154019_drop_nft_tables.rb deleted file mode 100644 index b1ee795678b48..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220903154019_drop_nft_tables.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class DropNftTables < ActiveRecord::Migration[7.0] - def up - drop_table :nfts - drop_table :nft_offers - end - - def down - raise ActiveRecord::IrreversibleMigration - end -end diff --git a/ecosystem/platform/server/db/migrate/20220906031531_create_nft_images.rb b/ecosystem/platform/server/db/migrate/20220906031531_create_nft_images.rb deleted file mode 100644 index 31ea764caf262..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220906031531_create_nft_images.rb +++ /dev/null @@ -1,17 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class CreateNftImages < ActiveRecord::Migration[7.0] - def change - create_table :nft_images do |t| - t.string :slug, null: false - t.integer :image_number, null: true - - t.timestamps - end - - add_index :nft_images, %i[slug image_number], unique: true - end -end diff --git a/ecosystem/platform/server/db/migrate/20220910032621_adjust_wallet_uniqueness.rb b/ecosystem/platform/server/db/migrate/20220910032621_adjust_wallet_uniqueness.rb deleted file mode 100644 index 5c97b6657774c..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220910032621_adjust_wallet_uniqueness.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AdjustWalletUniqueness < ActiveRecord::Migration[7.0] - def change - add_index :wallets, %i[public_key network wallet_name], unique: true - remove_index :wallets, name: 'index_wallets_on_public_key_and_network' - end -end diff --git a/ecosystem/platform/server/db/migrate/20220913153902_add_verified_to_projects.rb b/ecosystem/platform/server/db/migrate/20220913153902_add_verified_to_projects.rb deleted file mode 100644 index bfc29292d2b72..0000000000000 --- a/ecosystem/platform/server/db/migrate/20220913153902_add_verified_to_projects.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class AddVerifiedToProjects < ActiveRecord::Migration[7.0] - def change - add_column :projects, :verified, :boolean, null: false, default: false - end -end diff --git a/ecosystem/platform/server/db/schema.rb b/ecosystem/platform/server/db/schema.rb deleted file mode 100644 index c93467b669111..0000000000000 --- a/ecosystem/platform/server/db/schema.rb +++ /dev/null @@ -1,438 +0,0 @@ -# This file is auto-generated from the current state of the database. Instead -# of editing this file, please use the migrations feature of Active Record to -# incrementally modify your database, and then regenerate this schema definition. -# -# This file is the source Rails uses to define your schema when running `bin/rails -# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to -# be faster and is potentially less error prone than running all of your -# migrations from scratch. Old migrations may fail to apply correctly if those -# migrations use external dependencies or application code. -# -# It's strongly recommended that you check this file into your version control system. - -ActiveRecord::Schema[7.0].define(version: 2022_09_13_153902) do - # These are extensions that must be enabled in order to support this database - enable_extension "pgcrypto" - enable_extension "plpgsql" - - create_table "active_admin_comments", force: :cascade do |t| - t.string "namespace" - t.text "body" - t.string "resource_type" - t.bigint "resource_id" - t.string "author_type" - t.bigint "author_id" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["author_type", "author_id"], name: "index_active_admin_comments_on_author" - t.index ["namespace"], name: "index_active_admin_comments_on_namespace" - t.index ["resource_type", "resource_id"], name: "index_active_admin_comments_on_resource" - end - - create_table "active_storage_attachments", force: :cascade do |t| - t.string "name", null: false - t.string "record_type", null: false - t.bigint "record_id", null: false - t.bigint "blob_id", null: false - t.datetime "created_at", null: false - t.index ["blob_id"], name: "index_active_storage_attachments_on_blob_id" - t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true - end - - create_table "active_storage_blobs", force: :cascade do |t| - t.string "key", null: false - t.string "filename", null: false - t.string "content_type" - t.text "metadata" - t.string "service_name", null: false - t.bigint "byte_size", null: false - t.string "checksum" - t.datetime "created_at", null: false - t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true - end - - create_table "active_storage_variant_records", force: :cascade do |t| - t.bigint "blob_id", null: false - t.string "variation_digest", null: false - t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true - end - - create_table "articles", force: :cascade do |t| - t.string "title", null: false - t.string "slug", null: false - t.text "content", null: false - t.string "status", default: "draft", null: false - t.datetime "created_at" - t.datetime "updated_at" - end - - create_table "authorizations", force: :cascade do |t| - t.integer "user_id" - t.string "provider" - t.string "uid" - t.string "email" - t.string "username" - t.string "full_name" - t.text "profile_url" - t.string "token" - t.string "secret" - t.string "refresh_token" - t.boolean "expires" - t.datetime "expires_at", precision: nil - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["provider", "uid"], name: "index_authorizations_on_provider_and_uid" - t.index ["provider"], name: "index_authorizations_on_provider" - t.index ["uid"], name: "index_authorizations_on_uid" - t.index ["user_id"], name: "index_authorizations_on_user_id" - end - - create_table "categories", force: :cascade do |t| - t.string "title", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - end - - create_table "delayed_jobs", force: :cascade do |t| - t.integer "priority", default: 0, null: false - t.integer "attempts", default: 0, null: false - t.text "handler", null: false - t.text "last_error" - t.datetime "run_at" - t.datetime "locked_at" - t.datetime "failed_at" - t.string "locked_by" - t.string "queue" - t.datetime "created_at" - t.datetime "updated_at" - t.index ["priority", "run_at"], name: "delayed_jobs_priority" - end - - create_table "flipper_features", force: :cascade do |t| - t.string "key", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["key"], name: "index_flipper_features_on_key", unique: true - end - - create_table "flipper_gates", force: :cascade do |t| - t.string "feature_key", null: false - t.string "key", null: false - t.string "value" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["feature_key", "key", "value"], name: "index_flipper_gates_on_feature_key_and_key_and_value", unique: true - end - - create_table "it1_profiles", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "consensus_key" - t.string "account_key" - t.string "network_key" - t.string "validator_ip" - t.string "validator_address" - t.integer "validator_port" - t.integer "validator_metrics_port" - t.integer "validator_api_port" - t.boolean "validator_verified", default: false - t.string "fullnode_address" - t.integer "fullnode_port" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "terms_accepted", default: false - t.string "fullnode_network_key" - t.boolean "selected", default: false, null: false, comment: "Whether this node is selected for participation in IT1." - t.boolean "validator_verified_final" - t.jsonb "metrics_data" - t.string "account_address" - t.index ["user_id"], name: "index_it1_profiles_on_user_id" - end - - create_table "it2_profiles", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "consensus_key", null: false - t.string "account_key", null: false - t.string "network_key", null: false - t.string "validator_ip" - t.string "validator_address", null: false - t.integer "validator_port", null: false - t.integer "validator_metrics_port", null: false - t.integer "validator_api_port", null: false - t.boolean "validator_verified", default: false, null: false - t.string "fullnode_address" - t.integer "fullnode_port" - t.string "fullnode_network_key" - t.boolean "terms_accepted", default: false, null: false - t.boolean "selected", default: false, null: false, comment: "Whether this node is selected for participation in IT2." - t.boolean "validator_verified_final" - t.jsonb "metrics_data" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "nhc_job_id" - t.text "nhc_output" - t.string "account_address" - t.index ["account_key"], name: "index_it2_profiles_on_account_key", unique: true - t.index ["consensus_key"], name: "index_it2_profiles_on_consensus_key", unique: true - t.index ["fullnode_network_key"], name: "index_it2_profiles_on_fullnode_network_key", unique: true - t.index ["network_key"], name: "index_it2_profiles_on_network_key", unique: true - t.index ["user_id"], name: "index_it2_profiles_on_user_id", unique: true - end - - create_table "it2_surveys", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "persona", null: false - t.string "participate_reason", null: false - t.string "qualified_reason", null: false - t.string "website" - t.string "interest_reason", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["user_id"], name: "index_it2_surveys_on_user_id" - end - - create_table "it3_profiles", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "owner_key" - t.string "consensus_key" - t.string "account_key" - t.string "network_key" - t.string "validator_ip" - t.string "validator_address" - t.integer "validator_port" - t.integer "validator_metrics_port" - t.integer "validator_api_port" - t.boolean "validator_verified", default: false, null: false - t.string "fullnode_address" - t.integer "fullnode_port" - t.string "fullnode_network_key" - t.boolean "terms_accepted", default: false, null: false - t.boolean "selected", default: false, null: false, comment: "Whether this node is selected for participation in IT3." - t.boolean "validator_verified_final" - t.jsonb "metrics_data" - t.string "nhc_job_id" - t.text "nhc_output" - t.string "account_address" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.string "consensus_pop" - t.string "owner_address" - t.integer "fullnode_metrics_port" - t.integer "fullnode_api_port" - t.index ["account_address"], name: "index_it3_profiles_on_account_address", unique: true - t.index ["account_key"], name: "index_it3_profiles_on_account_key", unique: true - t.index ["consensus_key"], name: "index_it3_profiles_on_consensus_key", unique: true - t.index ["fullnode_network_key"], name: "index_it3_profiles_on_fullnode_network_key", unique: true - t.index ["network_key"], name: "index_it3_profiles_on_network_key", unique: true - t.index ["owner_key"], name: "index_it3_profiles_on_owner_key", unique: true - t.index ["user_id"], name: "index_it3_profiles_on_user_id", unique: true - end - - create_table "it3_surveys", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "persona", null: false - t.string "participate_reason", null: false - t.string "qualified_reason", null: false - t.string "website" - t.string "interest_reason", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["user_id"], name: "index_it3_surveys_on_user_id" - end - - create_table "locations", force: :cascade do |t| - t.string "item_type", null: false - t.bigint "item_id", null: false - t.integer "accuracy_radius" - t.integer "average_income" - t.float "latitude" - t.float "longitude" - t.integer "metro_code" - t.integer "population_density" - t.string "time_zone" - t.boolean "anonymous" - t.boolean "anonymous_vpn" - t.integer "autonomous_system_number" - t.string "autonomous_system_organization" - t.string "connection_type" - t.string "domain" - t.boolean "hosting_provider" - t.string "ip_address" - t.string "isp" - t.boolean "legitimate_proxy" - t.string "mobile_country_code" - t.string "mobile_network_code" - t.string "network" - t.string "organization" - t.boolean "public_proxy" - t.boolean "residential_proxy" - t.float "static_ip_score" - t.boolean "tor_exit_node" - t.integer "user_count" - t.string "user_type" - t.string "continent_code" - t.string "continent_geoname_id" - t.string "continent_name" - t.integer "country_confidence" - t.string "country_geoname_id" - t.string "country_iso_code" - t.string "country_name" - t.integer "subdivision_confidence" - t.string "subdivision_geoname_id" - t.string "subdivision_iso_code" - t.string "subdivision_name" - t.integer "city_confidence" - t.string "city_geoname_id" - t.string "city_name" - t.integer "postal_confidence" - t.string "postal_code" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["item_type", "item_id"], name: "index_locations_on_item" - end - - create_table "network_operations", force: :cascade do |t| - t.string "title", null: false - t.text "content", null: false - t.datetime "created_at" - t.datetime "updated_at" - t.datetime "notified_at", comment: "The time at which a notification was sent for this network operation." - end - - create_table "nft_images", force: :cascade do |t| - t.string "slug", null: false - t.integer "image_number" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["slug", "image_number"], name: "index_nft_images_on_slug_and_image_number", unique: true - end - - create_table "notification_preferences", force: :cascade do |t| - t.bigint "user_id", null: false - t.integer "delivery_method", default: 0, null: false - t.boolean "node_upgrade_notification", default: false, null: false - t.boolean "governance_proposal_notification", default: false, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["user_id", "delivery_method"], name: "index_notification_preferences_on_user_id_and_delivery_method", unique: true - t.index ["user_id"], name: "index_notification_preferences_on_user_id" - end - - create_table "notifications", force: :cascade do |t| - t.string "recipient_type", null: false - t.bigint "recipient_id", null: false - t.string "type", null: false - t.jsonb "params" - t.datetime "read_at" - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["read_at"], name: "index_notifications_on_read_at" - t.index ["recipient_type", "recipient_id"], name: "index_notifications_on_recipient" - end - - create_table "project_categories", force: :cascade do |t| - t.bigint "project_id", null: false - t.bigint "category_id", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["category_id", "project_id"], name: "index_project_categories_on_category_id_and_project_id", unique: true - t.index ["category_id"], name: "index_project_categories_on_category_id" - t.index ["project_id"], name: "index_project_categories_on_project_id" - end - - create_table "project_members", force: :cascade do |t| - t.bigint "project_id", null: false - t.bigint "user_id", null: false - t.string "role", null: false - t.boolean "public", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["project_id", "user_id"], name: "index_project_members_on_project_id_and_user_id", unique: true - t.index ["project_id"], name: "index_project_members_on_project_id" - t.index ["user_id"], name: "index_project_members_on_user_id" - end - - create_table "projects", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "title", null: false - t.string "short_description", null: false - t.string "full_description", null: false - t.string "website_url", null: false - t.string "github_url" - t.string "discord_url" - t.string "twitter_url" - t.string "telegram_url" - t.string "linkedin_url" - t.string "youtube_url" - t.string "forum_url" - t.boolean "public", null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "verified", default: false, null: false - t.index ["user_id"], name: "index_projects_on_user_id" - end - - create_table "users", force: :cascade do |t| - t.string "username" - t.string "email" - t.string "encrypted_password", default: "", null: false - t.string "reset_password_token" - t.datetime "reset_password_sent_at" - t.datetime "remember_created_at" - t.integer "sign_in_count", default: 0, null: false - t.datetime "current_sign_in_at" - t.datetime "last_sign_in_at" - t.string "current_sign_in_ip" - t.string "last_sign_in_ip" - t.string "confirmation_token" - t.datetime "confirmed_at" - t.datetime "confirmation_sent_at" - t.string "unconfirmed_email" - t.boolean "is_root", default: false, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.boolean "is_developer", default: false, null: false - t.boolean "is_node_operator", default: false, null: false - t.string "mainnet_address" - t.string "kyc_status", default: "not_started", null: false - t.uuid "external_id", default: -> { "gen_random_uuid()" }, null: false - t.boolean "kyc_exempt", default: false - t.string "completed_persona_inquiry_id" - t.integer "discourse_id" - t.string "bio" - t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true - t.index ["current_sign_in_ip"], name: "index_users_on_current_sign_in_ip" - t.index ["email"], name: "index_users_on_email", unique: true - t.index ["external_id"], name: "index_users_on_external_id" - t.index ["last_sign_in_ip"], name: "index_users_on_last_sign_in_ip" - t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true - t.index ["username"], name: "index_users_on_username", unique: true - end - - create_table "wallets", force: :cascade do |t| - t.bigint "user_id", null: false - t.string "network", null: false, comment: "The network that the account exists on (e.g. 'ait3')." - t.string "wallet_name", null: false, comment: "The name of the wallet (e.g. 'petra')." - t.string "public_key", null: false, comment: "The public key of the account." - t.string "address", null: false, comment: "The account address." - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["public_key", "network", "wallet_name"], name: "index_wallets_on_public_key_and_network_and_wallet_name", unique: true - t.index ["user_id"], name: "index_wallets_on_user_id" - t.check_constraint "public_key::text ~ '^0x[0-9a-f]{64}$'::text" - end - - add_foreign_key "active_storage_attachments", "active_storage_blobs", column: "blob_id" - add_foreign_key "active_storage_variant_records", "active_storage_blobs", column: "blob_id" - add_foreign_key "it1_profiles", "users" - add_foreign_key "it2_profiles", "users" - add_foreign_key "it2_surveys", "users" - add_foreign_key "it3_profiles", "users" - add_foreign_key "it3_surveys", "users" - add_foreign_key "notification_preferences", "users" - add_foreign_key "project_categories", "categories" - add_foreign_key "project_categories", "projects" - add_foreign_key "project_members", "projects" - add_foreign_key "project_members", "users" - add_foreign_key "projects", "users" - add_foreign_key "wallets", "users" -end diff --git a/ecosystem/platform/server/db/seeds.rb b/ecosystem/platform/server/db/seeds.rb deleted file mode 100644 index 1b0beac3f5666..0000000000000 --- a/ecosystem/platform/server/db/seeds.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# This file should contain all the record creation needed to seed the database with its default values. -# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup). -# -# Examples: -# -# movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }]) -# Character.create(name: "Luke", movie: movies.first) diff --git a/ecosystem/platform/server/docker-bake.hcl b/ecosystem/platform/server/docker-bake.hcl deleted file mode 100644 index 3fcebe44157d4..0000000000000 --- a/ecosystem/platform/server/docker-bake.hcl +++ /dev/null @@ -1,37 +0,0 @@ -# This is a docker bake file in HCL syntax. -# It provides a high-level mechenanism to build multiple dockerfiles in one shot. -# Check https://crazymax.dev/docker-allhands2-buildx-bake and https://docs.docker.com/engine/reference/commandline/buildx_bake/#file-definition for an intro. - - -variable "TARGET_CACHE_ID" {} -variable "GIT_SHA" {} -variable "AWS_ECR_ACCOUNT_NUM" {} -variable "GCP_DOCKER_ARTIFACT_REPO" {} -variable "ecr_base" { - default = "${AWS_ECR_ACCOUNT_NUM}.dkr.ecr.us-west-2.amazonaws.com/aptos" -} - -variable "normalized_target_cache_id" { - default = regex_replace("${TARGET_CACHE_ID}", "[^a-zA-Z0-9]", "-") -} - -group "default" { - targets = [ - "community-platform", - ] -} - -target "community-platform" { - dockerfile = "Dockerfile" - context = "." - cache-from = [ - "type=registry,ref=${GCP_DOCKER_ARTIFACT_REPO}/community-platform:cache-main", - "type=registry,ref=${GCP_DOCKER_ARTIFACT_REPO}/community-platform:cache-auto", - "type=registry,ref=${GCP_DOCKER_ARTIFACT_REPO}/community-platform:cache-${normalized_target_cache_id}", - ] - cache-to = ["type=registry,ref=${GCP_DOCKER_ARTIFACT_REPO}/community-platform:cache-${normalized_target_cache_id},mode=max"] - tags = [ - "${ecr_base}/community-platform:${GIT_SHA}", - "${GCP_DOCKER_ARTIFACT_REPO}/community-platform:${GIT_SHA}", - ] -} diff --git a/ecosystem/platform/server/lib/assets/.keep b/ecosystem/platform/server/lib/assets/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/lib/logging/logs.rb b/ecosystem/platform/server/lib/logging/logs.rb deleted file mode 100644 index 84fe3e70ab3f7..0000000000000 --- a/ecosystem/platform/server/lib/logging/logs.rb +++ /dev/null @@ -1,36 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -module Logging - module Logs - REQUEST_ID_KEY = 'request_id' - USER_ID_KEY = 'user_id' - - def log(message_or_object, message = nil) - result = {} - - result[:time] = Time.now.to_f - result[:class] = self.class - - request_id = Thread.current.thread_variable_get(REQUEST_ID_KEY) - result[:request_id] = request_id - - user_id = Thread.current.thread_variable_get(USER_ID_KEY) - result[:user_id] = user_id if user_id.present? - - if message.nil? - message = message_or_object - else - object = message_or_object - result[:object_class] = object.class - result[:object_id] = object.id if object.respond_to?(:id) - end - - result[:message] = message - - Rails.logger.info(result.to_json) - end - end -end diff --git a/ecosystem/platform/server/lib/tasks/.keep b/ecosystem/platform/server/lib/tasks/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/lib/tasks/db_nuke.rake b/ecosystem/platform/server/lib/tasks/db_nuke.rake deleted file mode 100644 index 0e34e66a58109..0000000000000 --- a/ecosystem/platform/server/lib/tasks/db_nuke.rake +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -namespace :db do - desc 'Drop all tables' - task nuke: :environment do - conn = ActiveRecord::Base.connection - query = "SELECT tablename FROM pg_catalog.pg_tables WHERE schemaname='public'" - tables = conn.execute(query).map { |r| r['tablename'] } - tables.each { |t| conn.execute("DROP TABLE \"#{t}\" CASCADE") } - end -end diff --git a/ecosystem/platform/server/lib/tasks/worker_work.rake b/ecosystem/platform/server/lib/tasks/worker_work.rake deleted file mode 100644 index 81df823a12eff..0000000000000 --- a/ecosystem/platform/server/lib/tasks/worker_work.rake +++ /dev/null @@ -1,30 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'digest/sha1' - -namespace :worker do - desc 'Process delayed jobs for Aptos Cloud' - task work: :environment do - logger = ActiveSupport::Logger.new($stdout) - logger.formatter = Rails.configuration.log_formatter - Rails.configuration.logger = ActiveSupport::TaggedLogging.new(logger) - Rails.configuration.log_level = :debug - Delayed.logger = Rails.configuration.logger - Rails.logger = Delayed.logger - - worker = Delayed::Worker.new - worker.name_prefix = Digest::SHA1.hexdigest("#{rand(100_000_000)}--#{Time.now}")[0, 12] - - worker.name = begin - "#{worker.name_prefix} host:#{Socket.gethostname} pid:#{Process.pid}" - rescue StandardError - "#{worker.name_prefix} pid:#{Process.pid}" - end - Rails.logger.info "STARTING WORKER #{worker.name}" - - worker.start - end -end diff --git a/ecosystem/platform/server/log/.keep b/ecosystem/platform/server/log/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/package.json b/ecosystem/platform/server/package.json deleted file mode 100644 index d52ac1537ace6..0000000000000 --- a/ecosystem/platform/server/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "app", - "private": "true", - "dependencies": { - "@hotwired/stimulus": "3.0.1", - "@hotwired/turbo-rails": "7.1.3", - "@sentry/browser": "7.12.1", - "@tailwindcss/forms": "0.5.2", - "@tailwindcss/typography": "0.5.2", - "aptos": "1.2.0", - "autoprefixer": "10.4.7", - "dotenv": "16.0.2", - "esbuild": "0.14.47", - "postcss": "8.4.14", - "tailwindcss": "3.1.4" - }, - "scripts": { - "build": "./build.js", - "build:css": "tailwindcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application.css --minify", - "failure:js": "rm ./app/assets/builds/application.js && rm ./app/assets/builds/application.js.map", - "dev": "tsc-watch --noClear -p tsconfig.json --onSuccess \"yarn build\" --onFailure \"yarn failure:js\"" - }, - "devDependencies": { - "@typescript-eslint/eslint-plugin": "5.30.0", - "@typescript-eslint/parser": "5.30.0", - "prettier": "2.7.1", - "tsc-watch": "5.0.3", - "typescript": "4.7.4" - } -} diff --git a/ecosystem/platform/server/public/404.html b/ecosystem/platform/server/public/404.html deleted file mode 100644 index 16d6e1b1a4086..0000000000000 --- a/ecosystem/platform/server/public/404.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - The page you were looking for doesn't exist (404) - - - - - - -
-
-

The page you were looking for doesn't exist.

-

You may have mistyped the address or the page may have moved.

-
-
- - diff --git a/ecosystem/platform/server/public/422.html b/ecosystem/platform/server/public/422.html deleted file mode 100644 index 8dda47f42d046..0000000000000 --- a/ecosystem/platform/server/public/422.html +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - The change you wanted was rejected (422) - - - - - - -
-
-

The change you wanted was rejected.

-

Maybe you tried to change something you didn't have access to.

-
-
- - diff --git a/ecosystem/platform/server/public/500.html b/ecosystem/platform/server/public/500.html deleted file mode 100644 index cf2d21d652556..0000000000000 --- a/ecosystem/platform/server/public/500.html +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - We're sorry, but something went wrong (500) - - - - - - -
-
-

We're sorry, but something went wrong.

-
-
- - diff --git a/ecosystem/platform/server/public/apple-touch-icon.png b/ecosystem/platform/server/public/apple-touch-icon.png deleted file mode 100644 index 407c573e3776f..0000000000000 Binary files a/ecosystem/platform/server/public/apple-touch-icon.png and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_ADN_meta_opengraph.jpg b/ecosystem/platform/server/public/images/meta/APTOS_ADN_meta_opengraph.jpg deleted file mode 100644 index 81e460f81ded2..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_ADN_meta_opengraph.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_ADN_meta_twitter.jpg b/ecosystem/platform/server/public/images/meta/APTOS_ADN_meta_twitter.jpg deleted file mode 100644 index c60200d3290b5..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_ADN_meta_twitter.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_developers_meta_opengraph.jpg b/ecosystem/platform/server/public/images/meta/APTOS_developers_meta_opengraph.jpg deleted file mode 100644 index e3131ad11a7ca..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_developers_meta_opengraph.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_developers_meta_twitter.jpg b/ecosystem/platform/server/public/images/meta/APTOS_developers_meta_twitter.jpg deleted file mode 100644 index 648a09852ed38..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_developers_meta_twitter.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_meta_opengraph.jpg b/ecosystem/platform/server/public/images/meta/APTOS_meta_opengraph.jpg deleted file mode 100644 index 99fd1a8bc1a2e..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_meta_opengraph.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_meta_opengraph_051222.jpg b/ecosystem/platform/server/public/images/meta/APTOS_meta_opengraph_051222.jpg deleted file mode 100644 index 70a0f5ed89cb9..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_meta_opengraph_051222.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_meta_twitter.jpg b/ecosystem/platform/server/public/images/meta/APTOS_meta_twitter.jpg deleted file mode 100644 index c7124dcf97c7f..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_meta_twitter.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/APTOS_meta_twitter_051222.jpg b/ecosystem/platform/server/public/images/meta/APTOS_meta_twitter_051222.jpg deleted file mode 100644 index 917d5be7aae40..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/APTOS_meta_twitter_051222.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/images/meta/aptos_meta_og_ait3.jpg b/ecosystem/platform/server/public/images/meta/aptos_meta_og_ait3.jpg deleted file mode 100644 index 5ee506eb3db68..0000000000000 Binary files a/ecosystem/platform/server/public/images/meta/aptos_meta_og_ait3.jpg and /dev/null differ diff --git a/ecosystem/platform/server/public/it1_leaderboard_final.json b/ecosystem/platform/server/public/it1_leaderboard_final.json deleted file mode 100644 index 5210e7b456cfd..0000000000000 --- a/ecosystem/platform/server/public/it1_leaderboard_final.json +++ /dev/null @@ -1,835 +0,0 @@ -[ - { - "validator": "d9b628e9aa2f97848a8801ddefda61a9598cbec9ceae78b3eb5dacce96fafc44", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:31.140Z", - "latest_version": "2515954" - }, - { - "validator": "7438b4a50a5a6c43bdfdd7283c907a01c557747db7fe8d6c031679fe5209ac76", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:40.438Z", - "latest_version": "2235889" - }, - { - "validator": "89c83b773d75444aa9f0878a9d1714210625b6fc49442bce17ef486e0a64781a", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:39.307Z", - "latest_version": "2235887" - }, - { - "validator": "be9ab339ffa6a998f88d1b260b199479d4fe81867867e015424aefe0c6e01152", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:35.769Z", - "latest_version": "2235883" - }, - { - "validator": "ee6d2ad649007d5f8b92fae8d2256cce99912477b78499ef35f9d78c2b1b94ea", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:35.805Z", - "latest_version": "2235881" - }, - { - "validator": "b973d5c6226a108cc6476d7e4f16b0594ef774e5ded46d17f168c3667f832655", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:42.146Z", - "latest_version": "2362628" - }, - { - "validator": "c13cef4af48b1007ece8358bef83eb4d9e825cb77db3ce7a151ab74aeac85788", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:18.764Z", - "latest_version": "144272124" - }, - { - "validator": "83650b9184ab7a14bd5326145aa788225981872765f8961ec07dc5fb50ee7ede", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:31.461Z", - "latest_version": "2515259" - }, - { - "validator": "c493bb36ac19d800640b32eb2844da802d6530773b01eeaa4886ad25196d7210", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:31.012Z", - "latest_version": "2528399" - }, - { - "validator": "c6b4e3df4cc16ba785ee4fba095e3ec84cbe4e2905d6598b3439b490ff98e5e3", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:34.061Z", - "latest_version": "2616950" - }, - { - "validator": "17390014b239a51ab16fed9171c186a942702c8aa59810fc7971fbdd1db18ede", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:26.691Z", - "latest_version": "2235870" - }, - { - "validator": "bf1f226d12229029e6d3a56acc09fdf6be94f8f42544857dd744580e6e498fd3", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:25.043Z", - "latest_version": "2445428" - }, - { - "validator": "9e4a5b7d9087aa3375f5f991c3f0387c3f82330dab7a20758aa9ad38313f1805", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:33.099Z", - "latest_version": "2502348" - }, - { - "validator": "f598df5703847cd4f30a0c16f5381b814722824de2145c20044db622a54e63e1", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:16.143Z", - "latest_version": "2477707" - }, - { - "validator": "a8f7c5a6094d73b762b43e1471da7d2698bfa66b60d95a41439220f35197de59", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:39.094Z", - "latest_version": "2612175" - }, - { - "validator": "73e844fe254cd98aa0f89cc8f6af098cedfbd4e495353069d882d757a055a7a9", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:33.533Z", - "latest_version": "2252113" - }, - { - "validator": "6b11fd163818797ec77d16be3058918cd4dcdae3037748bf95da4f138e450ced", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:10.581Z", - "latest_version": "2262014" - }, - { - "validator": "5be188d1c516d3a565ed6424545a69745fdefe0d09e73837d93b0ef5e37ebe4a", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:42.010Z", - "latest_version": "2450324" - }, - { - "validator": "ba58747e44d48794157f6100d94ba30e6a17ba51aad9fbb94d6ec7dec85e3185", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:21.592Z", - "latest_version": "2235865" - }, - { - "validator": "3909f224a7347c8812c3cd90bf37515a1caf1b9854b1ed4a7db258d452410016", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:14.679Z", - "latest_version": "2235860" - }, - { - "validator": "cccf77281246e257a4b72040fc69b16d9d57f4d01557dd4fc0679b725e42a5f4", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:37.527Z", - "latest_version": "2284208" - }, - { - "validator": "79476b1ce5ed8c2db9814cb16dccc0c6ce655e2b9c29f1dbb59a8e5b10d0e7a9", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:17.557Z", - "latest_version": "2310532" - }, - { - "validator": "652f6e6072eda05bb61b7b3341cef64a4f43dfe550b84e3b8f3a64366c4c38d7", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:26.534Z", - "latest_version": "2235874" - }, - { - "validator": "75d99360abdbe30de4fa77ce960886b9943a3c19049d4b0356f367c21ad903d1", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:41.972Z", - "latest_version": "2235890" - }, - { - "validator": "5abd39434a1807b806060d59c669f733ec8f3060a88bc38ee7fc1afa0403ce6a", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:32.598Z", - "latest_version": "2502831" - }, - { - "validator": "faf07c76f12cd17ecca443ad68712940024844c9c870f8f173d36b6c56b2cd76", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:36.691Z", - "latest_version": "2707287" - }, - { - "validator": "41b4d1a6714265ac171472896c93a36aebf3d7694845a3034f7565db4bf56af5", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:45.064Z", - "latest_version": "2235895" - }, - { - "validator": "00937b7baa81b9c4b8b4455ba8212e35f2c51e279269692d12d41e8dd30f2883", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:38.788Z", - "latest_version": "2235887" - }, - { - "validator": "5d18f19d6b7ca0a07d7b1e13710715d88bf4a7e55710eb33ac661e4a3394bf1a", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:39.696Z", - "latest_version": "2235888" - }, - { - "validator": "5975b0b1f72d61a8a76fc0fcbff7d1278c07bb7091ddcd68e702ed9f3793bcad", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:31.693Z", - "latest_version": "2235879" - }, - { - "validator": "04ee6dc696a7ca2dc683de52bcd3ba20172ee94f3581ad85c42519d26ecf97a7", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:19.574Z", - "latest_version": "2235865" - }, - { - "validator": "c023086e62b7740c8133e750638d714da4c3ce1ba85afb977ab618ef1c96ed0a", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:18.645Z", - "latest_version": "2484879" - }, - { - "validator": "b52a1a2377406fd6e0f2914e3635b589be5573fe6adb3ce5ac6d5867ba89a1c6", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:41.521Z", - "latest_version": "2401758" - }, - { - "validator": "16a29645735a0629f87bc24d997871ddd19d9bb96427e7fe011219959b170cd1", - "liveness": "6", - "participation": "100", - "latest_reported_timestamp": "2022-05-26T09:40:25.064Z", - "latest_version": "111060" - }, - { - "validator": "b69da37c257feb816be981677df150fcc4c4324ac27b80e17cedb5a172a473d0", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:13.252Z", - "latest_version": "2791382" - }, - { - "validator": "9b12713f711887503bd0a84893f992ad24c32893a322f7e5b5e688aac8b452ae", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:41.951Z", - "latest_version": "2338952" - }, - { - "validator": "c185c7d968ffe5da004a380b3eec433590726f0251a82506bbbc2415038d6428", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:25.664Z", - "latest_version": "2699598" - }, - { - "validator": "4995895e450f18883505ddd2864c642712b445838eb44e861840af6124926c27", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:37.967Z", - "latest_version": "2235885" - }, - { - "validator": "1f75fdc93f6f6e17ee8b2be65d7b7818f4e5c4a0236bc98227aeefd75f99e85d", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:20.618Z", - "latest_version": "2291822" - }, - { - "validator": "cbac257c2257cc23fdfd4634225ab7f8dc29679f405a54f6a2cb55585ba491ee", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:15.574Z", - "latest_version": "2235861" - }, - { - "validator": "5edb731f7ca0f69f0585ca79dfabd4adee6226c2583b7626d9baaa98e19087de", - "liveness": "92", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:02:48.162Z", - "latest_version": "2614736" - }, - { - "validator": "cda924adff29078784185510a2f352b4db3fe3f51ce0138cf01c29289e2724a9", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:31.184Z", - "latest_version": "2567459" - }, - { - "validator": "f6f100cd39694e062e689a5a21f84339f1fabab47558bf5cb56a3be4e41b908d", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:21.075Z", - "latest_version": "2331250" - }, - { - "validator": "ad61b920a9cec9d7d5533f4383548a8e6b58fd136fe1b7ddd1d374295a47a22f", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:31.934Z", - "latest_version": "2480525" - }, - { - "validator": "33ccaa73de7f2a26123e3fe7265cc1d3fcc69e7f1da341164f2caeec8e13f507", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:30.830Z", - "latest_version": "2428982" - }, - { - "validator": "0e6b7202f9e37a58e1dfa65f5e68487a9b61c8fbc35a00b68678e3a0ca9f3227", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:15.674Z", - "latest_version": "2235859" - }, - { - "validator": "7ad72e96f75d871755fb4bd9323b4a46d3d3f50ff30416188b77c3c6762647c2", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:38.785Z", - "latest_version": "2235876" - }, - { - "validator": "7a181f72d25a630227dfec6fe7d91cfa6d5990cdf403506cd69a061876fc9fdb", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:23.762Z", - "latest_version": "2235870" - }, - { - "validator": "7249ee9de729ff2fed921e7df2fcfc95928ba748c8efa29b6c993de376d75872", - "liveness": "100", - "participation": "100", - "latest_reported_timestamp": "2022-06-03T07:03:25.806Z", - "latest_version": "2378091" - }, - { - "validator": "1c144b22e7464516804c9ca8bebcaa88aa2fc2140ce9468e0dd9f5da6d49dc73", - "liveness": "99", - "participation": "99", - "latest_reported_timestamp": "2022-06-03T07:03:20.547Z", - "latest_version": "2319554" - }, - { - "validator": "97e4eb8ec7a89441cf28afbcbd31fc6b08bdb0b7153a610c30db93ba6d471148", - "liveness": "99", - "participation": "99", - "latest_reported_timestamp": "2022-06-03T07:03:23.077Z", - "latest_version": "2235868" - }, - { - "validator": "433cc97f044434ed38ff38c895445f316ff671efda3229123db5d64f121e762c", - "liveness": "98", - "participation": "98", - "latest_reported_timestamp": "2022-06-03T07:03:25.317Z", - "latest_version": "2235872" - }, - { - "validator": "207be77dc8f45e5812ae7a8b4dbbe91db8e9d5ab45b855f298ee466e2fcc359a", - "liveness": "99", - "participation": "98", - "latest_reported_timestamp": "2022-06-03T07:03:32.272Z", - "latest_version": "2235879" - }, - { - "validator": "749ac5cd64b0f7f15636dbdee72f02153ad1be365438aac3470e9782b5ce02ef", - "liveness": "100", - "participation": "97", - "latest_reported_timestamp": "2022-06-03T07:03:21.202Z", - "latest_version": "2507004" - }, - { - "validator": "a1026f79d476540b034bc04cf9e108ded7ceaf30b72f65e5d0e9e27386c54976", - "liveness": "99", - "participation": "97", - "latest_reported_timestamp": "2022-06-03T07:03:42.833Z", - "latest_version": "2235887" - }, - { - "validator": "3b63e4bd308d1ba2659a4e10bec7d0bc001894f5b4b2003d44ea2f1ecae4337b", - "liveness": "100", - "participation": "97", - "latest_reported_timestamp": "2022-06-03T07:03:38.011Z", - "latest_version": "2235884" - }, - { - "validator": "45936403f628fdcb012a14605b85b2fffd73ac091920c45914173f15b3d499fc", - "liveness": "100", - "participation": "96", - "latest_reported_timestamp": "2022-06-03T07:03:43.534Z", - "latest_version": "2235893" - }, - { - "validator": "cab06b1126e95249093c766fc9ce7ea1852c694e00776be036a14a8d7b353b78", - "liveness": "99", - "participation": "96", - "latest_reported_timestamp": "2022-06-03T07:03:31.992Z", - "latest_version": "2564656" - }, - { - "validator": "ae607ff46e475075268c73c4a9c37e67537eba9fe98e0fe58f8ee0cb35a64c42", - "liveness": "100", - "participation": "95", - "latest_reported_timestamp": "2022-06-03T07:03:26.805Z", - "latest_version": "2573433" - }, - { - "validator": "0a744aef507d32d53d99da9b7f8178dc40ecf5d32dbd5edda08e940c0d495a7b", - "liveness": "98", - "participation": "95", - "latest_reported_timestamp": "2022-06-03T07:03:36.605Z", - "latest_version": "2235884" - }, - { - "validator": "f8296eef60b156b5e0a72080c01c52cdb573702aa11fe3a027b82754b177de14", - "liveness": "99", - "participation": "95", - "latest_reported_timestamp": "2022-06-03T07:03:29.244Z", - "latest_version": "2235875" - }, - { - "validator": "e0000c4e68faae6fc02f1ade61ed3cf0f8e191f67fc48c15250b742131aa8cd2", - "liveness": "94", - "participation": "94", - "latest_reported_timestamp": "2022-06-02T18:33:45.771Z", - "latest_version": "9804828" - }, - { - "validator": "b0c6871ce6ad59ec635dfcebb9592a20be44a9f41d606c22987dd059393fd0df", - "liveness": "100", - "participation": "94", - "latest_reported_timestamp": "2022-06-03T07:03:44.838Z", - "latest_version": "2235896" - }, - { - "validator": "a69042853549ea1fd90c0e036a7413a8640b37bd8e0dabde37023eb8daa46c01", - "liveness": "100", - "participation": "94", - "latest_reported_timestamp": "2022-06-03T07:03:18.361Z", - "latest_version": "2235864" - }, - { - "validator": "1f1ca46dca8ed1ae93f7062a738e3b02ef5cff20a5c29a8d95582561f2fa6ff0", - "liveness": "100", - "participation": "94", - "latest_reported_timestamp": "2022-06-03T07:03:33.457Z", - "latest_version": "2235880" - }, - { - "validator": "03172c537eda821e542a2e2fd5c64d7ae16d1a43d45dfefc67f77f4fc38e15eb", - "liveness": "100", - "participation": "93", - "latest_reported_timestamp": "2022-06-03T07:03:36.041Z", - "latest_version": "2235884" - }, - { - "validator": "0f635e3e9c46290a41aa376e4d4d7325caf14db97c4961a2a8a17b7778a03c53", - "liveness": "100", - "participation": "90", - "latest_reported_timestamp": "2022-06-03T07:02:45.099Z", - "latest_version": "2235832" - }, - { - "validator": "bf1731fd29790ae9bb20ad7d8dfea012a8984b9ffc226a74788de5dbcb9fb829", - "liveness": "100", - "participation": "89", - "latest_reported_timestamp": "2022-06-03T07:03:14.284Z", - "latest_version": "2239633" - }, - { - "validator": "001e4928bd6397f972a997f3c351e3d0ebb71abb40c02d87b0a94c81c7af402a", - "liveness": "100", - "participation": "88", - "latest_reported_timestamp": "2022-06-03T07:03:36.060Z", - "latest_version": "2235883" - }, - { - "validator": "bb6269d964f7ec2f858a0dcfd859e2e114218c79035f92e1373dde8da03bc4ae", - "liveness": "100", - "participation": "88", - "latest_reported_timestamp": "2022-06-03T07:03:16.647Z", - "latest_version": "2235864" - }, - { - "validator": "10719e2e7f65230afeae602b6918ac60545afbc7ceb9207f5d70f91d107b90a9", - "liveness": "100", - "participation": "87", - "latest_reported_timestamp": "2022-06-03T07:03:14.744Z", - "latest_version": "2235860" - }, - { - "validator": "2aec99f7bda6f786adad8551650795eab8dc95a323e592db25eb7a2c421c11a5", - "liveness": "100", - "participation": "86", - "latest_reported_timestamp": "2022-06-03T07:03:42.620Z", - "latest_version": "2235891" - }, - { - "validator": "6f84e8f0f74bcb5495dedad50fcbe581eefa57325272c9f634bcc838864e5401", - "liveness": "100", - "participation": "86", - "latest_reported_timestamp": "2022-06-03T07:03:40.842Z", - "latest_version": "2493303" - }, - { - "validator": "2a7d9b72ccce4328362fb50c45b9fd3325366c9cab85d3ce4b22bd476a5bee19", - "liveness": "96", - "participation": "86", - "latest_reported_timestamp": "2022-06-03T07:03:18.791Z", - "latest_version": "2235864" - }, - { - "validator": "75498dfbf86563c5cc18fb892c23634ddc4763ecc8ac8bd814bb58e6aec92786", - "liveness": "100", - "participation": "86", - "latest_reported_timestamp": "2022-06-03T07:03:35.717Z", - "latest_version": "2518917" - }, - { - "validator": "8fdd9bb3ab89cb36af63ed13dbe8bc38f37757b95be5c3f5727105e1c9fdd834", - "liveness": "94", - "participation": "86", - "latest_reported_timestamp": "2022-06-03T07:03:39.580Z", - "latest_version": "2316378" - }, - { - "validator": "3a9aa05bebb3711e3c3ce80117051ce8ccfc0dadfd00f595d34f7283208802e5", - "liveness": "100", - "participation": "85", - "latest_reported_timestamp": "2022-06-03T07:03:36.383Z", - "latest_version": "2235883" - }, - { - "validator": "5abbe6b33232bcf85fd8baa375c8083089b2404f5cb91c5ce4e0d5fc55068b47", - "liveness": "83", - "participation": "82", - "latest_reported_timestamp": "2022-06-03T07:03:30.241Z", - "latest_version": "2235877" - }, - { - "validator": "42eb8aba71290e94efa913fc6c7308621a37d40d92600641658360bf08fbbb62", - "liveness": "100", - "participation": "80", - "latest_reported_timestamp": "2022-06-03T07:03:32.017Z", - "latest_version": "2531720" - }, - { - "validator": "a9dbfe57401f419ba15761688f031594f2113cb4e8cdf89bae6f477cd68e8195", - "liveness": "100", - "participation": "79", - "latest_reported_timestamp": "2022-06-03T07:03:27.212Z", - "latest_version": "2694343" - }, - { - "validator": "74faed418ee0f7f8b3fdfd2cde91b35892a251b7a37690bb17b8156e9b07c856", - "liveness": "100", - "participation": "75", - "latest_reported_timestamp": "2022-06-03T07:03:27.936Z", - "latest_version": "2556385" - }, - { - "validator": "00322e3dc1d6cfdb0f251d27fec9e24a4b339df419daa4582b22f902dcb8d73a", - "liveness": "94", - "participation": "75", - "latest_reported_timestamp": "2022-06-03T07:03:20.324Z", - "latest_version": "2235859" - }, - { - "validator": "951a0a1817d500e2d6de317253941668f8e3af9094ccdcdc298f87b7c558a732", - "liveness": "89", - "participation": "73", - "latest_reported_timestamp": "2022-06-03T07:03:24.321Z", - "latest_version": "2750910" - }, - { - "validator": "0dca320cc3acfa54e391ab524a2cf36a0fb752a90c5f0ba7e35fdfd3af9e2142", - "liveness": "70", - "participation": "70", - "latest_reported_timestamp": "2022-06-01T01:46:54.705Z", - "latest_version": "1658829" - }, - { - "validator": "7be2fbe94b3034025f53137121e8b917fb834dfa77ed2503f53cde4f5698ad6b", - "liveness": "82", - "participation": "69", - "latest_reported_timestamp": "2022-06-01T17:58:25.713Z", - "latest_version": "2390759" - }, - { - "validator": "3c0578fcbb54014ab92573499a7069e3be5dd0fa3d7577abadb4d2bd4e286232", - "liveness": "100", - "participation": "69", - "latest_reported_timestamp": "2022-06-03T07:03:42.829Z", - "latest_version": "2235890" - }, - { - "validator": "565429802252d599bd0043a0fd2e2b04535f06a8c56babb346ded0d55925b010", - "liveness": "100", - "participation": "57", - "latest_reported_timestamp": "2022-06-03T07:03:29.489Z", - "latest_version": "2606228" - }, - { - "validator": "b6d37555050fd2a49fe20203c36373de54a1f03f49cb3ab49f677bfc7923adff", - "liveness": "100", - "participation": "43", - "latest_reported_timestamp": "2022-06-03T07:03:18.543Z", - "latest_version": "2235864" - }, - { - "validator": "52bc17218e44959ecda062f6294b37f17b26040185ec671729d13bed88069762", - "liveness": "35", - "participation": "35", - "latest_reported_timestamp": "2022-05-28T19:21:17.881Z", - "latest_version": "1730479" - }, - { - "validator": "24ff097f20456be8e51ad1d0659ecf18747cc05f0c435466f72c2aa7ccd4de8d", - "liveness": "100", - "participation": "33", - "latest_reported_timestamp": "2022-06-03T07:03:22.120Z", - "latest_version": "1585683" - }, - { - "validator": "50f50204b93c4a832dfadd3350a4edd6ea586682d135d0f08aed21b54fa7ca7e", - "liveness": "100", - "participation": "10", - "latest_reported_timestamp": "2022-06-03T07:03:23.739Z", - "latest_version": "2107875" - }, - { - "validator": "e7216dda5258eb2948ed53bcf7131a231c8b107f3d406775208c9fdb292ed614", - "liveness": "99", - "participation": "1", - "latest_reported_timestamp": "2022-06-03T07:03:27.077Z", - "latest_version": "2235870" - }, - { - "validator": "6e030a92096df31ea62696401341119f18f211f8f3ba0070ac54de0415b64e4d", - "liveness": "14", - "participation": "0", - "latest_reported_timestamp": "2022-05-28T10:49:32.617Z", - "latest_version": "1747070" - }, - { - "validator": "89acde1e67b8472b1542ddf3e1131c099ea12479fc0a419150fd466401528df3", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:37.075Z", - "latest_version": "2526926" - }, - { - "validator": "9b730f695f8535b4c03ae50293f7ff133e85c656140072b8e2a55d87b5b3b542", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "ba4918752fa10b357db1da16af64cfdd6c7b783f31a7b5262ec7b6d514e309a8", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "c70071cb9c7c82ece74ea2ca75caf7f8fa9bcdaa0f4b9a98c8af3d59601b65d1", - "liveness": "16", - "participation": "0", - "latest_reported_timestamp": "2022-05-27T05:48:50.342Z", - "latest_version": "1312477" - }, - { - "validator": "97bff6b90fa070389332760d4d54f054e273a5d2c6b4454c66a5e6fcc90d3fcf", - "liveness": "49", - "participation": "0", - "latest_reported_timestamp": "2022-05-30T00:12:09.793Z", - "latest_version": "1745014" - }, - { - "validator": "0c723d313c234b22d2a765dcb7212aa204cec6010ebc022310a318c4bf74b1fb", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "7011f5b844fefb5c3695a845adec873e7ad64525236a1bf52acafa009b52deea", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "c6348bb34831af0b7c024a51b7c0c14998a78fd2e069db201930e5b9788ac532", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "eb78c29aa07f22c712ee84e4fa35d853d5aa7b71e202c7994aaeb571795549a8", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "80299b2b633e3d7bcce39b35b752d69fe4a0ca162baab8f630810e9b569e525d", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:21.679Z", - "latest_version": "2244300" - }, - { - "validator": "2de361b077bb7f16267ad4d01b98f68b9edf3edcaa061187c71d8a61c6c53194", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "d18bfc4bfe622b3c2f8324905b652ad1e03bc4d4cea596ae71dbffd5aa35621e", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "3f5f6e1b71e35fe495cecfcfd7a1b8398c2da7ef4b2ed1ef7b789f7c0d39545f", - "liveness": "5", - "participation": "0", - "latest_reported_timestamp": "2022-05-26T07:38:20.182Z", - "latest_version": "15" - }, - { - "validator": "4959977c4b8fe30abcd6c85b170c9536794ccc710803701d74b77a0a983438fb", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:24.426Z", - "latest_version": "2518989" - }, - { - "validator": "46e9434122346500b557516d0171b99b1b68ce2494cc534298075549a9678d89", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "9ca94cdb2d7337de58561c3cac1dd24839e98d449c6e5b0359e4533c8a161a1b", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "404a272f0eb7b400ac0ccb1e9508a11719ce4d98395813b7a070a197e5369822", - "liveness": "5", - "participation": "0", - "latest_reported_timestamp": "2022-05-27T02:32:27.466Z", - "latest_version": "95" - }, - { - "validator": "3b45868239ef6ee83b65818455e9ef13467e1c62f0fdf3a4903131185c775888", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "0be44629d0f4b85053f93dad9c9607bd93dbea8ac6dcf0e2ee00accc6d6684a9", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "d86ab9e3c68af929b4f0a45514fe233d93cfd7bc89403c0477ebd30542cacba7", - "liveness": "55", - "participation": "0", - "latest_reported_timestamp": "2022-05-30T11:22:55.933Z", - "latest_version": "1828976" - }, - { - "validator": "29d981843e61291d35cb26034d3c8b9c0bbde87d790946db4d483a1f88366025", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:35.932Z", - "latest_version": "1978869" - }, - { - "validator": "8f2808197dc27b40bc6463d9c2cf5682f55eca97b8a718d05a3b3d67fc1690b7", - "liveness": "0", - "participation": "0", - "latest_reported_timestamp": "", - "latest_version": "" - }, - { - "validator": "6f7c27489f120c072dbe13e419303359e50cf585bad883dd3328b7a23c88908c", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:42.210Z", - "latest_version": "2632896" - }, - { - "validator": "f27d131d34fdde3764d4dc7a870864bc6215739ef548f6fe762f9d77c0c889d2", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:34.293Z", - "latest_version": "2151833" - }, - { - "validator": "a92372066478528c4aa0aa1c699d45edf5d8bbd89ad26380a4af928e3e51f5c5", - "liveness": "100", - "participation": "0", - "latest_reported_timestamp": "2022-06-03T07:03:33.130Z", - "latest_version": "2152163" - }, - { - "validator": "29b30965bf56d0cf4709e8fa62464591830e391199fd21837d57355a03763734", - "liveness": "19", - "participation": "0", - "latest_reported_timestamp": "2022-05-27T12:26:36.549Z", - "latest_version": "15" - } -] diff --git a/ecosystem/platform/server/public/it2_leaderboard_example.json b/ecosystem/platform/server/public/it2_leaderboard_example.json deleted file mode 100644 index 15f171075aa6a..0000000000000 --- a/ecosystem/platform/server/public/it2_leaderboard_example.json +++ /dev/null @@ -1,142 +0,0 @@ -[ - { - "validator": "e259c83edfdbe5b1b833faf45408f3ce48dc64de77b1aa744cad1ebe54ca6609", - "liveness": "97.0", - "participation": "92.0", - "num_votes": "5184", - "latest_reported_timestamp": "2022-07-07T17:24:46Z" - }, - { - "validator": "83424ccb8c69982802c35f656a381ea4ee641aa431a8a24d9d1c3134ac697dd9", - "liveness": "99.0", - "participation": "97.0", - "num_votes": "4698", - "latest_reported_timestamp": "2022-07-07T05:24:46Z" - }, - { - "validator": "e93f2087bf380836825efbd683aaca87e109c7f8c1da8e90c218b250e22bc17e", - "liveness": "92.0", - "participation": "95.0", - "num_votes": "4577", - "latest_reported_timestamp": "2022-07-07T17:24:38Z" - }, - { - "validator": "4e5a325c29780ebbd924628d559c2577532ca79bea5e6d6451b6c45a426d90e7", - "liveness": "98.0", - "participation": "96.0", - "num_votes": "4428", - "latest_reported_timestamp": "2022-07-07T17:24:41Z" - }, - { - "validator": "f8b54c48c2b0eebe2d4c376efff3273c0fdf0d640563db6b354aed824b2a4323", - "liveness": "95.0", - "participation": "91.0", - "num_votes": "3214", - "latest_reported_timestamp": "2022-07-07T17:24:47Z" - }, - { - "validator": "871f63bc252b7428754c4c924d62e25a112790931f7ce82d13418fdae9b73ee3", - "liveness": "96.0", - "participation": "91.0", - "num_votes": "1735", - "latest_reported_timestamp": "2022-07-07T17:24:44Z" - }, - { - "validator": "1958fae48dae3cf9ed4f92e8308ee213401f2a41ca312980138a06a9b94e541f", - "liveness": "90.0", - "participation": "98.0", - "num_votes": "1335", - "latest_reported_timestamp": "2022-07-07T17:24:42Z" - }, - { - "validator": "242bf2bb0c9d3afeea4d5e15c14608dade0903b383ef0def954e2091343cdc5", - "liveness": "99.0", - "participation": "95.0", - "num_votes": "1214", - "latest_reported_timestamp": "2022-07-07T17:24:49Z" - }, - { - "validator": "700816b23b55467f76ce87c0dba228c7c564b61ec173a9f4788ca985c1957b00", - "liveness": "96.0", - "participation": "97.0", - "num_votes": "1138", - "latest_reported_timestamp": "2022-07-07T06:33:57Z" - }, - { - "validator": "6f409c8b73a18cdeea4546c1df1e93594c07740cc609d93a99ca55c4920beb32", - "liveness": "91.0", - "participation": "92.0", - "num_votes": "1123", - "latest_reported_timestamp": "2022-07-07T17:24:47Z" - }, - { - "validator": "ff1edbd3e4fd10617261d8f8f9176d77e2093ddada51b248b461a65475e839dd", - "liveness": "91.0", - "participation": "97.0", - "num_votes": "946", - "latest_reported_timestamp": "2022-07-07T17:24:45Z" - }, - { - "validator": "28c0c0b575af75d0ddac1eb5c17af7a8cf3208a8372415219a7e317264b8f4de", - "liveness": "96.0", - "participation": "98.0", - "num_votes": "938", - "latest_reported_timestamp": "2022-07-07T17:24:45Z" - }, - { - "validator": "618aabd73e7eea9511853b3b73ccd479584a40282936cdf3cf82c04d4b085ffb", - "liveness": "97.0", - "participation": "100.0", - "num_votes": "927", - "latest_reported_timestamp": "2022-07-07T17:24:44Z" - }, - { - "validator": "c493bb36ac19d800640b32eb2844da802d6530773b01eeaa4886ad25196d7210", - "liveness": "96.0", - "participation": "90.0", - "num_votes": "911", - "latest_reported_timestamp": "2022-07-07T17:24:43Z" - }, - { - "validator": "938348b7c0d3fa132af43767c46eec9cdf4f726d0bb02e566b61abb11ac62e3a", - "liveness": "92.0", - "participation": "97.0", - "num_votes": "901", - "latest_reported_timestamp": "2022-07-07T17:24:48Z" - }, - { - "validator": "a541da2b986ba92d57f20a2de298895273f9601f3eab2cbf4029e0f3b9d45235", - "liveness": "99.0", - "participation": "92.0", - "num_votes": "862", - "latest_reported_timestamp": "2022-07-07T17:22:02Z" - }, - { - "validator": "b8587a0616068db6ac7bab5a64ac1b474b5c3ff90a5caf61fe67608eb6749441", - "liveness": "91.0", - "participation": "98.0", - "num_votes": "857", - "latest_reported_timestamp": "2022-07-07T17:24:35Z" - }, - { - "validator": "ffdabcdd88d12ea0681e2667ca5ec85a573dbbe6d5fa527dfd2bca11eb5a7837", - "liveness": "100.0", - "participation": "91.0", - "num_votes": "852", - "latest_reported_timestamp": "2022-07-07T17:24:47Z" - }, - { - "validator": "f5c22558b436a274913e750d91b55f06c52f84bdef6612ecdc221669e0171328", - "liveness": "99.0", - "participation": "92.0", - "num_votes": "803", - "latest_reported_timestamp": "2022-07-07T17:24:49Z" - }, - { - "validator": "ce0a5f973a9b70169db96a7e69ba7167dfa453923022de26119f8ae3cdab8172", - "liveness": "93.0", - "participation": "93.0", - "num_votes": "493", - "latest_reported_timestamp": "2022-07-07T17:24:27Z" - } -] diff --git a/ecosystem/platform/server/public/it3_leaderboard_example.json b/ecosystem/platform/server/public/it3_leaderboard_example.json deleted file mode 100644 index 0cc74a0e6b888..0000000000000 --- a/ecosystem/platform/server/public/it3_leaderboard_example.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "owner_address": "0xf1e0e47f1ef4e81082362566b861f6b3bdfef38ddfbf7231ccffbc93f939bf6f", - "liveness": "99", - "rewards_growth": "100.0", - "last_epoch": "5", - "last_epoch_performance": "2609/2609", - "governance_voting_record": "1/3" - }, - { - "owner_address": "0x8ccded8e00eaaee94cb551b9c6921c15dde2758ac138929bdff62c2316b9478f", - "liveness": "99", - "rewards_growth": "100.0", - "last_epoch": "5", - "last_epoch_performance": "21963/21963", - "governance_voting_record": "1/3" - }, - { - "owner_address": "0xa365cb0a8fd3c546fb36ab157d4c4e46699ffb34f84540a3067531bcb339b994", - "liveness": "99", - "rewards_growth": "100.0", - "last_epoch": "5", - "last_epoch_performance": "20654/20654", - "governance_voting_record": "1/3" - }, - { - "owner_address": "0x5b3de995014e5c124e9adffeaa129549d8e1cce546747fc4ce03215e2b41dcff", - "liveness": "99", - "rewards_growth": "100.0", - "last_epoch": "5", - "last_epoch_performance": "21146/21146", - "governance_voting_record": "1/3" - }, - { - "owner_address": "0x613ca10d08fdfb15e7c1e6f768a3ecfaf06ea6e9354207e89fd1e5835a3e2a92", - "liveness": "99", - "rewards_growth": "100.0", - "last_epoch": "5", - "last_epoch_performance": "21928/21928", - "governance_voting_record": "1/3" - }, - { - "owner_address": "0x8c91f8c74f48784f9a5c873d372e52bfbce6fee6ae420e04ef346e9bffae9d63", - "liveness": "99", - "rewards_growth": "0.0", - "last_epoch": "5", - "last_epoch_performance": null, - "governance_voting_record": "1/3" - } -] diff --git a/ecosystem/platform/server/public/robots.txt b/ecosystem/platform/server/public/robots.txt deleted file mode 100644 index c19f78ab6836e..0000000000000 --- a/ecosystem/platform/server/public/robots.txt +++ /dev/null @@ -1 +0,0 @@ -# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file diff --git a/ecosystem/platform/server/spec/components/button_component_spec.rb b/ecosystem/platform/server/spec/components/button_component_spec.rb deleted file mode 100644 index 98bc30cb26337..0000000000000 --- a/ecosystem/platform/server/spec/components/button_component_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'rails_helper' - -RSpec.describe ButtonComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/card_outline_component_spec.rb b/ecosystem/platform/server/spec/components/card_outline_component_spec.rb deleted file mode 100644 index f7b586a5f5bfd..0000000000000 --- a/ecosystem/platform/server/spec/components/card_outline_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe CardOutlineComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/dialog_component_spec.rb b/ecosystem/platform/server/spec/components/dialog_component_spec.rb deleted file mode 100644 index 42322114e900f..0000000000000 --- a/ecosystem/platform/server/spec/components/dialog_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe DialogComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/divider_component_spec.rb b/ecosystem/platform/server/spec/components/divider_component_spec.rb deleted file mode 100644 index 7828d271168b9..0000000000000 --- a/ecosystem/platform/server/spec/components/divider_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe DividerComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/footer_component_spec.rb b/ecosystem/platform/server/spec/components/footer_component_spec.rb deleted file mode 100644 index 0080c0a7db862..0000000000000 --- a/ecosystem/platform/server/spec/components/footer_component_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'rails_helper' - -RSpec.describe FooterComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/global_announcement_component_spec.rb b/ecosystem/platform/server/spec/components/global_announcement_component_spec.rb deleted file mode 100644 index 4390715f380d5..0000000000000 --- a/ecosystem/platform/server/spec/components/global_announcement_component_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'rails_helper' - -RSpec.describe GlobalAnnouncementComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/header_component_spec.rb b/ecosystem/platform/server/spec/components/header_component_spec.rb deleted file mode 100644 index cc88b5932fe02..0000000000000 --- a/ecosystem/platform/server/spec/components/header_component_spec.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'rails_helper' - -RSpec.describe HeaderComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/icon_component_spec.rb b/ecosystem/platform/server/spec/components/icon_component_spec.rb deleted file mode 100644 index 5c5af4da58a4e..0000000000000 --- a/ecosystem/platform/server/spec/components/icon_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe IconComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/icon_tooltip_component_spec.rb b/ecosystem/platform/server/spec/components/icon_tooltip_component_spec.rb deleted file mode 100644 index ef3b2cd773f3b..0000000000000 --- a/ecosystem/platform/server/spec/components/icon_tooltip_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe IconTooltipComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/link_component_spec.rb b/ecosystem/platform/server/spec/components/link_component_spec.rb deleted file mode 100644 index 4037d01813865..0000000000000 --- a/ecosystem/platform/server/spec/components/link_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe LinkComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/login_button_component_spec.rb b/ecosystem/platform/server/spec/components/login_button_component_spec.rb deleted file mode 100644 index 54579da16b631..0000000000000 --- a/ecosystem/platform/server/spec/components/login_button_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe LoginButtonComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/table_component_spec.rb b/ecosystem/platform/server/spec/components/table_component_spec.rb deleted file mode 100644 index 1271514521b8b..0000000000000 --- a/ecosystem/platform/server/spec/components/table_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe TableComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/table_header_column_component_spec.rb b/ecosystem/platform/server/spec/components/table_header_column_component_spec.rb deleted file mode 100644 index 679a3bfdd84bf..0000000000000 --- a/ecosystem/platform/server/spec/components/table_header_column_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe TableHeaderColumnComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/table_row_column_component_spec.rb b/ecosystem/platform/server/spec/components/table_row_column_component_spec.rb deleted file mode 100644 index 1f448c6dc2042..0000000000000 --- a/ecosystem/platform/server/spec/components/table_row_column_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe TableRowColumnComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/components/table_row_component_spec.rb b/ecosystem/platform/server/spec/components/table_row_component_spec.rb deleted file mode 100644 index d68d37b9c2e10..0000000000000 --- a/ecosystem/platform/server/spec/components/table_row_component_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -# frozen_string_literal: true - -require 'rails_helper' - -RSpec.describe TableRowComponent, type: :component do - pending "add some examples to (or delete) #{__FILE__}" - - # it "renders something useful" do - # expect( - # render_inline(described_class.new(attr: "value")) { "Hello, components!" }.css("p").to_html - # ).to include( - # "Hello, components!" - # ) - # end -end diff --git a/ecosystem/platform/server/spec/factories/articles.rb b/ecosystem/platform/server/spec/factories/articles.rb deleted file mode 100644 index a05123a000de6..0000000000000 --- a/ecosystem/platform/server/spec/factories/articles.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :article do - status { 'draft' } - title { Faker::Book.title } - content { Faker::Lorem.paragraphs(number: 3).map { |p| "

#{p}

" }.join } - slug { Faker::Internet.slug } - end -end diff --git a/ecosystem/platform/server/spec/factories/categories.rb b/ecosystem/platform/server/spec/factories/categories.rb deleted file mode 100644 index 70a07dd12971b..0000000000000 --- a/ecosystem/platform/server/spec/factories/categories.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :category do - title { %w[NFTs DeFi Gaming Tooling Wallets Data Lending Other].sample } - end -end diff --git a/ecosystem/platform/server/spec/factories/it3_profiles.rb b/ecosystem/platform/server/spec/factories/it3_profiles.rb deleted file mode 100644 index da0c871e772f1..0000000000000 --- a/ecosystem/platform/server/spec/factories/it3_profiles.rb +++ /dev/null @@ -1,21 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :it3_profile do - user { build :user } - owner_key { "0x#{Faker::Crypto.sha256}" } - consensus_key { "0x#{Faker::Crypto.sha256}#{Faker::Crypto.sha256}"[0...98] } - consensus_pop { "0x#{Faker::Crypto.sha256}#{Faker::Crypto.sha256}#{Faker::Crypto.sha256}"[0...194] } - account_key { "0x#{Faker::Crypto.sha256}" } - network_key { "0x#{Faker::Crypto.sha256}" } - fullnode_network_key { "0x#{Faker::Crypto.sha256}" } - fullnode_address { Faker::Internet.ip_v4_address } - fullnode_port { 6180 } - fullnode_api_port { 8080 } - fullnode_metrics_port { 9101 } - terms_accepted { true } - end -end diff --git a/ecosystem/platform/server/spec/factories/it3_surveys.rb b/ecosystem/platform/server/spec/factories/it3_surveys.rb deleted file mode 100644 index b09801cb463b6..0000000000000 --- a/ecosystem/platform/server/spec/factories/it3_surveys.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :it3_survey do - user { build :user } - persona { 'Node Operator' } - participate_reason { Faker::Quote.yoda } - qualified_reason { Faker::Quote.yoda } - website { Faker::Internet.url } - interest_reason { Faker::Quote.yoda } - end -end diff --git a/ecosystem/platform/server/spec/factories/nft_images.rb b/ecosystem/platform/server/spec/factories/nft_images.rb deleted file mode 100644 index e37e8803f45ca..0000000000000 --- a/ecosystem/platform/server/spec/factories/nft_images.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :nft_image do - slug { 'aptos-zero' } - image_number { Faker::Number.number(digits: 3) } - end -end diff --git a/ecosystem/platform/server/spec/factories/notification_preferences.rb b/ecosystem/platform/server/spec/factories/notification_preferences.rb deleted file mode 100644 index feb9160fac2a9..0000000000000 --- a/ecosystem/platform/server/spec/factories/notification_preferences.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :notification_preference do - user { build :user } - delivery_method { 0 } - node_upgrade_notification { false } - governance_proposal_notification { false } - end -end diff --git a/ecosystem/platform/server/spec/factories/project_categories.rb b/ecosystem/platform/server/spec/factories/project_categories.rb deleted file mode 100644 index 21f7e97f43600..0000000000000 --- a/ecosystem/platform/server/spec/factories/project_categories.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :project_category do - project { build(:project, project_categories: [instance]) } - category { Category.order('RANDOM()').first || build(:category) } - end -end diff --git a/ecosystem/platform/server/spec/factories/project_members.rb b/ecosystem/platform/server/spec/factories/project_members.rb deleted file mode 100644 index e8a8d7871353f..0000000000000 --- a/ecosystem/platform/server/spec/factories/project_members.rb +++ /dev/null @@ -1,13 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :project_member do - project { build(:project, project_members: [instance]) } - user { build(:user) } - role { 'admin' } - public { true } - end -end diff --git a/ecosystem/platform/server/spec/factories/projects.rb b/ecosystem/platform/server/spec/factories/projects.rb deleted file mode 100644 index cd7bec94b043b..0000000000000 --- a/ecosystem/platform/server/spec/factories/projects.rb +++ /dev/null @@ -1,25 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :project do - user - title { Faker::Company.name } - short_description { Faker::Company.catch_phrase } - full_description { Faker::Lorem.paragraphs(number: 3).join("\n\n") } - website_url { Faker::Internet.url } - github_url { Faker::Internet.url(host: 'github.com') } - discord_url { Faker::Internet.url(host: 'discord.com') } - twitter_url { Faker::Internet.url(host: 'twitter.com') } - telegram_url { Faker::Internet.url(host: 't.me') } - linkedin_url { Faker::Internet.url(host: 'linkedin.com') } - youtube_url { Faker::Internet.url(host: 'www.youtube.com') } - thumbnail { Rack::Test::UploadedFile.new('app/assets/images/favicon.png', 'image/png') } - public { true } - project_categories { build_list(:project_category, 3, project: instance).uniq(&:category_id) } - project_members { build_list(:project_member, 3, project: instance) } - screenshots { 4.times.map { |_| Rack::Test::UploadedFile.new('app/assets/images/favicon.png', 'image/png') } } - end -end diff --git a/ecosystem/platform/server/spec/factories/users.rb b/ecosystem/platform/server/spec/factories/users.rb deleted file mode 100644 index f459c4d8e74c3..0000000000000 --- a/ecosystem/platform/server/spec/factories/users.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :user, class: User do - username { Faker::Internet.username(specifier: 3..20, separators: %w[- _]) } - password { Faker::Internet.password } - email { Faker::Internet.email } - bio { Faker::Lorem.paragraph } - confirmed_at { Date.new } - - factory :admin_user do - is_root { true } - end - end -end diff --git a/ecosystem/platform/server/spec/factories/wallets.rb b/ecosystem/platform/server/spec/factories/wallets.rb deleted file mode 100644 index 5daf3ecdac705..0000000000000 --- a/ecosystem/platform/server/spec/factories/wallets.rb +++ /dev/null @@ -1,15 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -FactoryBot.define do - factory :wallet do - user - network { 'ait3' } - wallet_name { 'petra' } - public_key { "0x#{Faker::Crypto.sha256}" } - challenge { '0' * 24 } - signed_challenge { "0x#{Faker::Crypto.sha256}#{Faker::Crypto.sha256}" } - end -end diff --git a/ecosystem/platform/server/spec/helpers/leaderboard_helper_spec.rb b/ecosystem/platform/server/spec/helpers/leaderboard_helper_spec.rb deleted file mode 100644 index cda99d4dd0ad3..0000000000000 --- a/ecosystem/platform/server/spec/helpers/leaderboard_helper_spec.rb +++ /dev/null @@ -1,19 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -require 'rails_helper' - -# Specs in this file have access to a helper object that includes -# the LeaderboardHelper. For example: -# -# describe LeaderboardHelper do -# describe "string concat" do -# it "concats two strings with spaces" do -# expect(helper.concat_strings("this","that")).to eq("this that") -# end -# end -# end -RSpec.describe LeaderboardHelper, type: :helper do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/ecosystem/platform/server/spec/mailers/previews/user_preview.rb b/ecosystem/platform/server/spec/mailers/previews/user_preview.rb deleted file mode 100644 index c93e10465d9a7..0000000000000 --- a/ecosystem/platform/server/spec/mailers/previews/user_preview.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# Preview all emails at http://localhost:3000/rails/mailers/user -class UserPreview < ActionMailer::Preview -end diff --git a/ecosystem/platform/server/spec/models/article_spec.rb b/ecosystem/platform/server/spec/models/article_spec.rb deleted file mode 100644 index 924befb9fc411..0000000000000 --- a/ecosystem/platform/server/spec/models/article_spec.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'rails_helper' - -RSpec.describe Article, type: :model do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/ecosystem/platform/server/spec/models/location_spec.rb b/ecosystem/platform/server/spec/models/location_spec.rb deleted file mode 100644 index 65e082068baa6..0000000000000 --- a/ecosystem/platform/server/spec/models/location_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -require 'rails_helper' - -RSpec.describe Location, type: :model do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/ecosystem/platform/server/spec/models/nft_image_spec.rb b/ecosystem/platform/server/spec/models/nft_image_spec.rb deleted file mode 100644 index f0126f6dd7318..0000000000000 --- a/ecosystem/platform/server/spec/models/nft_image_spec.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'rails_helper' - -RSpec.describe NftImage, type: :model do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/ecosystem/platform/server/spec/models/persona_kyc_spec.rb b/ecosystem/platform/server/spec/models/persona_kyc_spec.rb deleted file mode 100644 index dabf042c48f7e..0000000000000 --- a/ecosystem/platform/server/spec/models/persona_kyc_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -require 'rails_helper' - -RSpec.describe PersonaKyc, type: :model do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/ecosystem/platform/server/spec/rails_helper.rb b/ecosystem/platform/server/spec/rails_helper.rb deleted file mode 100644 index 54d2f9e53becd..0000000000000 --- a/ecosystem/platform/server/spec/rails_helper.rb +++ /dev/null @@ -1,91 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# This file is copied to spec/ when you run 'rails generate rspec:install' -require 'spec_helper' -ENV['RAILS_ENV'] ||= 'test' -require_relative '../config/environment' -# Prevent database truncation if the environment is production -abort('The Rails environment is running in production mode!') if Rails.env.production? -require 'rspec/rails' -# Add additional requires below this line. Rails is not loaded until this point! - -# Requires supporting ruby files with custom matchers and macros, etc, in -# spec/support/ and its subdirectories. Files matching `spec/**/*_spec.rb` are -# run as spec files by default. This means that files in spec/support that end -# in _spec.rb will both be required and run as specs, causing the specs to be -# run twice. It is recommended that you do not name files matching this glob to -# end with _spec.rb. You can configure this pattern with the --pattern -# option on the command line or in ~/.rspec, .rspec or `.rspec-local`. -# -# The following line is provided for convenience purposes. It has the downside -# of increasing the boot-up time by auto-requiring all files in the support -# directory. Alternatively, in the individual `*_spec.rb` files, manually -# require only the support files necessary. -# -# Dir[Rails.root.join('spec', 'support', '**', '*.rb')].sort.each { |f| require f } - -# Checks for pending migrations and applies them before tests are run. -# If you are not using ActiveRecord, you can remove these lines. -begin - ActiveRecord::Migration.maintain_test_schema! -rescue ActiveRecord::PendingMigrationError => e - puts e.to_s.strip - exit 1 -end -RSpec.configure do |config| - # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures - config.fixture_path = "#{::Rails.root}/spec/fixtures" - - # If you're not using ActiveRecord, or you'd prefer not to run each of your - # examples within a transaction, remove the following line or assign false - # instead of true. - config.use_transactional_fixtures = false - - config.before(:suite) do - DatabaseCleaner.clean_with(:truncation) - end - config.before(:each) do - DatabaseCleaner.strategy = :transaction - end - config.before(:each, js: true) do - DatabaseCleaner.strategy = :truncation - end - config.before(:each) do - DatabaseCleaner.start - end - config.after(:each) do - DatabaseCleaner.clean - end - config.before(:all) do - DatabaseCleaner.start - end - config.after(:all) do - DatabaseCleaner.clean - end - - # You can uncomment this line to turn off ActiveRecord support entirely. - # config.use_active_record = false - - # RSpec Rails can automatically mix in different behaviours to your tests - # based on their file location, for example enabling you to call `get` and - # `post` in specs under `spec/controllers`. - # - # You can disable this behaviour by removing the line below, and instead - # explicitly tag your specs with their type, e.g.: - # - # RSpec.describe UsersController, type: :controller do - # # ... - # end - # - # The different available types are documented in the features, such as in - # https://relishapp.com/rspec/rspec-rails/docs - config.infer_spec_type_from_file_location! - - # Filter lines from Rails gems in backtraces. - config.filter_rails_from_backtrace! - # arbitrary gems may also be filtered via: - # config.filter_gems_from_backtrace("gem name") -end diff --git a/ecosystem/platform/server/spec/requests/leaderboard_spec.rb b/ecosystem/platform/server/spec/requests/leaderboard_spec.rb deleted file mode 100644 index 2c6a4cf4e31d7..0000000000000 --- a/ecosystem/platform/server/spec/requests/leaderboard_spec.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -require 'rails_helper' - -RSpec.describe 'Leaderboards', type: :request do - describe 'GET /it1' do - it 'returns http success' do - get '/leaderboard/it1' - expect(response).to have_http_status(:success) - end - end -end diff --git a/ecosystem/platform/server/spec/views/leaderboard/it1.html.erb_spec.rb b/ecosystem/platform/server/spec/views/leaderboard/it1.html.erb_spec.rb deleted file mode 100644 index 68f4a6ef95228..0000000000000 --- a/ecosystem/platform/server/spec/views/leaderboard/it1.html.erb_spec.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 -require 'rails_helper' - -RSpec.describe 'leaderboard/it1.html.erb', type: :view do - pending "add some examples to (or delete) #{__FILE__}" -end diff --git a/ecosystem/platform/server/storage/.keep b/ecosystem/platform/server/storage/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/tailwind.config.js b/ecosystem/platform/server/tailwind.config.js deleted file mode 100644 index 48f588c39b461..0000000000000 --- a/ecosystem/platform/server/tailwind.config.js +++ /dev/null @@ -1,55 +0,0 @@ -const defaultTheme = require("tailwindcss/defaultTheme"); - -module.exports = { - content: [ - "./app/components/**/*.{rb,erb}", - "./app/helpers/**/*.rb", - "./app/controllers/**/*.rb", - "./app/form_builders/*.rb", - "./app/javascript/**/*.js", - "./app/views/**/*.{erb,haml,html,slim}", - ], - theme: { - extend: { - colors: { - neutral: { - ...defaultTheme.colors.neutral, - 100: "#f5f5f5", - 700: "#414141", - 800: "#262626", - 900: "#171717", - }, - teal: { - 50: "#eafff7", - 100: "#cbffeb", - 200: "#9cfedc", - 300: "#5df8cc", - 400: "#2ed8a7", - 500: "#00d0a1", - 600: "#00a380", - 700: "#008068", - 800: "#005c4b", - 900: "#002e26", - }, - }, - fontFamily: { - sans: ["apparat", ...defaultTheme.fontFamily.sans], - mono: ["lft-etica-mono", ...defaultTheme.fontFamily.mono], - display: ["apparat-semicond", ...defaultTheme.fontFamily.sans], - }, - fontWeight: { - normal: 300, - }, - screens: { - "max-sm": { max: "767px" }, - }, - }, - container: { - padding: { - DEFAULT: "1rem", - sm: "2rem", - }, - }, - }, - plugins: [require("@tailwindcss/forms"), require("@tailwindcss/typography")], -}; diff --git a/ecosystem/platform/server/test/application_system_test_case.rb b/ecosystem/platform/server/test/application_system_test_case.rb deleted file mode 100644 index 3236c69e77f8e..0000000000000 --- a/ecosystem/platform/server/test/application_system_test_case.rb +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class ApplicationSystemTestCase < ActionDispatch::SystemTestCase - driven_by :selenium, using: :chrome, screen_size: [1400, 1400] -end diff --git a/ecosystem/platform/server/test/channels/application_cable/connection_test.rb b/ecosystem/platform/server/test/channels/application_cable/connection_test.rb deleted file mode 100644 index fb7f836d684a5..0000000000000 --- a/ecosystem/platform/server/test/channels/application_cable/connection_test.rb +++ /dev/null @@ -1,18 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -module ApplicationCable - class ConnectionTest < ActionCable::Connection::TestCase - # test "connects with cookies" do - # cookies.signed[:user_id] = 42 - # - # connect - # - # assert_equal connection.user_id, "42" - # end - end -end diff --git a/ecosystem/platform/server/test/controllers/.keep b/ecosystem/platform/server/test/controllers/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/controllers/discourse_controller_test.rb b/ecosystem/platform/server/test/controllers/discourse_controller_test.rb deleted file mode 100644 index b0595f3ecfb21..0000000000000 --- a/ecosystem/platform/server/test/controllers/discourse_controller_test.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class DiscourseControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - setup do - ENV['DISCOURSE_SECRET'] = 'd836444a9e4084d5b224a60c208dce14' - user = FactoryBot.create(:user, { email: 'foo@example.com', username: 'foo', confirmed_at: DateTime.now }) - sign_in user - end - - test 'it redirects to discourse/session/sso if query string is blank' do - get discourse_sso_url - assert_redirected_to 'https://forum.aptoslabs.com/session/sso?return_path=%2F' - end - - test 'it redirects to discourse/session/sso_login if query string contains sso info' do - get discourse_sso_url(sso: 'bm9uY2U9Y2I2ODI1MWVlZmI1MjExZTU4YzAwZmYxMzk1ZjBjMGI=', - sig: '1ce1494f94484b6f6a092be9b15ccc1cdafb1f8460a3838fbb0e0883c4390471') - assert_redirected_to 'https://forum.aptoslabs.com/session/sso_login?sso=YWRtaW49ZmFsc2UmZW1haWw9Zm9vJTQwZXhhbXBsZS5jb20mbm9uY2U9Y2I2ODI1MWVlZmI1MjExZTU4YzAwZmYxMzk1ZjBjMGImdXNlcm5hbWU9Zm9v&sig=5e5c68081a49d907054f060f9acd5fa18950d6b6a4b00601ca6258987840dc2d' - end -end diff --git a/ecosystem/platform/server/test/controllers/it3_profiles_controller_test.rb b/ecosystem/platform/server/test/controllers/it3_profiles_controller_test.rb deleted file mode 100644 index e14ccc30f712f..0000000000000 --- a/ecosystem/platform/server/test/controllers/it3_profiles_controller_test.rb +++ /dev/null @@ -1,46 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' -require 'mocha/minitest' - -class It3ProfilesControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - setup do - @user = FactoryBot.create(:user) - sign_in @user - Flipper.enable(:it3_registration_open) - Flipper.enable(:it3_node_registration_enabled) - Flipper.enable(:it3_registration_closed) - Flipper.enable(:it3_registration_override, @user) - It3ProfilesController.any_instance.stubs(:verify_recaptcha).returns(true) - It3ProfilesController.any_instance.stubs(:validate_node).returns([]) - end - - test 'edit profile page' do - it3_profile = FactoryBot.create(:it3_profile, user: @user) - get edit_it3_profile_path(it3_profile) - assert_response :success - end - - test 'update existing profile' do - it3_profile = FactoryBot.create(:it3_profile, user: @user) - - patch it3_profile_path(it3_profile), params: { it3_profile: { - fullnode_address: '127.0.0.3', - fullnode_network_key: '0x7964a378e4c6d387d900c6e02430b7ee8263a977ace368484fc72c3b8469f520', - fullnode_port: '6183', - fullnode_metrics_port: '8101', - fullnode_api_port: '8081', - terms_accepted: '1' - } } - - it3_profile = It3Profile.find(@user.it3_profile.id) - assert_equal '127.0.0.3', it3_profile.fullnode_address - assert_equal 6183, it3_profile.fullnode_port - assert_equal '0x7964a378e4c6d387d900c6e02430b7ee8263a977ace368484fc72c3b8469f520', it3_profile.fullnode_network_key - end -end diff --git a/ecosystem/platform/server/test/controllers/it3s_controller_test.rb b/ecosystem/platform/server/test/controllers/it3s_controller_test.rb deleted file mode 100644 index 8dd4faae7cd27..0000000000000 --- a/ecosystem/platform/server/test/controllers/it3s_controller_test.rb +++ /dev/null @@ -1,40 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class It3sControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - setup do - Flipper.enable(:it3_registration_open) - Flipper.enable(:it3_registration_closed) - @user = FactoryBot.create(:user) - Flipper.enable(:it3_registration_override, @user) - sign_in @user - end - - teardown do - sign_out @user - end - - test 'it loads correctly' do - FactoryBot.create(:it3_profile, user: @user) - @user.update(kyc_status: 'completed') - get it3_path - assert_response :success - end - - test 'if logged out, it redirects to sign in, then redirects back to /it3' do - sign_out @user - get it3_path - assert_redirected_to new_user_session_path - - sign_in @user - post user_session_path - - assert_redirected_to it3_path - end -end diff --git a/ecosystem/platform/server/test/controllers/leaderboard_controller_test.rb b/ecosystem/platform/server/test/controllers/leaderboard_controller_test.rb deleted file mode 100644 index a61fbd9c94554..0000000000000 --- a/ecosystem/platform/server/test/controllers/leaderboard_controller_test.rb +++ /dev/null @@ -1,23 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class LeaderboardControllerTest < ActionDispatch::IntegrationTest - test 'loads correctly' do - get it1_path - assert_response :success - end - - test 'loads correctly with sort param' do - get it1_path(sort: '-participation,liveness') - assert_response :success - end - - test 'loads correctly with malformed sort param' do - get it1_path(sort: { '$foo': 1 }) - assert_response :success - end -end diff --git a/ecosystem/platform/server/test/controllers/onboarding_controller_test.rb b/ecosystem/platform/server/test/controllers/onboarding_controller_test.rb deleted file mode 100644 index f16ad007b16a4..0000000000000 --- a/ecosystem/platform/server/test/controllers/onboarding_controller_test.rb +++ /dev/null @@ -1,34 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class OnboardingControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - test 'onboarding/email page' do - user = FactoryBot.create(:user, { username: nil, email: nil, confirmed_at: nil }) - sign_in user - get onboarding_email_path - assert_response :success - end - - test 'set username & email' do - user = FactoryBot.create(:user, { username: nil, email: nil, confirmed_at: nil }) - sign_in user - post onboarding_email_path, params: { user: { username: 'satoshi', email: 'foobar@example.org' } } - assert_equal 'satoshi', user.username - assert_equal 'foobar@example.org', user.unconfirmed_email - assert_redirected_to onboarding_email_success_path - end - - test 'set username with already confirmed email' do - user = FactoryBot.create(:user, { username: nil, email: 'foobar@example.org', confirmed_at: DateTime.now }) - sign_in user - post onboarding_email_path, params: { user: { username: 'nakamoto' } } - assert_equal 'nakamoto', user.username - assert_redirected_to community_path - end -end diff --git a/ecosystem/platform/server/test/controllers/projects_controller_test.rb b/ecosystem/platform/server/test/controllers/projects_controller_test.rb deleted file mode 100644 index e71ed769c02a7..0000000000000 --- a/ecosystem/platform/server/test/controllers/projects_controller_test.rb +++ /dev/null @@ -1,152 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' -require 'mocha/minitest' - -class ProjectsControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - setup do - @user = FactoryBot.create(:user) - sign_in @user - Flipper.enable(:projects) - ProjectsController.any_instance.stubs(:verify_recaptcha).returns(true) - end - - test 'view all projects' do - 3.times do - FactoryBot.create(:project, user: @user, verified: true) - end - sign_out @user - get projects_path - assert_response :success - end - - test 'search for projects' do - ActiveRecord.verbose_query_logs = true - a = FactoryBot.create(:project, user: @user, verified: true, title: 'Revenge of the Fnords') - b = FactoryBot.create(:project, user: @user, verified: true, short_description: 'chronicles a group of fnords') - c = FactoryBot.create(:project, user: @user, verified: true, - full_description: 'The fnords decide to seek membership on the Greek Council ' * 10) - d = FactoryBot.create(:project, user: @user, verified: true, title: 'Episode V') - get projects_path(s: 'fnord') - assert_response :success - assert_select "[data-project-id=#{a.id}]" - assert_select "[data-project-id=#{b.id}]" - assert_select "[data-project-id=#{c.id}]" - assert_select "[data-project-id=#{d.id}]", false - end - - test 'view project' do - sign_out @user - project = FactoryBot.create(:project, user: @user, verified: true) - get project_path(project) - assert_response :success - end - - test 'view private project fails if current user is not the creator' do - project = FactoryBot.create(:project, public: false, verified: true) - get project_path(project) - assert_response :forbidden - end - - test 'view public, unverified project fails' do - project = FactoryBot.create(:project, user: FactoryBot.create(:user), public: true, verified: false) - get project_path(project) - assert_response :not_found - end - - test 'new project page' do - get new_project_path - assert_response :success - end - - test 'edit project page' do - skip('project editing disabled') - project = FactoryBot.create(:project, user: @user) - get edit_project_path(project) - assert_response :success - end - - test 'edit project page fails if current user is not the creator' do - skip('project editing disabled') - project = FactoryBot.create(:project, user: FactoryBot.create(:user)) - get edit_project_path(project) - assert_response :forbidden - end - - test 'create new project' do - category = FactoryBot.create(:category) - - assert_difference('Project.count') do - post projects_path, params: { project: { - title: Faker::Company.name, - short_description: Faker::Company.catch_phrase, - full_description: Faker::Lorem.paragraphs(number: 3).map { |p| "

#{p}

" }.join, - website_url: Faker::Internet.url, - github_url: Faker::Internet.url(host: 'github.com'), - discord_url: Faker::Internet.url(host: 'discord.com'), - twitter_url: Faker::Internet.url(host: 'twitter.com'), - telegram_url: Faker::Internet.url(host: 't.me'), - linkedin_url: Faker::Internet.url(host: 'linkedin.com'), - youtube_url: Faker::Internet.url(host: 'www.youtube.com'), - thumbnail: Rack::Test::UploadedFile.new('app/assets/images/favicon.png', 'image/png'), - category_ids: [category.id], - screenshots: [ - Rack::Test::UploadedFile.new('app/assets/images/favicon.png', 'image/png') - ], - public: true - } } - end - - project = Project.last - assert_redirected_to project_path(project) - assert_equal @user, project.user - end - - test 'update existing project' do - skip('project editing disabled') - project = FactoryBot.create(:project, user: @user) - assert_equal true, project.public - - patch project_path(project), params: { project: { - public: false - } } - assert_redirected_to project_path(project) - - project = Project.find(project.id) - assert_equal false, project.public - end - - test 'update existing project fails if current user is not the creator' do - skip('project editing disabled') - project = FactoryBot.create(:project, user: FactoryBot.create(:user)) - patch project_path(project), params: { project: { - public: true - } } - assert_response :forbidden - end - - test 'delete existing project' do - project = FactoryBot.create(:project, user: @user) - - assert_difference('Project.count', -1) do - delete project_path(project) - end - - assert_redirected_to projects_path - end - - test 'delete existing project fails if current user is not the creator' do - project = FactoryBot.create(:project, user: FactoryBot.create(:user)) - - assert_no_difference('Project.count') do - delete project_path(project) - end - - assert_response :forbidden - end -end diff --git a/ecosystem/platform/server/test/controllers/settings_controller_test.rb b/ecosystem/platform/server/test/controllers/settings_controller_test.rb deleted file mode 100644 index aaf724e57a59e..0000000000000 --- a/ecosystem/platform/server/test/controllers/settings_controller_test.rb +++ /dev/null @@ -1,88 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class SettingsControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - setup do - OmniAuth.config.test_mode = true - OmniAuth.config.add_mock :github, Faker::Omniauth.github - OmniAuth.config.add_mock :google, Faker::Omniauth.google - post user_github_omniauth_authorize_url - follow_redirect! - @user = User.last - sign_in @user - assert_equal 1, @user.authorizations.count - end - - test 'profile settings page' do - get settings_profile_url - assert_response :success - end - - test 'update username' do - patch settings_profile_url(@user), params: { user: { username: 'asdf' } } - assert_equal 'asdf', @user.username - end - - test 'update email' do - patch settings_profile_url(@user), params: { user: { email: 'foobar@example.org' } } - assert_equal 'foobar@example.org', @user.unconfirmed_email - end - - test 'notification settings page' do - get settings_notifications_path - assert_response :success - end - - test 'update notification settings' do - patch settings_notifications_path(@user), - params: { notification_preference: { node_upgrade_notification: true, - governance_proposal_notification: false } } - - prefs = @user.notification_preferences.where(delivery_method: :email).first - assert prefs.node_upgrade_notification - refute prefs.governance_proposal_notification - end - - test 'connections settings page' do - get settings_connections_url - assert_response :success - end - - test 'remove connection' do - post user_google_omniauth_authorize_url - follow_redirect! - assert_equal 2, @user.authorizations.count - authorization = @user.authorizations.first - delete settings_connections_url(authorization), params: { authorization: { id: authorization.id } } - assert_equal 1, @user.authorizations.count - end - - test 'remove last connection fails' do - assert_equal 1, @user.authorizations.count - authorization = @user.authorizations.first - delete settings_connections_url(authorization), params: { authorization: { id: authorization.id } } - assert_equal 1, @user.authorizations.count - end - - test 'deletes account successfully' do - @user.it3_profile = FactoryBot.create(:it3_profile, user: @user) - @user.it3_survey = FactoryBot.create(:it3_survey, user: @user) - delete settings_delete_account_url, - params: { user: { verification_text: 'delete my account 55555', verification_number: 55_555 } } - follow_redirect! - refute User.where(id: @user.id).exists? - end - - test 'delete account enforces verification' do - delete settings_delete_account_url, - params: { user: { verification_text: 'delete my account 55555', verification_number: 333 } } - assert_response 422 - assert User.where(id: @user.id).exists? - end -end diff --git a/ecosystem/platform/server/test/controllers/static_page_controller_test.rb b/ecosystem/platform/server/test/controllers/static_page_controller_test.rb deleted file mode 100644 index 5c4eb7fd53640..0000000000000 --- a/ecosystem/platform/server/test/controllers/static_page_controller_test.rb +++ /dev/null @@ -1,27 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class StaticPageControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - ROUTES = Rails.application.routes.routes.collect do |route| - ActionDispatch::Routing::RouteWrapper.new route - end.reject(&:internal?) - - ROUTES.select { |route| route.controller == 'static_page' }.each do |route| - test "static_page##{route.action} renders ok" do - sign_out @controller.current_user if @controller&.current_user - get route.format({}) - assert_response :success - - user = FactoryBot.create(:user) - sign_in user - get route.format({}) - assert_response :success - end - end -end diff --git a/ecosystem/platform/server/test/controllers/users/omniauth_callbacks_controller_test.rb b/ecosystem/platform/server/test/controllers/users/omniauth_callbacks_controller_test.rb deleted file mode 100644 index 2db8f395229d0..0000000000000 --- a/ecosystem/platform/server/test/controllers/users/omniauth_callbacks_controller_test.rb +++ /dev/null @@ -1,73 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -module Users - class OmniauthCallbacksControllerTest < ActionDispatch::IntegrationTest - TEST_NAME = 'Satoshi Nakamoto' - TEST_EMAIL = 'satoshi@example.com' - TEST_UID = '123456789' - - setup do - OmniAuth.config.test_mode = true - OmniAuth.config.add_mock :github, Faker::Omniauth.github(name: TEST_NAME, email: TEST_EMAIL, uid: TEST_UID) - OmniAuth.config.add_mock :google, Faker::Omniauth.google(name: TEST_NAME, email: TEST_EMAIL, uid: TEST_UID) - - # Faker doesn't have discord support yet. - OmniAuth.config.add_mock :discord, { - 'provider' => 'discord', - 'uid' => TEST_UID, - 'info' => { 'name' => TEST_NAME, 'email' => TEST_EMAIL, - 'image' => "https://cdn.discordapp.com/avatars/#{TEST_UID}/" }, - 'credentials' => { 'token' => Faker::Crypto.md5, 'refresh_token' => Faker::Crypto.md5, - 'expires_at' => Faker::Time.forward.to_i, 'expires' => true }, - 'extra' => - { 'raw_info' => - { 'id' => TEST_UID, - 'username' => 'satoshi', - 'avatar' => nil, - 'avatar_decoration' => nil, - 'discriminator' => '1337', - 'public_flags' => 0, - 'flags' => 0, - 'banner' => nil, - 'banner_color' => nil, - 'accent_color' => nil, - 'locale' => 'en-US', - 'mfa_enabled' => false, - 'email' => TEST_EMAIL, - 'verified' => true } } - } - end - - User.omniauth_providers.each do |provider| - test "new user via #{provider}" do - authorize_url = public_send("user_#{provider}_omniauth_authorize_url") - callback_url = public_send("user_#{provider}_omniauth_callback_url") - - # In test mode, authorize immediately redirects to callback. - post authorize_url - assert_redirected_to callback_url - - assert_difference('User.count') do - follow_redirect! - assert_redirected_to onboarding_email_url - end - - user = User.last - auth = Authorization.last - assert_equal user, auth.user - assert_equal provider.to_s, auth.provider - assert_equal TEST_UID, auth.uid - assert_not_empty auth.token - assert_equal TEST_EMAIL, auth.email - assert_equal TEST_NAME, auth.full_name - assert_match(/^https?:.+/, auth.profile_url) - assert_not_empty auth.username unless auth.username.nil? - end - end - end -end diff --git a/ecosystem/platform/server/test/controllers/users_controller_test.rb b/ecosystem/platform/server/test/controllers/users_controller_test.rb deleted file mode 100644 index 1b9d265ec830f..0000000000000 --- a/ecosystem/platform/server/test/controllers/users_controller_test.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class UsersControllerTest < ActionDispatch::IntegrationTest - setup do - @user = FactoryBot.create(:user) - Flipper.enable(:profiles) - end - - test 'overview loads correctly' do - get user_url(@user) - assert_response :success - end - - test 'projects loads correctly' do - get user_projects_url(@user) - assert_response :success - end - - test 'activity loads correctly' do - get user_activity_url(@user) - assert_response :success - end - - test 'rewards loads correctly' do - get user_rewards_url(@user) - assert_response :success - end -end diff --git a/ecosystem/platform/server/test/controllers/wallets_controller_test.rb b/ecosystem/platform/server/test/controllers/wallets_controller_test.rb deleted file mode 100644 index 91425e8c6cb7a..0000000000000 --- a/ecosystem/platform/server/test/controllers/wallets_controller_test.rb +++ /dev/null @@ -1,28 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class WalletsControllerTest < ActionDispatch::IntegrationTest - include Devise::Test::IntegrationHelpers - - test 'create new wallet' do - user = FactoryBot.create(:user) - sign_in user - - assert_difference('Wallet.count') do - post wallets_path, params: { - wallet: { - network: 'ait3', - wallet_name: 'petra', - public_key: '0x59506fcdc1f45c2f289bfd0f240c75995af54c31c5ed796b318d780b340471f6', - challenge: '999999999999999999999999', - signed_challenge: '0x7b7ded9a874ea2850528c9d5690a81bddde8064b446885b22bc68a2553320ee1854cca3d52c1f9fc8135e6' \ - '073784164d9c07bf8437a5850787e46729ad878807' - } - } - end - end -end diff --git a/ecosystem/platform/server/test/fixtures/files/.keep b/ecosystem/platform/server/test/fixtures/files/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/helpers/.keep b/ecosystem/platform/server/test/helpers/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/integration/.keep b/ecosystem/platform/server/test/integration/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/mailers/.keep b/ecosystem/platform/server/test/mailers/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/mailers/previews/user_mailer_preview.rb b/ecosystem/platform/server/test/mailers/previews/user_mailer_preview.rb deleted file mode 100644 index 9580d046a4c36..0000000000000 --- a/ecosystem/platform/server/test/mailers/previews/user_mailer_preview.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class UserMailerPreview < ActionMailer::Preview - def node_upgrade_notification - recipient = FactoryBot.build(:user) - network_operation = NetworkOperation.new( - title: 'Upgrade your Node!', - content: ' -

The node needs to be upgraded for the following reasons:

-
    -
  • Lorem
  • -
  • Ipsum
  • -
  • Dolor
  • -
  • Sit
  • -
  • Amet
  • -
- ' - ) - UserMailer.with(recipient:, network_operation:).node_upgrade_notification - end - - def governance_proposal_notification - recipient = FactoryBot.build(:user) - network_operation = NetworkOperation.new( - title: 'Governance Proposal', - content: ' -

We the people, in order to form a more perfect union,

-
    -
  • establish justice
  • -
  • insure domestic tranquility
  • -
  • provide for the common defense
  • -
  • promote the general welfare
  • -
  • and secure the blessings of liberty to ourselves and our posterity
  • -
-

do ordain and establish this Governance Proposal.

- ' - ) - UserMailer.with(recipient:, network_operation:).governance_proposal_notification - end -end diff --git a/ecosystem/platform/server/test/models/.keep b/ecosystem/platform/server/test/models/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/models/user_test.rb b/ecosystem/platform/server/test/models/user_test.rb deleted file mode 100644 index 6d45a39388940..0000000000000 --- a/ecosystem/platform/server/test/models/user_test.rb +++ /dev/null @@ -1,40 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -class UserTest < ActiveSupport::TestCase - include Devise::Test::IntegrationHelpers - - test 'username regex' do - # can't begin/end with a special - refute_match User::USERNAME_REGEX, 'bad_' - refute_match User::USERNAME_REGEX, '_bad' - refute_match User::USERNAME_REGEX, '_bad_' - refute_match User::USERNAME_REGEX, '__bad__' - refute_match User::USERNAME_REGEX, 'bad-' - refute_match User::USERNAME_REGEX, '-bad' - refute_match User::USERNAME_REGEX, '-bad-' - refute_match User::USERNAME_REGEX, '-bad--' - - # can't have two specials in a row - refute_match User::USERNAME_REGEX, 'bad-_bad' - refute_match User::USERNAME_REGEX, 'bad-_bad' - refute_match User::USERNAME_REGEX, 'bad--bad' - refute_match User::USERNAME_REGEX, 'bad__bad' - - # or invalid characters - refute_match User::USERNAME_REGEX, 'no good' - - # These are all valid - assert_match User::USERNAME_REGEX, 'potatosalad' - assert_match User::USERNAME_REGEX, 'potato-5-salad' - assert_match User::USERNAME_REGEX, 'potato-5salad' - assert_match User::USERNAME_REGEX, 'potato_5_salad' - assert_match User::USERNAME_REGEX, 'p-o_t-a_t_o-5-s_a_l-a_d' - assert_match User::USERNAME_REGEX, '555yes111' - - assert_equal(User::USERNAME_REGEX_JS, - '^(?!^[\\-_])(?!.*[\\-_]{2,})(?!.*[\\-_]$)[a-zA-Z0-9\\-_]+$') - end -end diff --git a/ecosystem/platform/server/test/notifications/governance_proposal_notification_test.rb b/ecosystem/platform/server/test/notifications/governance_proposal_notification_test.rb deleted file mode 100644 index 4fab7b3942135..0000000000000 --- a/ecosystem/platform/server/test/notifications/governance_proposal_notification_test.rb +++ /dev/null @@ -1,64 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class GovernanceProposalNotificationTest < ActiveSupport::TestCase - include ActionMailer::TestHelper - - test 'is not delivered if preferences don\'t exist' do - user = FactoryBot.create(:user) - network_operation = NetworkOperation.create(title: 'foo', content: 'bar') - notification = GovernanceProposalNotification.with(network_operation:) - - assert_no_difference('Notification.count') do - assert_emails 0 do - notification.deliver(user) - end - end - end - - test 'is delivered if preference is true' do - user = FactoryBot.create(:user) - NotificationPreference.create(user:, delivery_method: :database, governance_proposal_notification: true) - NotificationPreference.create(user:, delivery_method: :email, governance_proposal_notification: true) - network_operation = NetworkOperation.create(title: 'foo', content: 'bar') - notification = GovernanceProposalNotification.with(network_operation:) - - assert_difference('Notification.count') do - assert_emails 1 do - notification.deliver(user) - end - end - end - - test 'is not delivered by email if preference is true but user does not have a confirmed email' do - user = FactoryBot.create(:user, email: nil, unconfirmed_email: Faker::Internet.email) - NotificationPreference.create(user:, delivery_method: :database, governance_proposal_notification: true) - NotificationPreference.create(user:, delivery_method: :email, governance_proposal_notification: true) - network_operation = NetworkOperation.create(title: 'foo', content: 'bar') - notification = GovernanceProposalNotification.with(network_operation:) - - assert_difference('Notification.count') do - assert_emails 0 do - notification.deliver(user) - end - end - end - - test 'is not delivered if preference is false' do - user = FactoryBot.create(:user) - NotificationPreference.create(user:, delivery_method: :database, governance_proposal_notification: false) - NotificationPreference.create(user:, delivery_method: :email, governance_proposal_notification: false) - network_operation = NetworkOperation.create(title: 'foo', content: 'bar') - notification = GovernanceProposalNotification.with(network_operation:) - - assert_no_difference('Notification.count') do - assert_emails 0 do - notification.deliver(user) - end - end - end -end diff --git a/ecosystem/platform/server/test/services/wallet_creator_test.rb b/ecosystem/platform/server/test/services/wallet_creator_test.rb deleted file mode 100644 index afa394fac2555..0000000000000 --- a/ecosystem/platform/server/test/services/wallet_creator_test.rb +++ /dev/null @@ -1,58 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class WalletCreatorTest < ActiveSupport::TestCase - test 'the wallet is created if the signature is valid' do - signing_key = Ed25519::SigningKey.generate - - verify_key = signing_key.verify_key - wallet = FactoryBot.build(:wallet, public_key: "0x#{verify_key.to_bytes.unpack1('H*')}") - wallet.challenge = '1' * 24 - message = WalletCreator.new.send(:verify_wallet_message, wallet.challenge) - wallet.signed_challenge = "0x#{signing_key.sign(message).unpack1('H*')}" - - assert_difference('Wallet.count') do - result = WalletCreator.new.create_wallet(wallet:) - assert result.created? - end - end - - test 'the wallet is not created if the signature is invalid' do - signing_key = Ed25519::SigningKey.generate - - wallet = FactoryBot.build(:wallet, public_key: "0x#{Faker::Crypto.sha256}") - wallet.challenge = '1' * 24 - message = WalletCreator.new.send(:verify_wallet_message, wallet.challenge) - wallet.signed_challenge = "0x#{signing_key.sign(message).unpack1('H*')}" - - assert_no_difference('Wallet.count') do - result = WalletCreator.new.create_wallet(wallet:) - refute result.created? - end - end - - test 'wallets with the same address but different wallet_name can be created' do - signing_key = Ed25519::SigningKey.generate - - verify_key = signing_key.verify_key - public_key = "0x#{verify_key.to_bytes.unpack1('H*')}" - challenge = '1' * 24 - message = WalletCreator.new.send(:verify_wallet_message, challenge) - signed_challenge = "0x#{signing_key.sign(message).unpack1('H*')}" - - petra_wallet = FactoryBot.build(:wallet, wallet_name: 'petra', public_key:, challenge:, signed_challenge:) - martian_wallet = FactoryBot.build(:wallet, wallet_name: 'martian', public_key:, challenge:, signed_challenge:) - - assert_difference('Wallet.count', 2) do - result = WalletCreator.new.create_wallet(wallet: petra_wallet) - assert result.created? - - result = WalletCreator.new.create_wallet(wallet: martian_wallet) - assert result.created? - end - end -end diff --git a/ecosystem/platform/server/test/system/.keep b/ecosystem/platform/server/test/system/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/test/test_helper.rb b/ecosystem/platform/server/test/test_helper.rb deleted file mode 100644 index 9d82660aa67c9..0000000000000 --- a/ecosystem/platform/server/test/test_helper.rb +++ /dev/null @@ -1,40 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -ENV['RAILS_ENV'] ||= 'test' -require_relative '../config/environment' -require 'rails/test_help' - -module ActiveSupport - class TestCase - # Run tests in parallel with specified workers - parallelize(workers: :number_of_processors) - - # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order. - fixtures :all - - # Add more helper methods to be used by all tests here... - end -end - -module RemoveUploadedFiles - def after_teardown - super - remove_uploaded_files - end - - private - - def remove_uploaded_files - # Keeps the tmp/storage directory and any dotfiles inside it. - FileUtils.rm_rf(Dir[Rails.root.join('tmp', 'storage', '*')]) - end -end - -module ActionDispatch - class IntegrationTest - prepend RemoveUploadedFiles - end -end diff --git a/ecosystem/platform/server/test/unit/erb_implementation_test.rb b/ecosystem/platform/server/test/unit/erb_implementation_test.rb deleted file mode 100644 index 3e8821186db44..0000000000000 --- a/ecosystem/platform/server/test/unit/erb_implementation_test.rb +++ /dev/null @@ -1,20 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# frozen_string_literal: true - -require 'test_helper' - -class ErbImplementationTest < ActiveSupport::TestCase - ERB_GLOB = Rails.root.join( - 'app', '**', '{*.htm,*.html,*.htm.erb,*.html.erb,*.html+*.erb}' - ) - - Dir[ERB_GLOB].each do |filename| - pathname = Pathname.new(filename).relative_path_from(Rails.root) - test "html errors in #{pathname}" do - data = File.read(filename) - BetterHtml::BetterErb::ErubiImplementation.new(data).validate! - end - end -end diff --git a/ecosystem/platform/server/test/unit/erb_safety_test.rb b/ecosystem/platform/server/test/unit/erb_safety_test.rb deleted file mode 100644 index 187c511996f1f..0000000000000 --- a/ecosystem/platform/server/test/unit/erb_safety_test.rb +++ /dev/null @@ -1,21 +0,0 @@ -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -# frozen_string_literal: true - -require 'test_helper' -require 'better_html/test_helper/safe_erb_tester' - -class ErbSafetyTest < ActiveSupport::TestCase - include BetterHtml::TestHelper::SafeErbTester - ERB_GLOB = Rails.root.join( - 'app', '**', '{*.htm,*.html,*.htm.erb,*.html.erb,*.html+*.erb}' - ) - - Dir[ERB_GLOB].each do |filename| - pathname = Pathname.new(filename).relative_path_from(Rails.root) - test "missing javascript escapes in #{pathname}" do - assert_erb_safety File.read(filename) - end - end -end diff --git a/ecosystem/platform/server/test/unit/lint_factories_test.rb b/ecosystem/platform/server/test/unit/lint_factories_test.rb deleted file mode 100644 index 5f367aa9d9eaf..0000000000000 --- a/ecosystem/platform/server/test/unit/lint_factories_test.rb +++ /dev/null @@ -1,12 +0,0 @@ -# frozen_string_literal: true - -# Copyright (c) Aptos -# SPDX-License-Identifier: Apache-2.0 - -require 'test_helper' - -class LintFactoriesTest < ActiveSupport::TestCase - test 'all factories can be created' do - FactoryBot.lint traits: true - end -end diff --git a/ecosystem/platform/server/tmp/.keep b/ecosystem/platform/server/tmp/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/tmp/pids/.keep b/ecosystem/platform/server/tmp/pids/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/tmp/storage/.keep b/ecosystem/platform/server/tmp/storage/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/tsconfig.json b/ecosystem/platform/server/tsconfig.json deleted file mode 100644 index 603d5f7eeff5b..0000000000000 --- a/ecosystem/platform/server/tsconfig.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2019", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */ - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for TC39 stage 2 draft decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "es6", /* Specify what module code is generated. */ - // "rootDir": "./", /* Specify the root folder within your source files. */ - "moduleResolution": "node", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true, /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */ - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ - - /* Type Checking */ - "strict": true, /* Enable all strict type-checking options. */ - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } -} diff --git a/ecosystem/platform/server/vendor/.keep b/ecosystem/platform/server/vendor/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/vendor/assets/.keep b/ecosystem/platform/server/vendor/assets/.keep deleted file mode 100644 index e69de29bb2d1d..0000000000000 diff --git a/ecosystem/platform/server/yarn.lock b/ecosystem/platform/server/yarn.lock deleted file mode 100644 index bd944a090a662..0000000000000 --- a/ecosystem/platform/server/yarn.lock +++ /dev/null @@ -1,1140 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@hotwired/stimulus@3.0.1": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.0.1.tgz#141f15645acaa3b133b7c247cad58ae252ffae85" - integrity sha512-oHsJhgY2cip+K2ED7vKUNd2P+BEswVhrCYcJ802DSsblJFv7mPFVk3cQKvm2vHgHeDVdnj7oOKrBbzp1u8D+KA== - -"@hotwired/turbo-rails@7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.1.3.tgz#a4e04ecb800a06e7f9aa6e298170fa4580b74216" - integrity sha512-6qKgn75bMWKx0bJgmSfrdC73EJkGLoSWZPAssvcd3nE7ZpDZff6f67j5OQNjjpRgNB7OFruom6VWguGQGu1fQg== - dependencies: - "@hotwired/turbo" "^7.1.0" - "@rails/actioncable" "^7.0" - -"@hotwired/turbo@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.1.0.tgz#27e44e0e3dc5bd1d4bda0766d579cf5a14091cd7" - integrity sha512-Q8kGjqwPqER+CtpQudbH+3Zgs2X4zb6pBAlr6NsKTXadg45pAOvxI9i4QpuHbwSzR2+x87HUm+rot9F/Pe8rxA== - -"@nodelib/fs.scandir@2.1.5": - version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" - integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== - dependencies: - "@nodelib/fs.stat" "2.0.5" - run-parallel "^1.1.9" - -"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": - version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" - integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== - -"@nodelib/fs.walk@^1.2.3": - version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" - integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== - dependencies: - "@nodelib/fs.scandir" "2.1.5" - fastq "^1.6.0" - -"@rails/actioncable@^7.0": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.0.3.tgz#71f08e958883af64f6a20489318b5e95d2c6dc5b" - integrity sha512-Iefl21FZD+ck1di6xSHMYzSzRiNJTHV4NrAzCfDfqc/wPz4xncrP8f2/fJ+2jzwKIaDn76UVMsALh7R5OzsF8Q== - -"@sentry/browser@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@sentry/browser/-/browser-7.12.1.tgz#2be6fa5c2529a2a75abac4d00aca786362302a1a" - integrity sha512-pgyL65CrGFLe8sKcEG8KXAuVTE8zkAsyTlv/AuME06cSdxzO/memPK/r3BI6EM7WupIdga+V5tQUldeT1kgHNA== - dependencies: - "@sentry/core" "7.12.1" - "@sentry/types" "7.12.1" - "@sentry/utils" "7.12.1" - tslib "^1.9.3" - -"@sentry/core@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@sentry/core/-/core-7.12.1.tgz#a22f1c530ed528a699ed204c36eb5fc8d308103d" - integrity sha512-DFHbzHFjukhlkRZ5xzfebx0IBzblW43kmfnalBBq7xEMscUvnhsYnlvL9Y20tuPZ/PrTcq4JAHbFluAvw6M0QQ== - dependencies: - "@sentry/hub" "7.12.1" - "@sentry/types" "7.12.1" - "@sentry/utils" "7.12.1" - tslib "^1.9.3" - -"@sentry/hub@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-7.12.1.tgz#dffad40cd2b8f44df2d5f20a89df87879cbbf1c3" - integrity sha512-KLVnVqXf+CRmXNy9/T8K2/js7QvOQ94xtgP5KnWJbu2rl+JhxnIGiBRF51lPXFIatt7zWwB9qNdMS8lVsvLMGQ== - dependencies: - "@sentry/types" "7.12.1" - "@sentry/utils" "7.12.1" - tslib "^1.9.3" - -"@sentry/types@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@sentry/types/-/types-7.12.1.tgz#eff76d938f9effc62a2ec76cd5c3f04de37f5c15" - integrity sha512-VGZs39SZgMcCGv7H0VyFy1LEFGsnFZH590JUopmz6nG63EpeYQ2xzhIoPNAiLKbyUvBEwukn+faCg3u3MGqhgQ== - -"@sentry/utils@7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-7.12.1.tgz#fcf80fdc332d0bd288e21b13efc7a2f0d604f75a" - integrity sha512-Dh8B13pC0u8uLM/zf+oZngyg808c6BDEO94F7H+h3IciCVVd92A0cOQwLGAEdf8srnJgpZJNAlSC8lFDhbFHzQ== - dependencies: - "@sentry/types" "7.12.1" - tslib "^1.9.3" - -"@tailwindcss/forms@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/forms/-/forms-0.5.2.tgz#4ef45f9916dcb37838cbe7fecdcc4ba7a7c2ab59" - integrity sha512-pSrFeJB6Bg1Mrg9CdQW3+hqZXAKsBrSG9MAfFLKy1pVA4Mb4W7C0k7mEhlmS2Dfo/otxrQOET7NJiJ9RrS563w== - dependencies: - mini-svg-data-uri "^1.2.3" - -"@tailwindcss/typography@0.5.2": - version "0.5.2" - resolved "https://registry.yarnpkg.com/@tailwindcss/typography/-/typography-0.5.2.tgz#24b069dab24d7a2467d01aca0dd432cb4b29f0ee" - integrity sha512-coq8DBABRPFcVhVIk6IbKyyHUt7YTEC/C992tatFB+yEx5WGBQrCgsSFjxHUr8AWXphWckadVJbominEduYBqw== - dependencies: - lodash.castarray "^4.4.0" - lodash.isplainobject "^4.0.6" - lodash.merge "^4.6.2" - -"@types/json-schema@^7.0.9": - version "7.0.11" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" - integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== - -"@typescript-eslint/eslint-plugin@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.30.0.tgz#524a11e15c09701733033c96943ecf33f55d9ca1" - integrity sha512-lvhRJ2pGe2V9MEU46ELTdiHgiAFZPKtLhiU5wlnaYpMc2+c1R8fh8i80ZAa665drvjHKUJyRRGg3gEm1If54ow== - dependencies: - "@typescript-eslint/scope-manager" "5.30.0" - "@typescript-eslint/type-utils" "5.30.0" - "@typescript-eslint/utils" "5.30.0" - debug "^4.3.4" - functional-red-black-tree "^1.0.1" - ignore "^5.2.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/parser@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.30.0.tgz#a2184fb5f8ef2bf1db0ae61a43907e2e32aa1b8f" - integrity sha512-2oYYUws5o2liX6SrFQ5RB88+PuRymaM2EU02/9Ppoyu70vllPnHVO7ioxDdq/ypXHA277R04SVjxvwI8HmZpzA== - dependencies: - "@typescript-eslint/scope-manager" "5.30.0" - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/typescript-estree" "5.30.0" - debug "^4.3.4" - -"@typescript-eslint/scope-manager@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.30.0.tgz#bf585ee801ab4ad84db2f840174e171a6bb002c7" - integrity sha512-3TZxvlQcK5fhTBw5solQucWSJvonXf5yua5nx8OqK94hxdrT7/6W3/CS42MLd/f1BmlmmbGEgQcTHHCktUX5bQ== - dependencies: - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/visitor-keys" "5.30.0" - -"@typescript-eslint/type-utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.30.0.tgz#98f3af926a5099153f092d4dad87148df21fbaae" - integrity sha512-GF8JZbZqSS+azehzlv/lmQQ3EU3VfWYzCczdZjJRxSEeXDQkqFhCBgFhallLDbPwQOEQ4MHpiPfkjKk7zlmeNg== - dependencies: - "@typescript-eslint/utils" "5.30.0" - debug "^4.3.4" - tsutils "^3.21.0" - -"@typescript-eslint/types@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.30.0.tgz#db7d81d585a3da3801432a9c1d2fafbff125e110" - integrity sha512-vfqcBrsRNWw/LBXyncMF/KrUTYYzzygCSsVqlZ1qGu1QtGs6vMkt3US0VNSQ05grXi5Yadp3qv5XZdYLjpp8ag== - -"@typescript-eslint/typescript-estree@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.0.tgz#4565ee8a6d2ac368996e20b2344ea0eab1a8f0bb" - integrity sha512-hDEawogreZB4n1zoqcrrtg/wPyyiCxmhPLpZ6kmWfKF5M5G0clRLaEexpuWr31fZ42F96SlD/5xCt1bT5Qm4Nw== - dependencies: - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/visitor-keys" "5.30.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" - -"@typescript-eslint/utils@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.30.0.tgz#1dac771fead5eab40d31860716de219356f5f754" - integrity sha512-0bIgOgZflLKIcZsWvfklsaQTM3ZUbmtH0rJ1hKyV3raoUYyeZwcjQ8ZUJTzS7KnhNcsVT1Rxs7zeeMHEhGlltw== - dependencies: - "@types/json-schema" "^7.0.9" - "@typescript-eslint/scope-manager" "5.30.0" - "@typescript-eslint/types" "5.30.0" - "@typescript-eslint/typescript-estree" "5.30.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - -"@typescript-eslint/visitor-keys@5.30.0": - version "5.30.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.0.tgz#07721d23daca2ec4c2da7f1e660d41cd78bacac3" - integrity sha512-6WcIeRk2DQ3pHKxU1Ni0qMXJkjO/zLjBymlYBy/53qxe7yjEFSvzKLDToJjURUhSl2Fzhkl4SMXQoETauF74cw== - dependencies: - "@typescript-eslint/types" "5.30.0" - eslint-visitor-keys "^3.3.0" - -acorn-node@^1.8.2: - version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== - dependencies: - acorn "^7.0.0" - acorn-walk "^7.0.0" - xtend "^4.0.2" - -acorn-walk@^7.0.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== - -acorn@^7.0.0: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -ansi-regex@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" - integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== - -anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== - dependencies: - normalize-path "^3.0.0" - picomatch "^2.0.4" - -aptos@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.2.0.tgz#c555da3db90b66e7d623024e95ea6920cbf48403" - integrity sha512-4qyM8zShWPffmQoVN7hWJSKjAIWPgvZVN7oPKxnhuEetPEPV+LJyD2HtqYjUhTk/DuCANf8ziBatIKFE+vQY/A== - dependencies: - axios "^0.26.1" - buffer "^6.0.3" - js-sha3 "^0.8.0" - tweetnacl "^1.0.3" - typescript-memoize "^1.1.0" - yarn "^1.22.18" - -arg@^5.0.2: - version "5.0.2" - resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" - integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== - -array-union@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" - integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== - -autoprefixer@10.4.7: - version "10.4.7" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.7.tgz#1db8d195f41a52ca5069b7593be167618edbbedf" - integrity sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA== - dependencies: - browserslist "^4.20.3" - caniuse-lite "^1.0.30001335" - fraction.js "^4.2.0" - normalize-range "^0.1.2" - picocolors "^1.0.0" - postcss-value-parser "^4.2.0" - -axios@^0.26.1: - version "0.26.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" - integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== - dependencies: - follow-redirects "^1.14.8" - -base64-js@^1.3.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -binary-extensions@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" - integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== - -braces@^3.0.2, braces@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== - dependencies: - fill-range "^7.0.1" - -browserslist@^4.20.3: - version "4.21.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.1.tgz#c9b9b0a54c7607e8dc3e01a0d311727188011a00" - integrity sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ== - dependencies: - caniuse-lite "^1.0.30001359" - electron-to-chromium "^1.4.172" - node-releases "^2.0.5" - update-browserslist-db "^1.0.4" - -buffer@^6.0.3: - version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" - integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== - dependencies: - base64-js "^1.3.1" - ieee754 "^1.2.1" - -camelcase-css@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" - integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== - -caniuse-lite@^1.0.30001335, caniuse-lite@^1.0.30001359: - version "1.0.30001361" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz#ba2adb2527566fb96f3ac7c67698ae7fc495a28d" - integrity sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ== - -chokidar@^3.5.3: - version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" - integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== - dependencies: - anymatch "~3.1.2" - braces "~3.0.2" - glob-parent "~5.1.2" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.6.0" - optionalDependencies: - fsevents "~2.3.2" - -color-name@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -debug@^4.3.4: - version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== - dependencies: - ms "2.1.2" - -defined@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" - integrity sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ== - -detective@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/detective/-/detective-5.2.1.tgz#6af01eeda11015acb0e73f933242b70f24f91034" - integrity sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw== - dependencies: - acorn-node "^1.8.2" - defined "^1.0.0" - minimist "^1.2.6" - -didyoumean@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" - integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== - -dir-glob@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" - integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== - dependencies: - path-type "^4.0.0" - -dlv@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" - integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== - -dotenv@16.0.2: - version "16.0.2" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.2.tgz#0b0f8652c016a3858ef795024508cddc4bffc5bf" - integrity sha512-JvpYKUmzQhYoIFgK2MOnF3bciIZoItIIoryihy0rIA+H4Jy0FmgyKYAHCTN98P5ybGSJcIFbh6QKeJdtZd1qhA== - -duplexer@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - -electron-to-chromium@^1.4.172: - version "1.4.173" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.173.tgz#48f128dda49cd7f6317e65ac0085bd3a6b9b6e3b" - integrity sha512-Qo3LnVW6JRNhD32viSdPebxKI7K+3WeBDjU1+Q2yZS83zAh8C2LyPpzTimlciv6U74KpY9n/0ESAhUByRke0jw== - -esbuild-android-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.47.tgz#ef95b42c67bcf4268c869153fa3ad1466c4cea6b" - integrity sha512-R13Bd9+tqLVFndncMHssZrPWe6/0Kpv2/dt4aA69soX4PRxlzsVpCvoJeFE8sOEoeVEiBkI0myjlkDodXlHa0g== - -esbuild-android-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.47.tgz#4ebd7ce9fb250b4695faa3ee46fd3b0754ecd9e6" - integrity sha512-OkwOjj7ts4lBp/TL6hdd8HftIzOy/pdtbrNA4+0oVWgGG64HrdVzAF5gxtJufAPOsEjkyh1oIYvKAUinKKQRSQ== - -esbuild-darwin-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.47.tgz#e0da6c244f497192f951807f003f6a423ed23188" - integrity sha512-R6oaW0y5/u6Eccti/TS6c/2c1xYTb1izwK3gajJwi4vIfNs1s8B1dQzI1UiC9T61YovOQVuePDcfqHLT3mUZJA== - -esbuild-darwin-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.47.tgz#cd40fd49a672fca581ed202834239dfe540a9028" - integrity sha512-seCmearlQyvdvM/noz1L9+qblC5vcBrhUaOoLEDDoLInF/VQ9IkobGiLlyTPYP5dW1YD4LXhtBgOyevoIHGGnw== - -esbuild-freebsd-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.47.tgz#8da6a14c095b29c01fc8087a16cb7906debc2d67" - integrity sha512-ZH8K2Q8/Ux5kXXvQMDsJcxvkIwut69KVrYQhza/ptkW50DC089bCVrJZZ3sKzIoOx+YPTrmsZvqeZERjyYrlvQ== - -esbuild-freebsd-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.47.tgz#ad31f9c92817ff8f33fd253af7ab5122dc1b83f6" - integrity sha512-ZJMQAJQsIOhn3XTm7MPQfCzEu5b9STNC+s90zMWe2afy9EwnHV7Ov7ohEMv2lyWlc2pjqLW8QJnz2r0KZmeAEQ== - -esbuild-linux-32@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.47.tgz#de085e4db2e692ea30c71208ccc23fdcf5196c58" - integrity sha512-FxZOCKoEDPRYvq300lsWCTv1kcHgiiZfNrPtEhFAiqD7QZaXrad8LxyJ8fXGcWzIFzRiYZVtB3ttvITBvAFhKw== - -esbuild-linux-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.47.tgz#2a9321bbccb01f01b04cebfcfccbabeba3658ba1" - integrity sha512-nFNOk9vWVfvWYF9YNYksZptgQAdstnDCMtR6m42l5Wfugbzu11VpMCY9XrD4yFxvPo9zmzcoUL/88y0lfJZJJw== - -esbuild-linux-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.47.tgz#b9da7b6fc4b0ca7a13363a0c5b7bb927e4bc535a" - integrity sha512-ywfme6HVrhWcevzmsufjd4iT3PxTfCX9HOdxA7Hd+/ZM23Y9nXeb+vG6AyA6jgq/JovkcqRHcL9XwRNpWG6XRw== - -esbuild-linux-arm@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.47.tgz#56fec2a09b9561c337059d4af53625142aded853" - integrity sha512-ZGE1Bqg/gPRXrBpgpvH81tQHpiaGxa8c9Rx/XOylkIl2ypLuOcawXEAo8ls+5DFCcRGt/o3sV+PzpAFZobOsmA== - -esbuild-linux-mips64le@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.47.tgz#9db21561f8f22ed79ef2aedb7bbef082b46cf823" - integrity sha512-mg3D8YndZ1LvUiEdDYR3OsmeyAew4MA/dvaEJxvyygahWmpv1SlEEnhEZlhPokjsUMfRagzsEF/d/2XF+kTQGg== - -esbuild-linux-ppc64le@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.47.tgz#dc3a3da321222b11e96e50efafec9d2de408198b" - integrity sha512-WER+f3+szmnZiWoK6AsrTKGoJoErG2LlauSmk73LEZFQ/iWC+KhhDsOkn1xBUpzXWsxN9THmQFltLoaFEH8F8w== - -esbuild-linux-riscv64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.47.tgz#9bd6dcd3dca6c0357084ecd06e1d2d4bf105335f" - integrity sha512-1fI6bP3A3rvI9BsaaXbMoaOjLE3lVkJtLxsgLHqlBhLlBVY7UqffWBvkrX/9zfPhhVMd9ZRFiaqXnB1T7BsL2g== - -esbuild-linux-s390x@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.47.tgz#a458af939b52f2cd32fc561410d441a51f69d41f" - integrity sha512-eZrWzy0xFAhki1CWRGnhsHVz7IlSKX6yT2tj2Eg8lhAwlRE5E96Hsb0M1mPSE1dHGpt1QVwwVivXIAacF/G6mw== - -esbuild-netbsd-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.47.tgz#6388e785d7e7e4420cb01348d7483ab511b16aa8" - integrity sha512-Qjdjr+KQQVH5Q2Q1r6HBYswFTToPpss3gqCiSw2Fpq/ua8+eXSQyAMG+UvULPqXceOwpnPo4smyZyHdlkcPppQ== - -esbuild-openbsd-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.47.tgz#309af806db561aa886c445344d1aacab850dbdc5" - integrity sha512-QpgN8ofL7B9z8g5zZqJE+eFvD1LehRlxr25PBkjyyasakm4599iroUpaj96rdqRlO2ShuyqwJdr+oNqWwTUmQw== - -esbuild-sunos-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.47.tgz#3f19612dcdb89ba6c65283a7ff6e16f8afbf8aaa" - integrity sha512-uOeSgLUwukLioAJOiGYm3kNl+1wJjgJA8R671GYgcPgCx7QR73zfvYqXFFcIO93/nBdIbt5hd8RItqbbf3HtAQ== - -esbuild-windows-32@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.47.tgz#a92d279c8458d5dc319abcfeb30aa49e8f2e6f7f" - integrity sha512-H0fWsLTp2WBfKLBgwYT4OTfFly4Im/8B5f3ojDv1Kx//kiubVY0IQunP2Koc/fr/0wI7hj3IiBDbSrmKlrNgLQ== - -esbuild-windows-64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.47.tgz#2564c3fcf0c23d701edb71af8c52d3be4cec5f8a" - integrity sha512-/Pk5jIEH34T68r8PweKRi77W49KwanZ8X6lr3vDAtOlH5EumPE4pBHqkCUdELanvsT14yMXLQ/C/8XPi1pAtkQ== - -esbuild-windows-arm64@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.47.tgz#86d9db1a22d83360f726ac5fba41c2f625db6878" - integrity sha512-HFSW2lnp62fl86/qPQlqw6asIwCnEsEoNIL1h2uVMgakddf+vUuMcCbtUY1i8sst7KkgHrVKCJQB33YhhOweCQ== - -esbuild@0.14.47: - version "0.14.47" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.47.tgz#0d6415f6bd8eb9e73a58f7f9ae04c5276cda0e4d" - integrity sha512-wI4ZiIfFxpkuxB8ju4MHrGwGLyp1+awEHAHVpx6w7a+1pmYIq8T9FGEVVwFo0iFierDoMj++Xq69GXWYn2EiwA== - optionalDependencies: - esbuild-android-64 "0.14.47" - esbuild-android-arm64 "0.14.47" - esbuild-darwin-64 "0.14.47" - esbuild-darwin-arm64 "0.14.47" - esbuild-freebsd-64 "0.14.47" - esbuild-freebsd-arm64 "0.14.47" - esbuild-linux-32 "0.14.47" - esbuild-linux-64 "0.14.47" - esbuild-linux-arm "0.14.47" - esbuild-linux-arm64 "0.14.47" - esbuild-linux-mips64le "0.14.47" - esbuild-linux-ppc64le "0.14.47" - esbuild-linux-riscv64 "0.14.47" - esbuild-linux-s390x "0.14.47" - esbuild-netbsd-64 "0.14.47" - esbuild-openbsd-64 "0.14.47" - esbuild-sunos-64 "0.14.47" - esbuild-windows-32 "0.14.47" - esbuild-windows-64 "0.14.47" - esbuild-windows-arm64 "0.14.47" - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== - dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== - -eslint-visitor-keys@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826" - integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== - -esrecurse@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" - integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== - dependencies: - estraverse "^5.2.0" - -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -estraverse@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" - integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== - -event-stream@=3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" - integrity sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g== - dependencies: - duplexer "~0.1.1" - from "~0" - map-stream "~0.1.0" - pause-stream "0.0.11" - split "0.3" - stream-combiner "~0.0.4" - through "~2.3.1" - -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.11" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9" - integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew== - dependencies: - "@nodelib/fs.stat" "^2.0.2" - "@nodelib/fs.walk" "^1.2.3" - glob-parent "^5.1.2" - merge2 "^1.3.0" - micromatch "^4.0.4" - -fastq@^1.6.0: - version "1.13.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c" - integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw== - dependencies: - reusify "^1.0.4" - -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== - dependencies: - to-regex-range "^5.0.1" - -follow-redirects@^1.14.8: - version "1.15.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.1.tgz#0ca6a452306c9b276e4d3127483e29575e207ad5" - integrity sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA== - -fraction.js@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.2.0.tgz#448e5109a313a3527f5a3ab2119ec4cf0e0e2950" - integrity sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA== - -from@~0: - version "0.1.7" - resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" - integrity sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g== - -fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - -glob-parent@^5.1.2, glob-parent@~5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" - integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== - dependencies: - is-glob "^4.0.1" - -glob-parent@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" - integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== - dependencies: - is-glob "^4.0.3" - -globby@^11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" - integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== - dependencies: - array-union "^2.1.0" - dir-glob "^3.0.1" - fast-glob "^3.2.9" - ignore "^5.2.0" - merge2 "^1.4.1" - slash "^3.0.0" - -has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -ieee754@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -ignore@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a" - integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ== - -is-binary-path@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== - dependencies: - binary-extensions "^2.0.0" - -is-core-module@^2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69" - integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A== - dependencies: - has "^1.0.3" - -is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== - -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" - integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== - dependencies: - is-extglob "^2.1.1" - -is-number@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== - -js-sha3@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" - integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== - -lilconfig@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.5.tgz#19e57fd06ccc3848fd1891655b5a447092225b25" - integrity sha512-xaYmXZtTHPAw5m+xLN8ab9C+3a8YmV3asNSPOATITbtwrfbwaLJj8h66H1WMIpALCkqsIzK3h7oQ+PdX+LQ9Eg== - -lodash.castarray@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.castarray/-/lodash.castarray-4.4.0.tgz#c02513515e309daddd4c24c60cfddcf5976d9115" - integrity sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q== - -lodash.isplainobject@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" - integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== - -lodash.merge@^4.6.2: - version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" - integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -map-stream@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" - integrity sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g== - -merge2@^1.3.0, merge2@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^4.0.4: - version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== - dependencies: - braces "^3.0.2" - picomatch "^2.3.1" - -mini-svg-data-uri@^1.2.3: - version "1.4.4" - resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.4.4.tgz#8ab0aabcdf8c29ad5693ca595af19dd2ead09939" - integrity sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg== - -minimist@^1.2.6: - version "1.2.6" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" - integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -nanoid@^3.3.4: - version "3.3.4" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" - integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== - -node-cleanup@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/node-cleanup/-/node-cleanup-2.1.2.tgz#7ac19abd297e09a7f72a71545d951b517e4dde2c" - integrity sha512-qN8v/s2PAJwGUtr1/hYTpNKlD6Y9rc4p8KSmJXyGdYGZsDGKXrGThikLFP9OCHFeLeEpQzPwiAtdIvBLqm//Hw== - -node-releases@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.5.tgz#280ed5bc3eba0d96ce44897d8aee478bfb3d9666" - integrity sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q== - -normalize-path@^3.0.0, normalize-path@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-range@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" - integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== - -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - -path-key@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" - integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== - -path-parse@^1.0.7: - version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" - integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== - -path-type@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== - -pause-stream@0.0.11: - version "0.0.11" - resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" - integrity sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A== - dependencies: - through "~2.3" - -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== - -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" - integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== - -pify@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -postcss-import@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-14.1.0.tgz#a7333ffe32f0b8795303ee9e40215dac922781f0" - integrity sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw== - dependencies: - postcss-value-parser "^4.0.0" - read-cache "^1.0.0" - resolve "^1.1.7" - -postcss-js@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-4.0.0.tgz#31db79889531b80dc7bc9b0ad283e418dce0ac00" - integrity sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ== - dependencies: - camelcase-css "^2.0.1" - -postcss-load-config@^3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" - integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== - dependencies: - lilconfig "^2.0.5" - yaml "^1.10.2" - -postcss-nested@5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-5.0.6.tgz#466343f7fc8d3d46af3e7dba3fcd47d052a945bc" - integrity sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA== - dependencies: - postcss-selector-parser "^6.0.6" - -postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6: - version "6.0.10" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d" - integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w== - dependencies: - cssesc "^3.0.0" - util-deprecate "^1.0.2" - -postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" - integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== - -postcss@8.4.14, postcss@^8.4.14: - version "8.4.14" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" - integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== - dependencies: - nanoid "^3.3.4" - picocolors "^1.0.0" - source-map-js "^1.0.2" - -prettier@2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" - integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== - -ps-tree@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.2.0.tgz#5e7425b89508736cdd4f2224d028f7bb3f722ebd" - integrity sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA== - dependencies: - event-stream "=3.3.4" - -queue-microtask@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" - integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== - -quick-lru@^5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" - integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== - -read-cache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" - integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== - dependencies: - pify "^2.3.0" - -readdirp@~3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" - integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== - dependencies: - picomatch "^2.2.1" - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - -resolve@^1.1.7, resolve@^1.22.0: - version "1.22.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== - dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" - -reusify@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== - -run-parallel@^1.1.9: - version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" - integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== - dependencies: - queue-microtask "^1.2.2" - -semver@^7.3.7: - version "7.3.7" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" - integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== - dependencies: - lru-cache "^6.0.0" - -shebang-command@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" - integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== - dependencies: - shebang-regex "^3.0.0" - -shebang-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" - integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== - -slash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" - integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== - -source-map-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" - integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== - -split@0.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" - integrity sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA== - dependencies: - through "2" - -stream-combiner@~0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" - integrity sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw== - dependencies: - duplexer "~0.1.1" - -string-argv@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.1.2.tgz#c5b7bc03fb2b11983ba3a72333dd0559e77e4738" - integrity sha512-mBqPGEOMNJKXRo7z0keX0wlAhbBAjilUdPW13nN0PecVryZxdHIeM7TqbsSUA7VYuS00HGC6mojP7DlQzfa9ZA== - -strip-ansi@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -supports-preserve-symlinks-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" - integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== - -tailwindcss@3.1.4: - version "3.1.4" - resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.1.4.tgz#64b09059805505902139fa805d97046080bd90b9" - integrity sha512-NrxbFV4tYsga/hpWbRyUfIaBrNMXDxx5BsHgBS4v5tlyjf+sDsgBg5m9OxjrXIqAS/uR9kicxLKP+bEHI7BSeQ== - dependencies: - arg "^5.0.2" - chokidar "^3.5.3" - color-name "^1.1.4" - detective "^5.2.1" - didyoumean "^1.2.2" - dlv "^1.1.3" - fast-glob "^3.2.11" - glob-parent "^6.0.2" - is-glob "^4.0.3" - lilconfig "^2.0.5" - normalize-path "^3.0.0" - object-hash "^3.0.0" - picocolors "^1.0.0" - postcss "^8.4.14" - postcss-import "^14.1.0" - postcss-js "^4.0.0" - postcss-load-config "^3.1.4" - postcss-nested "5.0.6" - postcss-selector-parser "^6.0.10" - postcss-value-parser "^4.2.0" - quick-lru "^5.1.1" - resolve "^1.22.0" - -through@2, through@~2.3, through@~2.3.1: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== - -to-regex-range@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== - dependencies: - is-number "^7.0.0" - -tsc-watch@5.0.3: - version "5.0.3" - resolved "https://registry.yarnpkg.com/tsc-watch/-/tsc-watch-5.0.3.tgz#4d0b2bda8f2677c8f9ed36e001c1a86c31701145" - integrity sha512-Hz2UawwELMSLOf0xHvAFc7anLeMw62cMVXr1flYmhRuOhOyOljwmb1l/O60ZwRyy1k7N1iC1mrn1QYM2zITfuw== - dependencies: - cross-spawn "^7.0.3" - node-cleanup "^2.1.2" - ps-tree "^1.2.0" - string-argv "^0.1.1" - strip-ansi "^6.0.0" - -tslib@^1.8.1, tslib@^1.9.3: - version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" - -tweetnacl@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" - integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== - -typescript-memoize@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.0.tgz#4a8f512d06fc995167c703a3592219901db8bc79" - integrity sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg== - -typescript@4.7.4: - version "4.7.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.7.4.tgz#1a88596d1cf47d59507a1bcdfb5b9dfe4d488235" - integrity sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ== - -update-browserslist-db@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz#dbfc5a789caa26b1db8990796c2c8ebbce304824" - integrity sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA== - dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" - -util-deprecate@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== - -which@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - -xtend@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yaml@^1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" - integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== - -yarn@^1.22.18: - version "1.22.19" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.19.tgz#4ba7fc5c6e704fce2066ecbfb0b0d8976fe62447" - integrity sha512-/0V5q0WbslqnwP91tirOvldvYISzaqhClxzyUKXYxs07yUILIs5jx/k6CFe8bvKSkds5w+eiOqta39Wk3WxdcQ== diff --git a/ecosystem/python/sdk/aptos_sdk/client.py b/ecosystem/python/sdk/aptos_sdk/client.py index f7be450154298..b464cb0a7b9c6 100644 --- a/ecosystem/python/sdk/aptos_sdk/client.py +++ b/ecosystem/python/sdk/aptos_sdk/client.py @@ -123,8 +123,8 @@ def submit_transaction(self, sender: Account, payload: Dict[str, Any]) -> str: txn_request = { "sender": f"{sender.address()}", "sequence_number": str(self.account_sequence_number(sender.address())), - "max_gas_amount": "2000", - "gas_unit_price": "1", + "max_gas_amount": "10000", + "gas_unit_price": "100", "expiration_timestamp_secs": str(int(time.time()) + 600), "payload": payload, } @@ -160,11 +160,11 @@ def transaction_pending(self, txn_hash: str) -> bool: return response.json()["type"] == "pending_transaction" def wait_for_transaction(self, txn_hash: str) -> None: - """Waits up to 10 seconds for a transaction to move past pending state.""" + """Waits up to 20 seconds for a transaction to move past pending state.""" count = 0 while self.transaction_pending(txn_hash): - assert count < 10, f"transaction {txn_hash} timed out" + assert count < 20, f"transaction {txn_hash} timed out" time.sleep(1) count += 1 response = self.client.get(f"{self.base_url}/transactions/by_hash/{txn_hash}") @@ -187,8 +187,8 @@ def create_multi_agent_bcs_transaction( sender.address(), self.account_sequence_number(sender.address()), payload, - 2000, - 1, + 100_000, + 100, int(time.time()) + 600, self.chain_id, ), @@ -223,8 +223,8 @@ def create_single_signer_bcs_transaction( sender.address(), self.account_sequence_number(sender.address()), payload, - 2000, - 1, + 100_000, + 100, int(time.time()) + 600, self.chain_id, ) diff --git a/ecosystem/python/sdk/examples/simple-nft.py b/ecosystem/python/sdk/examples/simple-nft.py index b3ffcfa986abc..21f9ae52642ef 100644 --- a/ecosystem/python/sdk/examples/simple-nft.py +++ b/ecosystem/python/sdk/examples/simple-nft.py @@ -26,8 +26,8 @@ print(f"Bob: {bob.address()}") #:!:>section_3 - faucet_client.fund_account(alice.address(), 20_000) - faucet_client.fund_account(bob.address(), 20_000) # <:!:section_3 + faucet_client.fund_account(alice.address(), 100_000_000) + faucet_client.fund_account(bob.address(), 100_000_000) # <:!:section_3 print("\n=== Initial Coin Balances ===") print(f"Alice: {rest_client.account_balance(alice.address())}") diff --git a/ecosystem/python/sdk/examples/transfer-coin.py b/ecosystem/python/sdk/examples/transfer-coin.py index 09b95ad76e7a5..4885680a36fc6 100644 --- a/ecosystem/python/sdk/examples/transfer-coin.py +++ b/ecosystem/python/sdk/examples/transfer-coin.py @@ -20,7 +20,7 @@ print(f"Bob: {bob.address()}") #:!:>section_3 - faucet_client.fund_account(alice.address(), 20_000) + faucet_client.fund_account(alice.address(), 100_000_000) faucet_client.fund_account(bob.address(), 0) # <:!:section_3 print("\n=== Initial Balances ===") diff --git a/ecosystem/sf-indexer/aptos-sf-indexer/README.md b/ecosystem/sf-indexer/aptos-sf-indexer/README.md index 35bedaa102e25..b3c7537eafe45 100644 --- a/ecosystem/sf-indexer/aptos-sf-indexer/README.md +++ b/ecosystem/sf-indexer/aptos-sf-indexer/README.md @@ -1,3 +1,4 @@ +> :warning: DO* NOT USE THIS, IT'S NOT READY. Go to crates/indexer for a working indexer # Aptos Indexer > Indexes Aptos Blockchain via Substreams connected to Aptos Firehose (https://github.com/streamingfast/firehose-aptos). diff --git a/ecosystem/sf-indexer/aptos-sf-indexer/src/indexer/substream_processor.rs b/ecosystem/sf-indexer/aptos-sf-indexer/src/indexer/substream_processor.rs index adbc061485721..4b9deafc8363d 100644 --- a/ecosystem/sf-indexer/aptos-sf-indexer/src/indexer/substream_processor.rs +++ b/ecosystem/sf-indexer/aptos-sf-indexer/src/indexer/substream_processor.rs @@ -121,9 +121,9 @@ pub trait SubstreamProcessor: Send + Sync + Debug { /// Actually performs the write for a `IndexerState` changeset fn apply_processor_status(&self, psm: &IndexerState) { - let conn = get_conn(self.connection_pool()); + let mut conn = get_conn(self.connection_pool()); execute_with_better_error( - &conn, + &mut conn, diesel::insert_into(indexer_states::table) .values(psm) .on_conflict(( @@ -141,7 +141,7 @@ pub trait SubstreamProcessor: Send + Sync + Debug { /// of the check. Make sure to implement this function and call is_chain_id_verified to read the flag. fn check_or_update_chain_id(&mut self, input_chain_id: i64) { info!("Checking if chain id is correct"); - let conn = self + let mut conn = self .connection_pool() .get() .expect("DB connection is not available to query chain id"); @@ -164,7 +164,7 @@ pub trait SubstreamProcessor: Send + Sync + Debug { "Adding chain id to db, continue to index", ); execute_with_better_error( - &conn, + &mut conn, diesel::insert_into(ledger_infos::table).values(LedgerInfo { chain_id: input_chain_id, }), diff --git a/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/block_output_processor.rs b/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/block_output_processor.rs index bfc1b1c6b4552..7ef58350a2949 100644 --- a/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/block_output_processor.rs +++ b/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/block_output_processor.rs @@ -59,7 +59,7 @@ impl Debug for BlockOutputSubstreamProcessor { /// This will insert all events within all transactions within a certain block fn handle_block( - conn: &PgPoolConnection, + conn: &mut PgPoolConnection, substream_name: &'static str, block_height: u64, txns: Vec, @@ -85,7 +85,7 @@ fn handle_block( } /// This will insert all transactions within a certain block -fn insert_transactions(conn: &PgPoolConnection, txns: &[TransactionModel]) { +fn insert_transactions(conn: &mut PgPoolConnection, txns: &[TransactionModel]) { use schema::transactions::dsl::*; let chunks = get_chunks(txns.len(), TransactionModel::field_count()); for (start_ind, end_ind) in chunks { @@ -117,7 +117,7 @@ fn insert_transactions(conn: &PgPoolConnection, txns: &[TransactionModel]) { } /// This will insert all user transactions within a block -fn insert_user_transactions_w_sigs(conn: &PgPoolConnection, txn_details: &[TransactionDetail]) { +fn insert_user_transactions_w_sigs(conn: &mut PgPoolConnection, txn_details: &[TransactionDetail]) { use schema::{signatures::dsl as sig_schema, user_transactions::dsl as ut_schema}; let mut all_signatures = vec![]; let mut all_user_transactions = vec![]; @@ -180,7 +180,10 @@ fn insert_user_transactions_w_sigs(conn: &PgPoolConnection, txn_details: &[Trans } /// This will insert all block metadata transactions within a block -fn insert_block_metadata_transactions(conn: &PgPoolConnection, txn_details: &[TransactionDetail]) { +fn insert_block_metadata_transactions( + conn: &mut PgPoolConnection, + txn_details: &[TransactionDetail], +) { use schema::block_metadata_transactions::dsl::*; let bmt = txn_details @@ -216,7 +219,7 @@ fn insert_block_metadata_transactions(conn: &PgPoolConnection, txn_details: &[Tr } /// This will insert all events within each transaction within a block -fn insert_events(conn: &PgPoolConnection, ev: &Vec) { +fn insert_events(conn: &mut PgPoolConnection, ev: &Vec) { use schema::events::dsl::*; let chunks = get_chunks(ev.len(), EventModel::field_count()); @@ -243,7 +246,7 @@ fn insert_events(conn: &PgPoolConnection, ev: &Vec) { } /// This will insert all write set changes within each transaction within a block -fn insert_write_set_changes(conn: &PgPoolConnection, wscs: &Vec) { +fn insert_write_set_changes(conn: &mut PgPoolConnection, wscs: &Vec) { use schema::write_set_changes::dsl::*; let chunks = get_chunks(wscs.len(), WriteSetChangeModel::field_count()); @@ -267,7 +270,7 @@ fn insert_write_set_changes(conn: &PgPoolConnection, wscs: &Vec, Vec) = wsc_details diff --git a/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/tokens_processor.rs b/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/tokens_processor.rs index 55733a0fc7a56..0965216adbe5a 100644 --- a/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/tokens_processor.rs +++ b/ecosystem/sf-indexer/aptos-sf-indexer/src/substream_processors/tokens_processor.rs @@ -47,7 +47,7 @@ impl Debug for TokensSubstreamProcessor { /// This function handles tokens in a block fn handle_tokens_in_block( - conn: &PgPoolConnection, + conn: &mut PgPoolConnection, substream_name: &'static str, block_height: u64, tokens: Vec, @@ -67,7 +67,7 @@ fn handle_tokens_in_block( }) } -fn insert_tokens(conn: &PgPoolConnection, tokens_to_insert: &[Token]) { +fn insert_tokens(conn: &mut PgPoolConnection, tokens_to_insert: &[Token]) { use schema::tokens::dsl::*; let chunks = get_chunks(tokens_to_insert.len(), Token::field_count()); @@ -89,7 +89,7 @@ fn insert_tokens(conn: &PgPoolConnection, tokens_to_insert: &[Token]) { } } -fn insert_token_datas(conn: &PgPoolConnection, token_datas_to_insert: &[TokenData]) { +fn insert_token_datas(conn: &mut PgPoolConnection, token_datas_to_insert: &[TokenData]) { use schema::token_datas::dsl::*; let chunks = get_chunks(token_datas_to_insert.len(), TokenData::field_count()); @@ -105,7 +105,10 @@ fn insert_token_datas(conn: &PgPoolConnection, token_datas_to_insert: &[TokenDat } } -fn insert_token_ownerships(conn: &PgPoolConnection, token_ownerships_to_insert: &[TokenOwnership]) { +fn insert_token_ownerships( + conn: &mut PgPoolConnection, + token_ownerships_to_insert: &[TokenOwnership], +) { use schema::token_ownerships::dsl::*; let chunks = get_chunks( @@ -131,7 +134,10 @@ fn insert_token_ownerships(conn: &PgPoolConnection, token_ownerships_to_insert: } } -fn insert_collection_datas(conn: &PgPoolConnection, collection_datas_to_insert: &[CollectionData]) { +fn insert_collection_datas( + conn: &mut PgPoolConnection, + collection_datas_to_insert: &[CollectionData], +) { use schema::collection_datas::dsl::*; let chunks = get_chunks( diff --git a/ecosystem/sf-indexer/aptos-substreams/README.md b/ecosystem/sf-indexer/aptos-substreams/README.md index 824b228fa7276..880653a4148e4 100644 --- a/ecosystem/sf-indexer/aptos-substreams/README.md +++ b/ecosystem/sf-indexer/aptos-substreams/README.md @@ -1,6 +1,4 @@ -# StreamingFast Substreams Aptos Statistics -[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) - +> :warning: DO* NOT USE THIS, IT'S NOT READY. Go to crates/indexer for a working indexer ## Quick Start (Locally) Use this quickstart guide to set up your environment to use Substreams locally. diff --git a/ecosystem/sf-indexer/firehose-stream/README.md b/ecosystem/sf-indexer/firehose-stream/README.md index 8ef6c70f46449..e7ddc27190a47 100644 --- a/ecosystem/sf-indexer/firehose-stream/README.md +++ b/ecosystem/sf-indexer/firehose-stream/README.md @@ -1,3 +1,4 @@ +> :warning: DO* NOT USE THIS, IT'S NOT READY. Go to crates/indexer for a working indexer # API This module provides a StreamingFast Firehose Streamer for pushing protobuf data from the Aptos Blockchain diff --git a/ecosystem/typescript/sdk/CHANGELOG.md b/ecosystem/typescript/sdk/CHANGELOG.md index ce4fabb3fab99..1edff3747f81a 100644 --- a/ecosystem/typescript/sdk/CHANGELOG.md +++ b/ecosystem/typescript/sdk/CHANGELOG.md @@ -5,7 +5,14 @@ All notable changes to the Aptos Node SDK will be captured in this file. This ch **Note:** The Aptos TS SDK does not follow semantic version while we are in active development. Instead, breaking changes will be announced with each devnet cut. Once we launch our mainnet, the SDK will follow semantic versioning closely. ## Unreleased -N/A +- **[Breaking Changes]** Following the deprecation notice in the release notes of 1.3.13, the following breaking changes have landed in this release. Please see the notes from last release for information on the new endpoints you must migrate to: + - The `getEventsByEventKey` function has been removed. + - The `key` field in the `Event` struct has been removed. + +## 1.3.14 (2022-09-20) + +- Enable SDK axios client to carry cookies for both the browser and node environments. +- Added new functions `getBlockByHeight` and `getBlockByVersion`. ## 1.3.13 (2022-09-15) diff --git a/ecosystem/typescript/sdk/README.md b/ecosystem/typescript/sdk/README.md index 5e90d3ec555b9..14258085f9356 100644 --- a/ecosystem/typescript/sdk/README.md +++ b/ecosystem/typescript/sdk/README.md @@ -5,12 +5,21 @@ [![NPM Package Downloads][npm-image-downloads]][npm-url] ## Quickstart + The public SDK downloaded from [npmjs](https://www.npmjs.com/package/aptos) is compatible with the [Aptos devnet](https://fullnode.devnet.aptoslabs.com). To start building, run below command in your project directory: ```bash yarn add aptos ``` +or use the browser bundle + +``` +