From 807838a54fccdad147f771950dac5c7e8b03695d Mon Sep 17 00:00:00 2001 From: ascjones Date: Wed, 27 Apr 2022 16:07:49 +0100 Subject: [PATCH 01/10] Update metadata, derive Deserialize for runtime error types --- Cargo.lock | 297 +++++++++--------- Cargo.toml | 2 +- src/cmd/extrinsics/instantiate.rs | 8 +- .../runtime_api/contracts_runtime.scale | Bin 46472 -> 46766 bytes src/cmd/extrinsics/runtime_api/mod.rs | 7 +- 5 files changed, 160 insertions(+), 154 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7952f48b..61e86bec 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -33,7 +33,7 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.6", "once_cell", "version_check", ] @@ -152,9 +152,9 @@ dependencies = [ [[package]] name = "async-global-executor" -version = "2.0.3" +version = "2.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c026b7e44f1316b567ee750fea85103f87fcb80792b860e979f221259796ca0a" +checksum = "c290043c9a95b05d45e952fb6383c67bcb61471f60cfa21e890dba6654234f43" dependencies = [ "async-channel", "async-executor", @@ -240,9 +240,9 @@ checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9" [[package]] name = "async-trait" -version = "0.1.52" +version = "0.1.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3" +checksum = "ed6aa3524a2dfcf9fe180c51eae2b58738348d819517ceadf95789c51fff7600" dependencies = [ "proc-macro2", "quote", @@ -274,9 +274,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.64" +version = "0.3.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e121dee8023ce33ab248d9ce1493df03c3b38a659b240096fcbd7048ff9c31f" +checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" dependencies = [ "addr2line", "cc", @@ -676,9 +676,9 @@ checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" [[package]] name = "cpufeatures" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469" +checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" dependencies = [ "libc", ] @@ -740,9 +740,9 @@ dependencies = [ [[package]] name = "ctor" -version = "0.1.21" +version = "0.1.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccc0a48a9b826acdf4028595adc9db92caea352f7af011a3034acd172a52a0aa" +checksum = "f877be4f7c9f246b183111634f75baa039715e3f46ce860677d3b19a69fb229c" dependencies = [ "quote", "syn", @@ -782,9 +782,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d720b8683f8dd83c65155f0530560cba68cd2bf395f6513a483caee57ff7f4" +checksum = "f1a5d2e8b5a94b2261efb20e99a01255b9c5293797d69bbf04600567b2f9b8d7" dependencies = [ "darling_core", "darling_macro", @@ -792,9 +792,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a340f241d2ceed1deb47ae36c4144b2707ec7dd0b649f894cb39bb595986324" +checksum = "8f1c7d56716be82d9c6adb967cfe700955179ea88806e898483dad6987330a54" dependencies = [ "fnv", "ident_case", @@ -806,9 +806,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.13.1" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c41b3b7352feb3211a0d743dc5700a4e3b60f51bd2b368892d1e0f9a95f44b" +checksum = "64dd7e5a75a00cb6799ae9fbbfc3bba0134def6579a9e27564e72c839c837bed" dependencies = [ "darling_core", "quote", @@ -919,9 +919,9 @@ checksum = "21e50f3adc76d6a43f5ed73b698a87d0760ca74617f60f7c3b879003536fdd28" [[package]] name = "ed25519" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eed12bbf7b5312f8da1c2722bc06d8c6b12c2d86a7fb35a194c7f3e6fc2bbe39" +checksum = "3d5c4b5e5959dc2c2b89918d8e2cc40fcdd623cef026ed09d2f0ee05199dc8e4" dependencies = [ "signature", ] @@ -1195,9 +1195,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d39cd93900197114fa1fcb7ae84ca742095eed9442088988ae74fa744e930e77" +checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad" dependencies = [ "cfg-if", "libc", @@ -1218,9 +1218,9 @@ checksum = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb" [[package]] name = "gloo-timers" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d12a7f4e95cfe710f1d624fb1210b7d961a5fb05c4fd942f4feab06e61f590e" +checksum = "5fb7d06c1c8cc2a29bee7ec961009a0b2caa0793ee4900c2ffb348734ba1c8f9" dependencies = [ "futures-channel", "futures-core", @@ -1318,7 +1318,7 @@ checksum = "31f4c6746584866f0feabcc69893c5b51beef3831656a968ed7ae254cdc4fd03" dependencies = [ "bytes", "fnv", - "itoa", + "itoa 1.0.1", ] [[package]] @@ -1334,9 +1334,9 @@ dependencies = [ [[package]] name = "httparse" -version = "1.6.0" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9100414882e15fb7feccb4897e5f0ff0ff1ca7d1a86a23208ada4d7a18e6c6c4" +checksum = "496ce29bb5a52785b44e0f7ca2847ae0bb839c9bd28f69acac9b99d461c0c04c" [[package]] name = "httpdate" @@ -1352,9 +1352,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.17" +version = "0.14.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043f0e083e9901b6cc658a77d1eb86f4fc650bbb977a4337dd63192826aa85dd" +checksum = "b26ae0a80afebe130861d90abf98e3814a4f28a4c6ffeb5ab8ebb2be311e0ef2" dependencies = [ "bytes", "futures-channel", @@ -1364,7 +1364,7 @@ dependencies = [ "http-body", "httparse", "httpdate", - "itoa", + "itoa 1.0.1", "pin-project-lite", "tokio", "tower-service", @@ -1651,6 +1651,12 @@ dependencies = [ "either", ] +[[package]] +name = "itoa" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b71991ff56294aa922b450139ee08b3bfc70982c6b2c7562771375cf73542dd4" + [[package]] name = "itoa" version = "1.0.1" @@ -1665,21 +1671,21 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5" [[package]] name = "js-sys" -version = "0.3.56" +version = "0.3.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a38fc24e30fd564ce974c02bf1d337caddff65be6cc4735a1f7eab22a7440f04" +checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397" dependencies = [ "wasm-bindgen", ] [[package]] name = "jsonrpsee" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d0b8cc1959f8c05256ace093b2317482da9127f1d9227564f47e7e6bf9bda8" +checksum = "91dc760c341fa81173f9a434931aaf32baad5552b0230cc6c93e8fb7eaad4c19" dependencies = [ - "jsonrpsee-client-transport 0.9.0", - "jsonrpsee-core 0.9.0", + "jsonrpsee-client-transport 0.10.1", + "jsonrpsee-core 0.10.1", ] [[package]] @@ -1695,21 +1701,21 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa370c2c717d798c3c0a315ae3f0a707a388c6963c11f9da7dbbe1d3f7392f5f" +checksum = "765f7a36d5087f74e3b3b47805c2188fef8eb54afcb587b078d9f8ebfe9c7220" dependencies = [ "futures", "http", - "jsonrpsee-core 0.9.0", - "jsonrpsee-types 0.9.0", + "jsonrpsee-core 0.10.1", + "jsonrpsee-types 0.10.1", "pin-project", "rustls-native-certs", "soketto", "thiserror", "tokio", "tokio-rustls", - "tokio-util 0.6.9", + "tokio-util", "tracing", "webpki-roots", ] @@ -1730,16 +1736,16 @@ dependencies = [ "thiserror", "tokio", "tokio-rustls", - "tokio-util 0.7.1", + "tokio-util", "tracing", "webpki-roots", ] [[package]] name = "jsonrpsee-core" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22abc3274b265dcefe2e26c4beecf9fda4fffa48cf94930443a6c73678f020d5" +checksum = "82ef77ecd20c2254d54f5da8c0738eacca61e6b6511268a8f2753e3148c6c706" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -1748,7 +1754,7 @@ dependencies = [ "futures-channel", "futures-util", "hyper", - "jsonrpsee-types 0.9.0", + "jsonrpsee-types 0.10.1", "rustc-hash", "serde", "serde_json", @@ -1782,9 +1788,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4c45d2e2aa1db4c7d7d7dbaabc10a5b5258d99cd9d42fbfd5260b76f80c324" +checksum = "38b6aa52f322cbf20c762407629b8300f39bcc0cf0619840d9252a2f65fd2dd9" dependencies = [ "anyhow", "beef", @@ -1842,9 +1848,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.121" +version = "0.2.124" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efaa7b300f3b5fe8eb6bf21ce3895e1751d9665086af2d64b42f19701015ff4f" +checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50" [[package]] name = "libsecp256k1" @@ -1896,10 +1902,11 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.6" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" dependencies = [ + "autocfg", "scopeguard", ] @@ -1971,19 +1978,18 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" +checksum = "d2b29bd4bc3f33391105ebee3589c19197c4271e3e5a9ec9bfe8127eeff8f082" dependencies = [ "adler", - "autocfg", ] [[package]] name = "mio" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ba42135c6a5917b9db9cd7b293e5409e1c6b041e6f9825e92e55a894c63b6f8" +checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9" dependencies = [ "libc", "log", @@ -2057,6 +2063,16 @@ dependencies = [ "num-traits", ] +[[package]] +name = "num-format" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bafe4179722c2894288ee77a9f044f02811c86af699344c498b0840c698a2465" +dependencies = [ + "arrayvec 0.4.12", + "itoa 0.4.8", +] + [[package]] name = "num-integer" version = "0.1.44" @@ -2100,9 +2116,9 @@ dependencies = [ [[package]] name = "object" -version = "0.27.1" +version = "0.28.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67ac1d3f9a1d3616fd9a60c8d74296f22406a238b6a72f5cc1e6f314df4ffbf9" +checksum = "40bec70ba014595f99f7aa110b84331ffe1ee9aece7fe6f387cc7e3ecda4d456" dependencies = [ "memchr", ] @@ -2238,9 +2254,9 @@ dependencies = [ [[package]] name = "parking_lot_core" -version = "0.9.1" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954" +checksum = "995f667a6c822200b0433ac218e05582f0e2efa1b922a3fd2fbaadc5f87bab37" dependencies = [ "cfg-if", "libc", @@ -2251,9 +2267,9 @@ dependencies = [ [[package]] name = "paste" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0744126afe1a6dd7f394cb50a716dbe086cb06e255e53d8d0185d82828358fb5" +checksum = "0c520e05135d6e763148b6426a837e239041653ba7becd2e538c076c738025fc" [[package]] name = "pbkdf2" @@ -2301,9 +2317,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" [[package]] name = "pin-utils" @@ -2436,18 +2452,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" dependencies = [ "unicode-xid", ] [[package]] name = "quote" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" dependencies = [ "proc-macro2", ] @@ -2518,7 +2534,7 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" dependencies = [ - "getrandom 0.2.5", + "getrandom 0.2.6", ] [[package]] @@ -2541,27 +2557,27 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8380fe0152551244f0747b1bf41737e0f8a74f97a14ccefd1148187271634f3c" +checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42" dependencies = [ "bitflags", ] [[package]] name = "ref-cast" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300f2a835d808734ee295d45007adacb9ebb29dd3ae2424acfa17930cae541da" +checksum = "685d58625b6c2b83e4cc88a27c4bf65adb7b6b16dbdc413e515c9405b47432ab" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c38e3aecd2b21cb3959637b883bb3714bc7e43f0268b9a29d3743ee3e55cdd2" +checksum = "a043824e29c94169374ac5183ac0ed43f5724dc4556b19568007486bd840fa1f" dependencies = [ "proc-macro2", "quote", @@ -2665,9 +2681,9 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca9ebdfa27d3fc180e42879037b5338ab1c040c06affd00d8338598e7800943" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" dependencies = [ "openssl-probe", "rustls-pemfile", @@ -2677,9 +2693,9 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "0.2.1" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eebeaeb360c87bfb72e84abdb3447159c0eaececf1bef2aecd65a8be949d1c9" +checksum = "e7522c9de787ff061458fe9a829dc790a3f5b22dc571694fc5883f448b94d9a9" dependencies = [ "base64", ] @@ -2878,7 +2894,7 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95" dependencies = [ - "itoa", + "itoa 1.0.1", "ryu", "serde", ] @@ -2959,9 +2975,9 @@ checksum = "f054c6c1a6e95179d6f23ed974060dcefb2d9388bb7256900badad682c499de4" [[package]] name = "slab" -version = "0.4.5" +version = "0.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5" +checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32" [[package]] name = "smallvec" @@ -3321,11 +3337,12 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "ss58-registry" -version = "1.15.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f9799e6d412271cb2414597581128b03f3285f260ea49f5363d07df6a332b3e" +checksum = "7b84a70894df7a73666e0694f44b41a9571625e9546fb58a0818a565d2c7e084" dependencies = [ "Inflector", + "num-format", "proc-macro2", "quote", "serde", @@ -3376,8 +3393,7 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "subxt" version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc99c89f8e581c6e8b3e6923e66512041d908180efee7cb026b2ccd5f0334218" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#528228f5be20d73e07e1a23a095b62af244c5736" dependencies = [ "async-trait", "bitvec", @@ -3386,7 +3402,7 @@ dependencies = [ "frame-metadata", "futures", "hex", - "jsonrpsee 0.9.0", + "jsonrpsee 0.10.1", "log", "parity-scale-codec", "scale-info", @@ -3401,8 +3417,7 @@ dependencies = [ [[package]] name = "subxt-codegen" version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74283176932f38c579311f65f4138ff2817a3bd1040250055fbd1f3857027cbb" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#528228f5be20d73e07e1a23a095b62af244c5736" dependencies = [ "async-trait", "darling", @@ -3420,8 +3435,7 @@ dependencies = [ [[package]] name = "subxt-macro" version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb844cf84cdae36fc337810569cc39e3e022c17cc2ed11031c66d0e09b73726" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#528228f5be20d73e07e1a23a095b62af244c5736" dependencies = [ "async-trait", "darling", @@ -3439,9 +3453,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.89" +version = "1.0.91" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea297be220d52398dcc07ce15a209fce436d361735ac1db700cab3b6cdfb9f54" +checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d" dependencies = [ "proc-macro2", "quote", @@ -3560,9 +3574,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.5.1" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c1c1d5a42b6245520c249549ec267180beaffcc0615401ac8e31853d4b6d8d2" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" dependencies = [ "tinyvec_macros", ] @@ -3601,30 +3615,15 @@ dependencies = [ [[package]] name = "tokio-rustls" -version = "0.23.2" +version = "0.23.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a27d5f2b839802bd8267fa19b0530f5a08b9c08cd417976be2a65d130fe1c11b" +checksum = "4151fda0cf2798550ad0b34bcfc9b9dcc2a9d2471c895c68f3a8818e54f2389e" dependencies = [ "rustls", "tokio", "webpki", ] -[[package]] -name = "tokio-util" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.1" @@ -3656,9 +3655,9 @@ checksum = "360dfd1d6d30e05fda32ace2c8c70e9c0a9da713275777f5a4dbb8a1893930c6" [[package]] name = "tracing" -version = "0.1.32" +version = "0.1.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a1bdf54a7c28a2bbf701e1d2233f6c77f473486b94bee4f9678da5a148dca7f" +checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09" dependencies = [ "cfg-if", "pin-project-lite", @@ -3668,9 +3667,9 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b" +checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c" dependencies = [ "proc-macro2", "quote", @@ -3679,9 +3678,9 @@ dependencies = [ [[package]] name = "tracing-core" -version = "0.1.23" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa31669fa42c09c34d94d8165dd2012e8ff3c66aca50f3bb226b68f216f2706c" +checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f" dependencies = [ "lazy_static", "valuable", @@ -3689,9 +3688,9 @@ dependencies = [ [[package]] name = "tracing-log" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" dependencies = [ "lazy_static", "log", @@ -3789,9 +3788,9 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.7" +version = "0.3.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a01404663e3db436ed2746d9fefef640d868edae3cceb81c3b8d5732fda678f" +checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" [[package]] name = "unicode-normalization" @@ -3928,9 +3927,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25f1af7423d8588a3d840681122e72e6a24ddbcb3f0ec385cac0d12d24256c06" +checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -3938,9 +3937,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b21c0df030f5a177f3cba22e9bc4322695ec43e7257d865302900290bcdedca" +checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4" dependencies = [ "bumpalo", "lazy_static", @@ -3953,9 +3952,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.29" +version = "0.4.30" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2eb6ec270a31b1d3c7e266b999739109abce8b6c87e4b31fcfcd788b65267395" +checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2" dependencies = [ "cfg-if", "js-sys", @@ -3965,9 +3964,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f4203d69e40a52ee523b2529a773d5ffc1dc0071801c87b3d270b471b80ed01" +checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -3975,9 +3974,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa8a30d46208db204854cadbb5d4baf5fcf8071ba5bf48190c3e59937962ebc" +checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b" dependencies = [ "proc-macro2", "quote", @@ -3988,9 +3987,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.79" +version = "0.2.80" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d958d035c4438e28c70e4321a2911302f10135ce78a9c7834c0cab4123d06a2" +checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744" [[package]] name = "wasmi" @@ -4018,9 +4017,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.56" +version = "0.3.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c060b319f29dd25724f09a2ba1418f142f539b2be99fbf4d2d5a8f7330afb8eb" +checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283" dependencies = [ "js-sys", "wasm-bindgen", @@ -4038,9 +4037,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.22.2" +version = "0.22.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "552ceb903e957524388c4d3475725ff2c8b7960922063af6ce53c9a43da07449" +checksum = "44d8de8415c823c8abd270ad483c6feeac771fad964890779f9a8cb24fbbc1bf" dependencies = [ "webpki", ] @@ -4098,9 +4097,9 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "windows-sys" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6" +checksum = "5acdd78cb4ba54c0045ac14f62d8f94a03d10047904ae2a40afa1e99d8f70825" dependencies = [ "windows_aarch64_msvc", "windows_i686_gnu", @@ -4111,33 +4110,33 @@ dependencies = [ [[package]] name = "windows_aarch64_msvc" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5" +checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_i686_gnu" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615" +checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_msvc" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172" +checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_x86_64_gnu" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc" +checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_msvc" -version = "0.32.0" +version = "0.34.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316" +checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "wyz" diff --git a/Cargo.toml b/Cargo.toml index 871b1e44..a2b2d0bd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ scale-info = { version = "2.1.1", default-features = false, features = ["derive" sp-core = "6.0.0" sp-runtime = "6.0.0" pallet-contracts-primitives = "6.0.0" -subxt = "0.20.0" +subxt = { git = "https://github.com/paritytech/subxt", branch = "aj/specific-type-derive" } futures = "0.3.19" hex = "0.4.3" jsonrpsee = { version = "0.11.0", features = ["ws-client"] } diff --git a/src/cmd/extrinsics/instantiate.rs b/src/cmd/extrinsics/instantiate.rs index 4330b83e..be08c642 100644 --- a/src/cmd/extrinsics/instantiate.rs +++ b/src/cmd/extrinsics/instantiate.rs @@ -19,6 +19,7 @@ use super::{ display_events, parse_balance, runtime_api::api, + runtime_api::api::runtime_types::sp_runtime::DispatchError, wait_for_success_and_handle_error, Balance, CodeHash, @@ -44,6 +45,7 @@ use jsonrpsee::{ rpc_params, ws_client::WsClientBuilder, }; +use pallet_contracts_primitives::{ContractResult, InstantiateReturnValue}; use serde::Serialize; use sp_core::{ crypto::Ss58Codec, @@ -55,6 +57,7 @@ use std::{ Path, PathBuf, }, + result, }; use subxt::{ rpc::NumberOrHex, @@ -63,8 +66,7 @@ use subxt::{ DefaultConfig, }; -type ContractInstantiateResult = - pallet_contracts_primitives::ContractInstantiateResult; +type ContractInstantiateResult = ContractResult, DispatchError>, Balance>; #[derive(Debug, clap::Args)] pub struct InstantiateCommand { @@ -228,7 +230,7 @@ impl<'a> Exec<'a> { EXEC_RESULT_MAX_KEY_COL_WIDTH ); } - Err(err) => { + Err(ref err) => { name_value_println!( "Result", format!("Error: {:?}", err), diff --git a/src/cmd/extrinsics/runtime_api/contracts_runtime.scale b/src/cmd/extrinsics/runtime_api/contracts_runtime.scale index ea4c3d12132f81ea151d28eb195d8f982fdf2714..50bb0e04480029c489c484107a8f1455490a719b 100644 GIT binary patch delta 689 zcmZuv&1+LZ5YNPzqKF0$qNc$?ii-X4;~>RL#8N*%Yo(zU52oAqCV8)YZ&!9Vd2I<4 z>cJ>_koOO0trvwzdH5$(=%HW_0ek47haQUbq(={K)_QYcnc3g`elxo>+x(Gk?WMCJ zX?ApPCHs)U_hf=SKX?L0$#E4cYf&ccm6_{GQYvXzTE}v@3TvO}%iX z|N%6(>0qBlD zzPh+j033Nx8orJtkI>f?qOY*Vr$mjr$jnxrs0A)+k0e!uB;-^liBp7(*Wt`&N$P9_jAS?vh> zLkfkQvyuV4DQ0aFQ@g{}0=dvw6)0-DUsU$Vzj3;zv=O7jOm!tf65Lqr2Z6n=QF`Wy z6)8fDeC_$k;Ono)VKV-_bTV0do6dCg-6LMrUVLWxNj9)<@@%=#1s{@kpO(^@#f?jc zl45H$yMX^0+bT3}*kO)6C1;$Z@&#Xm+@Qruv-`+80v@6ozwRn}Yapbz@^wIFzEIRit!LbYW4Fx@n6vsNHpP?@2QDX6|L~#G63C zm6(XSaDIVb3!x}wenA&mbkRk?E&>+Jq6-m!gHCP>rL#G6-t(OIh4bxiy8S1esgYvm zes5(SG5BGgvR9+#U-|R-3%M@rz%KNl5Bo5HR98cse;-e17GKo`TR+89x^3&P_{!-$ zfHQf?QmH-TG`1Y*Tllj6*}kE-+Y@@KgD}vq?@j9U&MX}0nL^fVcAlLAM_+n-eQgbJ zd8L@YgT*S3Fj9eJ6+*74hPJ0h=yR7Vzln8G3hKfm4pjAE3x61`8H;$?kjGxAI3(^n=iRBcxk?FeoULy@7tMjZs9?d z+>OHMRkH`v*Aikmum|ZwYbNQQ S5U*6#KD6w?v!erO9l(E1K(b8$ diff --git a/src/cmd/extrinsics/runtime_api/mod.rs b/src/cmd/extrinsics/runtime_api/mod.rs index db48cff3..44709aba 100644 --- a/src/cmd/extrinsics/runtime_api/mod.rs +++ b/src/cmd/extrinsics/runtime_api/mod.rs @@ -15,6 +15,11 @@ // along with cargo-contract. If not, see . #[subxt::subxt( - runtime_metadata_path = "src/cmd/extrinsics/runtime_api/contracts_runtime.scale" + runtime_metadata_path = "src/cmd/extrinsics/runtime_api/contracts_runtime.scale", + derive_for_type(type = "sp_runtime::DispatchError", derive = "::serde::Deserialize"), + derive_for_type(type = "sp_runtime::ModuleError", derive = "::serde::Deserialize"), + derive_for_type(type = "sp_runtime::TokenError", derive = "::serde::Deserialize"), + derive_for_type(type = "sp_runtime::ArithmeticError", derive = "::serde::Deserialize"), + derive_for_type(type = "sp_runtime::TransactionalError", derive = "::serde::Deserialize"), )] pub mod api {} -- GitLab From 145bec79efcf857972ae9e8a6b876a500d3d9d01 Mon Sep 17 00:00:00 2001 From: ascjones Date: Wed, 27 Apr 2022 16:28:32 +0100 Subject: [PATCH 02/10] Add error details to dry run instantiate --- src/cmd/extrinsics/instantiate.rs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/cmd/extrinsics/instantiate.rs b/src/cmd/extrinsics/instantiate.rs index be08c642..5274659f 100644 --- a/src/cmd/extrinsics/instantiate.rs +++ b/src/cmd/extrinsics/instantiate.rs @@ -231,9 +231,20 @@ impl<'a> Exec<'a> { ); } Err(ref err) => { + let error = + if let Some(error_data) = subxt::HasModuleError::module_error_data(err) { + let api = self.subxt_api().await?; + let details = api + .client + .metadata() + .error(error_data.pallet_index, error_data.error_index())?; + format!("ModuleError: {}::{}: {:?}", details.pallet(), details.error(), details.description()) + } else { + format!("Error: {:?}", err) + }; name_value_println!( "Result", - format!("Error: {:?}", err), + error, EXEC_RESULT_MAX_KEY_COL_WIDTH ); } @@ -342,6 +353,7 @@ impl<'a> Exec<'a> { .request("contracts_instantiate", params) .await .context("contracts_instantiate RPC error")?; + Ok(result) } } -- GitLab From 98bf6114b93e6f25edcbcf809b6ca02b60b5e193 Mon Sep 17 00:00:00 2001 From: ascjones Date: Wed, 27 Apr 2022 16:38:53 +0100 Subject: [PATCH 03/10] Factor out common method for reporting dry-run error --- src/cmd/extrinsics/instantiate.rs | 30 ++++++++++----------------- src/cmd/extrinsics/mod.rs | 25 ++++++++++++++++++++++ src/cmd/extrinsics/runtime_api/mod.rs | 10 +++++++-- 3 files changed, 44 insertions(+), 21 deletions(-) diff --git a/src/cmd/extrinsics/instantiate.rs b/src/cmd/extrinsics/instantiate.rs index 5274659f..4aa0a4ef 100644 --- a/src/cmd/extrinsics/instantiate.rs +++ b/src/cmd/extrinsics/instantiate.rs @@ -16,10 +16,10 @@ use super::{ display_contract_exec_result, + display_dry_run_error_details, display_events, parse_balance, runtime_api::api, - runtime_api::api::runtime_types::sp_runtime::DispatchError, wait_for_success_and_handle_error, Balance, CodeHash, @@ -28,6 +28,7 @@ use super::{ ExtrinsicOpts, PairSigner, RuntimeApi, + RuntimeDispatchError, EXEC_RESULT_MAX_KEY_COL_WIDTH, }; use crate::{ @@ -45,7 +46,10 @@ use jsonrpsee::{ rpc_params, ws_client::WsClientBuilder, }; -use pallet_contracts_primitives::{ContractResult, InstantiateReturnValue}; +use pallet_contracts_primitives::{ + ContractResult, + InstantiateReturnValue, +}; use serde::Serialize; use sp_core::{ crypto::Ss58Codec, @@ -66,7 +70,10 @@ use subxt::{ DefaultConfig, }; -type ContractInstantiateResult = ContractResult, DispatchError>, Balance>; +type ContractInstantiateResult = ContractResult< + result::Result, RuntimeDispatchError>, + Balance, +>; #[derive(Debug, clap::Args)] pub struct InstantiateCommand { @@ -231,22 +238,7 @@ impl<'a> Exec<'a> { ); } Err(ref err) => { - let error = - if let Some(error_data) = subxt::HasModuleError::module_error_data(err) { - let api = self.subxt_api().await?; - let details = api - .client - .metadata() - .error(error_data.pallet_index, error_data.error_index())?; - format!("ModuleError: {}::{}: {:?}", details.pallet(), details.error(), details.description()) - } else { - format!("Error: {:?}", err) - }; - name_value_println!( - "Result", - error, - EXEC_RESULT_MAX_KEY_COL_WIDTH - ); + display_dry_run_error_details(&self.subxt_api().await?, err).await?; } } display_contract_exec_result(&result)?; diff --git a/src/cmd/extrinsics/mod.rs b/src/cmd/extrinsics/mod.rs index 9c4fbbeb..84fa5fe9 100644 --- a/src/cmd/extrinsics/mod.rs +++ b/src/cmd/extrinsics/mod.rs @@ -51,6 +51,7 @@ use sp_core::{ use subxt::{ Config, DefaultConfig, + HasModuleError as _, }; pub use self::transcode::ContractMessageTranscoder; @@ -229,3 +230,27 @@ where .await .map_err(Into::into) } + +/// Extract and display error details for an RPC `--dry-run` result. +async fn display_dry_run_error_details( + api: &RuntimeApi, + error: &RuntimeDispatchError, +) -> Result<()> { + let error = if let Some(error_data) = error.module_error_data() + { + let details = api + .client + .metadata() + .error(error_data.pallet_index, error_data.error_index())?; + format!( + "ModuleError: {}::{}: {:?}", + details.pallet(), + details.error(), + details.description() + ) + } else { + format!("Error: {:?}", error) + }; + name_value_println!("Result", error, EXEC_RESULT_MAX_KEY_COL_WIDTH); + Ok(()) +} diff --git a/src/cmd/extrinsics/runtime_api/mod.rs b/src/cmd/extrinsics/runtime_api/mod.rs index 44709aba..5268b8d3 100644 --- a/src/cmd/extrinsics/runtime_api/mod.rs +++ b/src/cmd/extrinsics/runtime_api/mod.rs @@ -19,7 +19,13 @@ derive_for_type(type = "sp_runtime::DispatchError", derive = "::serde::Deserialize"), derive_for_type(type = "sp_runtime::ModuleError", derive = "::serde::Deserialize"), derive_for_type(type = "sp_runtime::TokenError", derive = "::serde::Deserialize"), - derive_for_type(type = "sp_runtime::ArithmeticError", derive = "::serde::Deserialize"), - derive_for_type(type = "sp_runtime::TransactionalError", derive = "::serde::Deserialize"), + derive_for_type( + type = "sp_runtime::ArithmeticError", + derive = "::serde::Deserialize" + ), + derive_for_type( + type = "sp_runtime::TransactionalError", + derive = "::serde::Deserialize" + ) )] pub mod api {} -- GitLab From d75956d62a0a5ba55153c268dc9c8c357c78cc74 Mon Sep 17 00:00:00 2001 From: ascjones Date: Wed, 27 Apr 2022 17:03:41 +0100 Subject: [PATCH 04/10] Report module error details on upload dry-run --- src/cmd/extrinsics/mod.rs | 3 +-- src/cmd/extrinsics/upload.rs | 50 +++++++++++++++++++++++------------- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/src/cmd/extrinsics/mod.rs b/src/cmd/extrinsics/mod.rs index 84fa5fe9..7be8fb28 100644 --- a/src/cmd/extrinsics/mod.rs +++ b/src/cmd/extrinsics/mod.rs @@ -236,8 +236,7 @@ async fn display_dry_run_error_details( api: &RuntimeApi, error: &RuntimeDispatchError, ) -> Result<()> { - let error = if let Some(error_data) = error.module_error_data() - { + let error = if let Some(error_data) = error.module_error_data() { let details = api .client .metadata() diff --git a/src/cmd/extrinsics/upload.rs b/src/cmd/extrinsics/upload.rs index 29f09a5a..41823fe8 100644 --- a/src/cmd/extrinsics/upload.rs +++ b/src/cmd/extrinsics/upload.rs @@ -15,6 +15,7 @@ // along with cargo-contract. If not, see . use super::{ + display_dry_run_error_details, display_events, runtime_api::api, wait_for_success_and_handle_error, @@ -24,6 +25,7 @@ use super::{ ExtrinsicOpts, PairSigner, RuntimeApi, + RuntimeDispatchError, }; use crate::name_value_println; use anyhow::{ @@ -40,6 +42,7 @@ use sp_core::Bytes; use std::{ fmt::Debug, path::PathBuf, + result, }; use subxt::{ rpc::NumberOrHex, @@ -48,7 +51,7 @@ use subxt::{ DefaultConfig, }; -type CodeUploadResult = pallet_contracts_primitives::CodeUploadResult; +type CodeUploadResult = result::Result; type CodeUploadReturnValue = pallet_contracts_primitives::CodeUploadReturnValue; @@ -79,15 +82,30 @@ impl UploadCommand { .context(format!("Failed to read from {}", wasm_path.display()))?; async_std::task::block_on(async { - if self.extrinsic_opts.dry_run { - let result = self.upload_code_rpc(code, &signer).await?; - - name_value_println!("Code hash", format!("{:?}", result.code_hash)); - name_value_println!("Deposit", format!("{:?}", result.deposit)); + let url = self.extrinsic_opts.url.to_string(); + let api = ClientBuilder::new() + .set_url(&url) + .build() + .await? + .to_runtime_api::(); + if self.extrinsic_opts.dry_run { + match self.upload_code_rpc(code, &signer).await? { + Ok(result) => { + name_value_println!( + "Code hash", + format!("{:?}", result.code_hash) + ); + name_value_println!("Deposit", format!("{:?}", result.deposit)); + } + Err(err) => { + display_dry_run_error_details(&api, &err).await?; + } + } Ok(()) } else { - let code_stored = self.upload_code(code, &signer, &transcoder).await?; + let code_stored = + self.upload_code(&api, code, &signer, &transcoder).await?; name_value_println!("Code hash", format!("{:?}", code_stored.code_hash)); @@ -100,7 +118,7 @@ impl UploadCommand { &self, code: Vec, signer: &PairSigner, - ) -> Result { + ) -> Result { let url = self.extrinsic_opts.url.to_string(); let cli = WsClientBuilder::default().build(&url).await?; let storage_deposit_limit = self @@ -115,25 +133,21 @@ impl UploadCommand { }; let params = rpc_params!(call_request); - let result: CodeUploadResult = - cli.request("contracts_upload_code", params).await?; + let result: CodeUploadResult = cli + .request("contracts_upload_code", params) + .await + .context("contracts_upload_code RPC error")?; - result.map_err(|e| anyhow::anyhow!("Failed to execute call via rpc: {:?}", e)) + Ok(result) } async fn upload_code( &self, + api: &RuntimeApi, code: Vec, signer: &PairSigner, transcoder: &ContractMessageTranscoder<'_>, ) -> Result { - let url = self.extrinsic_opts.url.to_string(); - let api = ClientBuilder::new() - .set_url(&url) - .build() - .await? - .to_runtime_api::(); - let tx_progress = api .tx() .contracts() -- GitLab From e46b54339a260361263b1419b1d7cece0592e593 Mon Sep 17 00:00:00 2001 From: ascjones Date: Wed, 27 Apr 2022 17:13:27 +0100 Subject: [PATCH 05/10] Report module error details for call dry-run --- src/cmd/extrinsics/call.rs | 42 +++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/cmd/extrinsics/call.rs b/src/cmd/extrinsics/call.rs index cf7ce7cb..2ddd2681 100644 --- a/src/cmd/extrinsics/call.rs +++ b/src/cmd/extrinsics/call.rs @@ -16,6 +16,7 @@ use super::{ display_contract_exec_result, + display_dry_run_error_details, display_events, load_metadata, parse_balance, @@ -25,6 +26,7 @@ use super::{ ExtrinsicOpts, PairSigner, RuntimeApi, + RuntimeDispatchError, EXEC_RESULT_MAX_KEY_COL_WIDTH, }; use crate::name_value_println; @@ -34,9 +36,16 @@ use jsonrpsee::{ rpc_params, ws_client::WsClientBuilder, }; +use pallet_contracts_primitives::{ + ContractResult, + ExecReturnValue, +}; use serde::Serialize; use sp_core::Bytes; -use std::fmt::Debug; +use std::{ + fmt::Debug, + result, +}; use subxt::{ rpc::NumberOrHex, ClientBuilder, @@ -44,7 +53,8 @@ use subxt::{ DefaultConfig, }; -type ContractExecResult = pallet_contracts_primitives::ContractExecResult; +type ContractExecResult = + ContractResult, Balance>; #[derive(Debug, clap::Args)] #[clap(name = "call", about = "Call a contract")] @@ -79,16 +89,24 @@ impl CallCommand { let signer = super::pair_signer(self.extrinsic_opts.signer()?); async_std::task::block_on(async { + let url = self.extrinsic_opts.url.to_string(); + let api = ClientBuilder::new() + .set_url(&url) + .build() + .await? + .to_runtime_api::(); + if self.extrinsic_opts.dry_run { - self.call_rpc(call_data, &signer, &transcoder).await + self.call_rpc(&api, call_data, &signer, &transcoder).await } else { - self.call(call_data, &signer, &transcoder).await + self.call(&api, call_data, &signer, &transcoder).await } }) } async fn call_rpc( &self, + api: &RuntimeApi, data: Vec, signer: &PairSigner, transcoder: &ContractMessageTranscoder<'_>, @@ -131,12 +149,8 @@ impl CallCommand { EXEC_RESULT_MAX_KEY_COL_WIDTH ); } - Err(err) => { - name_value_println!( - "Result", - format!("Error: {:?}", err), - EXEC_RESULT_MAX_KEY_COL_WIDTH - ); + Err(ref err) => { + display_dry_run_error_details(api, err).await?; } } display_contract_exec_result(&result)?; @@ -145,17 +159,11 @@ impl CallCommand { async fn call( &self, + api: &RuntimeApi, data: Vec, signer: &PairSigner, transcoder: &ContractMessageTranscoder<'_>, ) -> Result<()> { - let url = self.extrinsic_opts.url.to_string(); - let api = ClientBuilder::new() - .set_url(&url) - .build() - .await? - .to_runtime_api::(); - log::debug!("calling contract {:?}", self.contract); let tx_progress = api .tx() -- GitLab From bf988d8357331f29defe26982b996d81454f8496 Mon Sep 17 00:00:00 2001 From: ascjones Date: Wed, 27 Apr 2022 17:22:07 +0100 Subject: [PATCH 06/10] Move printing result back to callers --- src/cmd/extrinsics/call.rs | 5 +++-- src/cmd/extrinsics/instantiate.rs | 6 ++++-- src/cmd/extrinsics/mod.rs | 9 ++++----- src/cmd/extrinsics/upload.rs | 6 ++++-- 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/cmd/extrinsics/call.rs b/src/cmd/extrinsics/call.rs index 2ddd2681..c712a89d 100644 --- a/src/cmd/extrinsics/call.rs +++ b/src/cmd/extrinsics/call.rs @@ -16,8 +16,8 @@ use super::{ display_contract_exec_result, - display_dry_run_error_details, display_events, + dry_run_error_details, load_metadata, parse_balance, wait_for_success_and_handle_error, @@ -150,7 +150,8 @@ impl CallCommand { ); } Err(ref err) => { - display_dry_run_error_details(api, err).await?; + let err = dry_run_error_details(&api, err).await?; + name_value_println!("Result", err, EXEC_RESULT_MAX_KEY_COL_WIDTH); } } display_contract_exec_result(&result)?; diff --git a/src/cmd/extrinsics/instantiate.rs b/src/cmd/extrinsics/instantiate.rs index 4aa0a4ef..47ca219a 100644 --- a/src/cmd/extrinsics/instantiate.rs +++ b/src/cmd/extrinsics/instantiate.rs @@ -16,8 +16,8 @@ use super::{ display_contract_exec_result, - display_dry_run_error_details, display_events, + dry_run_error_details, parse_balance, runtime_api::api, wait_for_success_and_handle_error, @@ -238,7 +238,9 @@ impl<'a> Exec<'a> { ); } Err(ref err) => { - display_dry_run_error_details(&self.subxt_api().await?, err).await?; + let err = + dry_run_error_details(&self.subxt_api().await?, err).await?; + name_value_println!("Result", err, EXEC_RESULT_MAX_KEY_COL_WIDTH); } } display_contract_exec_result(&result)?; diff --git a/src/cmd/extrinsics/mod.rs b/src/cmd/extrinsics/mod.rs index 7be8fb28..9d48f661 100644 --- a/src/cmd/extrinsics/mod.rs +++ b/src/cmd/extrinsics/mod.rs @@ -232,10 +232,10 @@ where } /// Extract and display error details for an RPC `--dry-run` result. -async fn display_dry_run_error_details( +async fn dry_run_error_details( api: &RuntimeApi, error: &RuntimeDispatchError, -) -> Result<()> { +) -> Result { let error = if let Some(error_data) = error.module_error_data() { let details = api .client @@ -248,8 +248,7 @@ async fn display_dry_run_error_details( details.description() ) } else { - format!("Error: {:?}", error) + format!("{:?}", error) }; - name_value_println!("Result", error, EXEC_RESULT_MAX_KEY_COL_WIDTH); - Ok(()) + Ok(error) } diff --git a/src/cmd/extrinsics/upload.rs b/src/cmd/extrinsics/upload.rs index 41823fe8..827b7473 100644 --- a/src/cmd/extrinsics/upload.rs +++ b/src/cmd/extrinsics/upload.rs @@ -15,8 +15,8 @@ // along with cargo-contract. If not, see . use super::{ - display_dry_run_error_details, display_events, + dry_run_error_details, runtime_api::api, wait_for_success_and_handle_error, Balance, @@ -92,6 +92,7 @@ impl UploadCommand { if self.extrinsic_opts.dry_run { match self.upload_code_rpc(code, &signer).await? { Ok(result) => { + name_value_println!("Result", String::from("Success!")); name_value_println!( "Code hash", format!("{:?}", result.code_hash) @@ -99,7 +100,8 @@ impl UploadCommand { name_value_println!("Deposit", format!("{:?}", result.deposit)); } Err(err) => { - display_dry_run_error_details(&api, &err).await?; + let err = dry_run_error_details(&api, &err).await?; + name_value_println!("Result", err); } } Ok(()) -- GitLab From 54e97414afff6a6872b483c5b707e309b80b609e Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 28 Apr 2022 12:07:47 +0100 Subject: [PATCH 07/10] Update subxt --- Cargo.lock | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 61e86bec..2711fdfc 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3393,7 +3393,7 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "subxt" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#528228f5be20d73e07e1a23a095b62af244c5736" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" dependencies = [ "async-trait", "bitvec", @@ -3405,19 +3405,21 @@ dependencies = [ "jsonrpsee 0.10.1", "log", "parity-scale-codec", + "parking_lot", "scale-info", "serde", "serde_json", "sp-core", "sp-runtime", "subxt-macro", + "subxt-metadata", "thiserror", ] [[package]] name = "subxt-codegen" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#528228f5be20d73e07e1a23a095b62af244c5736" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" dependencies = [ "async-trait", "darling", @@ -3429,13 +3431,15 @@ dependencies = [ "proc-macro2", "quote", "scale-info", + "sp-core", + "subxt-metadata", "syn", ] [[package]] name = "subxt-macro" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#528228f5be20d73e07e1a23a095b62af244c5736" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" dependencies = [ "async-trait", "darling", @@ -3451,6 +3455,17 @@ dependencies = [ "syn", ] +[[package]] +name = "subxt-metadata" +version = "0.20.0" +source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-core", +] + [[package]] name = "syn" version = "1.0.91" -- GitLab From 12c5af448dd2d0e3f28b306c689c0e6bba933119 Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 28 Apr 2022 12:09:57 +0100 Subject: [PATCH 08/10] Fix for new subxt and satisfy clippy --- src/cmd/extrinsics/call.rs | 4 ++-- src/cmd/extrinsics/instantiate.rs | 4 ++-- src/cmd/extrinsics/upload.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cmd/extrinsics/call.rs b/src/cmd/extrinsics/call.rs index c712a89d..279c20c2 100644 --- a/src/cmd/extrinsics/call.rs +++ b/src/cmd/extrinsics/call.rs @@ -150,7 +150,7 @@ impl CallCommand { ); } Err(ref err) => { - let err = dry_run_error_details(&api, err).await?; + let err = dry_run_error_details(api, err).await?; name_value_println!("Result", err, EXEC_RESULT_MAX_KEY_COL_WIDTH); } } @@ -175,7 +175,7 @@ impl CallCommand { self.gas_limit, self.extrinsic_opts.storage_deposit_limit, data, - ) + )? .sign_and_submit_then_watch_default(signer) .await?; diff --git a/src/cmd/extrinsics/instantiate.rs b/src/cmd/extrinsics/instantiate.rs index 47ca219a..41a3354c 100644 --- a/src/cmd/extrinsics/instantiate.rs +++ b/src/cmd/extrinsics/instantiate.rs @@ -277,7 +277,7 @@ impl<'a> Exec<'a> { code.to_vec(), self.args.data.clone(), self.args.salt.0.clone(), - ) + )? .sign_and_submit_then_watch_default(&self.signer) .await?; @@ -309,7 +309,7 @@ impl<'a> Exec<'a> { code_hash, self.args.data.clone(), self.args.salt.0.clone(), - ) + )? .sign_and_submit_then_watch_default(&self.signer) .await?; diff --git a/src/cmd/extrinsics/upload.rs b/src/cmd/extrinsics/upload.rs index 827b7473..8fd5f792 100644 --- a/src/cmd/extrinsics/upload.rs +++ b/src/cmd/extrinsics/upload.rs @@ -153,7 +153,7 @@ impl UploadCommand { let tx_progress = api .tx() .contracts() - .upload_code(code, self.extrinsic_opts.storage_deposit_limit) + .upload_code(code, self.extrinsic_opts.storage_deposit_limit)? .sign_and_submit_then_watch_default(signer) .await?; -- GitLab From bf22dbcb739e7d2e9f902290ffbfde9eb97da0e1 Mon Sep 17 00:00:00 2001 From: ascjones Date: Thu, 28 Apr 2022 12:36:12 +0100 Subject: [PATCH 09/10] Update to `subxt` master --- Cargo.lock | 8 ++++---- Cargo.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 2711fdfc..229a5a70 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3393,7 +3393,7 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "subxt" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" +source = "git+https://github.com/paritytech/subxt?branch=master#24317b431122193223d8bcba184a51e840c74d32" dependencies = [ "async-trait", "bitvec", @@ -3419,7 +3419,7 @@ dependencies = [ [[package]] name = "subxt-codegen" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" +source = "git+https://github.com/paritytech/subxt?branch=master#24317b431122193223d8bcba184a51e840c74d32" dependencies = [ "async-trait", "darling", @@ -3439,7 +3439,7 @@ dependencies = [ [[package]] name = "subxt-macro" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" +source = "git+https://github.com/paritytech/subxt?branch=master#24317b431122193223d8bcba184a51e840c74d32" dependencies = [ "async-trait", "darling", @@ -3458,7 +3458,7 @@ dependencies = [ [[package]] name = "subxt-metadata" version = "0.20.0" -source = "git+https://github.com/paritytech/subxt?branch=aj/specific-type-derive#2eb05622f6e2afe8f7e675c10da3aa8be3c32da3" +source = "git+https://github.com/paritytech/subxt?branch=master#24317b431122193223d8bcba184a51e840c74d32" dependencies = [ "frame-metadata", "parity-scale-codec", diff --git a/Cargo.toml b/Cargo.toml index a2b2d0bd..a331bc55 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ scale-info = { version = "2.1.1", default-features = false, features = ["derive" sp-core = "6.0.0" sp-runtime = "6.0.0" pallet-contracts-primitives = "6.0.0" -subxt = { git = "https://github.com/paritytech/subxt", branch = "aj/specific-type-derive" } +subxt = { git = "https://github.com/paritytech/subxt", branch = "master" } futures = "0.3.19" hex = "0.4.3" jsonrpsee = { version = "0.11.0", features = ["ws-client"] } -- GitLab From 251d9d4e2db716ea19c96d194b71661d2aaccdbc Mon Sep 17 00:00:00 2001 From: ascjones Date: Tue, 3 May 2022 09:19:58 +0100 Subject: [PATCH 10/10] Use latest subxt release --- Cargo.lock | 127 +++++++++++++++++++++-------------------------------- Cargo.toml | 2 +- 2 files changed, 51 insertions(+), 78 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0508c2e2..538eec2c 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -554,12 +554,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -[[package]] -name = "chameleon" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bd83544cd11113170ce1eee45383928f3f720bc8b305af18c2a3da3547e1ae" - [[package]] name = "chrono" version = "0.4.19" @@ -782,9 +776,9 @@ dependencies = [ [[package]] name = "darling" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0d720b8683f8dd83c65155f0530560cba68cd2bf395f6513a483caee57ff7f4" +checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02" dependencies = [ "darling_core", "darling_macro", @@ -792,9 +786,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a340f241d2ceed1deb47ae36c4144b2707ec7dd0b649f894cb39bb595986324" +checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f" dependencies = [ "fnv", "ident_case", @@ -806,9 +800,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.13.1" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c41b3b7352feb3211a0d743dc5700a4e3b60f51bd2b368892d1e0f9a95f44b" +checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5" dependencies = [ "darling_core", "quote", @@ -1674,12 +1668,12 @@ dependencies = [ [[package]] name = "jsonrpsee" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0d0b8cc1959f8c05256ace093b2317482da9127f1d9227564f47e7e6bf9bda8" +checksum = "91dc760c341fa81173f9a434931aaf32baad5552b0230cc6c93e8fb7eaad4c19" dependencies = [ - "jsonrpsee-client-transport 0.9.0", - "jsonrpsee-core 0.9.0", + "jsonrpsee-client-transport 0.10.1", + "jsonrpsee-core 0.10.1", ] [[package]] @@ -1695,21 +1689,21 @@ dependencies = [ [[package]] name = "jsonrpsee-client-transport" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa370c2c717d798c3c0a315ae3f0a707a388c6963c11f9da7dbbe1d3f7392f5f" +checksum = "765f7a36d5087f74e3b3b47805c2188fef8eb54afcb587b078d9f8ebfe9c7220" dependencies = [ "futures", "http", - "jsonrpsee-core 0.9.0", - "jsonrpsee-types 0.9.0", + "jsonrpsee-core 0.10.1", + "jsonrpsee-types 0.10.1", "pin-project", "rustls-native-certs", "soketto", "thiserror", "tokio", "tokio-rustls", - "tokio-util 0.6.9", + "tokio-util", "tracing", "webpki-roots", ] @@ -1730,16 +1724,16 @@ dependencies = [ "thiserror", "tokio", "tokio-rustls", - "tokio-util 0.7.1", + "tokio-util", "tracing", "webpki-roots", ] [[package]] name = "jsonrpsee-core" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22abc3274b265dcefe2e26c4beecf9fda4fffa48cf94930443a6c73678f020d5" +checksum = "82ef77ecd20c2254d54f5da8c0738eacca61e6b6511268a8f2753e3148c6c706" dependencies = [ "anyhow", "arrayvec 0.7.2", @@ -1748,7 +1742,7 @@ dependencies = [ "futures-channel", "futures-util", "hyper", - "jsonrpsee-types 0.9.0", + "jsonrpsee-types 0.10.1", "rustc-hash", "serde", "serde_json", @@ -1782,9 +1776,9 @@ dependencies = [ [[package]] name = "jsonrpsee-types" -version = "0.9.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f4c45d2e2aa1db4c7d7d7dbaabc10a5b5258d99cd9d42fbfd5260b76f80c324" +checksum = "38b6aa52f322cbf20c762407629b8300f39bcc0cf0619840d9252a2f65fd2dd9" dependencies = [ "anyhow", "beef", @@ -2182,7 +2176,7 @@ version = "3.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c45ed1f39709f5a89338fab50e59816b2e8815f5bb58276e7ddf9afd495f73f8" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -2391,15 +2385,6 @@ dependencies = [ "uint", ] -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - [[package]] name = "proc-macro-crate" version = "1.1.3" @@ -2436,18 +2421,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.36" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" +checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1" dependencies = [ "unicode-xid", ] [[package]] name = "quote" -version = "1.0.15" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" +checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1" dependencies = [ "proc-macro2", ] @@ -2725,7 +2710,7 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4260c630e8a8a33429d1688eff2f163f24c65a4e1b1578ef6b565061336e4b6f" dependencies = [ - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -3221,7 +3206,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "22ecb916b9664ed9f90abef0ff5a3e61454c1efea5861b2997e03f39b59b955f" dependencies = [ "Inflector", - "proc-macro-crate 1.1.3", + "proc-macro-crate", "proc-macro2", "quote", "syn", @@ -3375,68 +3360,71 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "subxt" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc99c89f8e581c6e8b3e6923e66512041d908180efee7cb026b2ccd5f0334218" +checksum = "4ab902b8d1bf5ecdc16c78e1f7fdef77665d5ce77004b2be1f6ac4b4f679d987" dependencies = [ - "async-trait", "bitvec", - "chameleon", "derivative", "frame-metadata", "futures", "hex", - "jsonrpsee 0.9.0", + "jsonrpsee 0.10.1", "log", "parity-scale-codec", + "parking_lot", "scale-info", "serde", "serde_json", "sp-core", "sp-runtime", "subxt-macro", + "subxt-metadata", "thiserror", ] [[package]] name = "subxt-codegen" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74283176932f38c579311f65f4138ff2817a3bd1040250055fbd1f3857027cbb" +checksum = "2ac3c4e3565338616f009bc40419f45fa7d9472a5717fa8cce129777c709d1a1" dependencies = [ - "async-trait", "darling", "frame-metadata", "heck", "parity-scale-codec", - "proc-macro-crate 0.1.5", "proc-macro-error", "proc-macro2", "quote", "scale-info", + "subxt-metadata", "syn", ] [[package]] name = "subxt-macro" -version = "0.20.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb844cf84cdae36fc337810569cc39e3e022c17cc2ed11031c66d0e09b73726" +checksum = "078edfe8f06cb00848e2e64e923fe809f345042c3d7ec13edcd7f0e617656a9b" dependencies = [ - "async-trait", "darling", - "frame-metadata", - "heck", - "parity-scale-codec", - "proc-macro-crate 0.1.5", "proc-macro-error", - "proc-macro2", - "quote", - "scale-info", "subxt-codegen", "syn", ] +[[package]] +name = "subxt-metadata" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819a10a1a13bd9645419f59ac9d7cc8deb51052566b9d0c2157354ea44513d5" +dependencies = [ + "frame-metadata", + "parity-scale-codec", + "scale-info", + "sp-core", +] + [[package]] name = "syn" version = "1.0.92" @@ -3610,21 +3598,6 @@ dependencies = [ "webpki", ] -[[package]] -name = "tokio-util" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e99e1983e5d376cd8eb4b66604d2e99e79f5bd988c3055891dcd8c9e2604cc0" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "log", - "pin-project-lite", - "tokio", -] - [[package]] name = "tokio-util" version = "0.7.1" diff --git a/Cargo.toml b/Cargo.toml index 0d3c6e69..929b0693 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -55,7 +55,7 @@ scale-info = { version = "2.1.1", default-features = false, features = ["derive" sp-core = "6.0.0" sp-runtime = "6.0.0" pallet-contracts-primitives = "6.0.0" -subxt = { git = "https://github.com/paritytech/subxt", branch = "master" } +subxt = "0.21.0" futures = "0.3.19" hex = "0.4.3" jsonrpsee = { version = "0.11.0", features = ["ws-client"] } -- GitLab