fix: working and restructured relay in rust (#186)

This commit is contained in:
Daniel Gushchyan 2024-08-30 11:05:10 -07:00 committed by GitHub
parent a9ea3fa9ae
commit 2a95087ce4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 4596 additions and 481 deletions

188
Cargo.lock generated
View file

@ -317,7 +317,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
"synstructure",
]
@ -329,7 +329,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -349,7 +349,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -371,7 +371,7 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -382,7 +382,7 @@ checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -395,7 +395,7 @@ dependencies = [
"futures-util",
"log",
"pin-project-lite",
"rustls-native-certs 0.7.3",
"rustls-native-certs 0.7.2",
"rustls-pki-types",
"tokio",
"tokio-rustls 0.25.0",
@ -642,9 +642,9 @@ checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
[[package]]
name = "bytemuck"
version = "1.17.1"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "773d90827bc3feecfb67fab12e24de0749aad83c74b9504ecde46237b5cd24e2"
checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31"
[[package]]
name = "byteorder"
@ -737,9 +737,9 @@ dependencies = [
[[package]]
name = "cc"
version = "1.1.15"
version = "1.1.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6"
checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48"
dependencies = [
"jobserver",
"libc",
@ -816,7 +816,7 @@ dependencies = [
"heck",
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -907,9 +907,9 @@ dependencies = [
[[package]]
name = "constant_time_eq"
version = "0.3.1"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6"
checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2"
[[package]]
name = "contracts"
@ -1005,7 +1005,7 @@ checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1029,7 +1029,7 @@ checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1169,7 +1169,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1382,7 +1382,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1393,7 +1393,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1437,7 +1437,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1468,7 +1468,7 @@ checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1488,7 +1488,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
"unicode-xid",
]
@ -1575,7 +1575,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -1781,9 +1781,9 @@ checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183"
[[package]]
name = "fastrand"
version = "2.1.1"
version = "2.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
[[package]]
name = "ff"
@ -1952,7 +1952,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -2098,9 +2098,9 @@ dependencies = [
[[package]]
name = "gix-config-value"
version = "0.14.8"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c"
checksum = "b328997d74dd15dc71b2773b162cb4af9a25c424105e4876e6d0686ab41c383e"
dependencies = [
"bitflags 2.6.0",
"bstr",
@ -2148,9 +2148,9 @@ dependencies = [
[[package]]
name = "gix-fs"
version = "0.11.3"
version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575"
checksum = "6adf99c27cdf17b1c4d77680c917e0d94d8783d4e1c73d3be0d1d63107163d7a"
dependencies = [
"fastrand",
"gix-features",
@ -2159,9 +2159,9 @@ dependencies = [
[[package]]
name = "gix-glob"
version = "0.16.5"
version = "0.16.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111"
checksum = "fa7df15afa265cc8abe92813cd354d522f1ac06b29ec6dfa163ad320575cb447"
dependencies = [
"bitflags 2.6.0",
"bstr",
@ -2196,7 +2196,7 @@ version = "14.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d"
dependencies = [
"gix-tempfile 14.0.2",
"gix-tempfile 14.0.1",
"gix-utils",
"thiserror",
]
@ -2222,9 +2222,9 @@ dependencies = [
[[package]]
name = "gix-path"
version = "0.10.10"
version = "0.10.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "38d5b8722112fa2fa87135298780bc833b0e9f6c56cc82795d209804b3a03484"
checksum = "8d23d5bbda31344d8abc8de7c075b3cf26e5873feba7c4a15d916bce67382bd9"
dependencies = [
"bstr",
"gix-trace",
@ -2264,12 +2264,12 @@ dependencies = [
"gix-actor",
"gix-date",
"gix-features",
"gix-fs 0.11.3",
"gix-fs 0.11.2",
"gix-hash",
"gix-lock 14.0.0",
"gix-object",
"gix-path",
"gix-tempfile 14.0.2",
"gix-tempfile 14.0.1",
"gix-utils",
"gix-validate",
"memmap2",
@ -2279,9 +2279,9 @@ dependencies = [
[[package]]
name = "gix-sec"
version = "0.10.8"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f"
checksum = "1547d26fa5693a7f34f05b4a3b59a90890972922172653bcb891ab3f09f436df"
dependencies = [
"bitflags 2.6.0",
"gix-path",
@ -2304,11 +2304,11 @@ dependencies = [
[[package]]
name = "gix-tempfile"
version = "14.0.2"
version = "14.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "046b4927969fa816a150a0cda2e62c80016fe11fb3c3184e4dddf4e542f108aa"
checksum = "006acf5a613e0b5cf095d8e4b3f48c12a60d9062aa2b2dd105afaf8344a5600c"
dependencies = [
"gix-fs 0.11.3",
"gix-fs 0.11.2",
"libc",
"once_cell",
"parking_lot",
@ -3038,9 +3038,9 @@ dependencies = [
[[package]]
name = "libz-sys"
version = "1.1.20"
version = "1.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472"
checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647"
dependencies = [
"cc",
"libc",
@ -3093,7 +3093,7 @@ checksum = "3b51f1d220e3fa869e24cfd75915efe3164bd09bb11b3165db3f37f57bf673e3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -3262,7 +3262,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -3548,9 +3548,9 @@ dependencies = [
[[package]]
name = "oid-registry"
version = "0.7.1"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9"
checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d"
dependencies = [
"asn1-rs",
]
@ -3692,7 +3692,7 @@ dependencies = [
"proc-macro2",
"proc-macro2-diagnostics",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -3768,7 +3768,7 @@ dependencies = [
"pest_meta",
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -3857,7 +3857,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -3923,12 +3923,12 @@ dependencies = [
[[package]]
name = "prettyplease"
version = "0.2.22"
version = "0.2.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e"
dependencies = [
"proc-macro2",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -3957,7 +3957,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
"version_check",
"yansi",
]
@ -4030,7 +4030,7 @@ dependencies = [
"prost 0.13.1",
"prost-types 0.13.1",
"regex",
"syn 2.0.76",
"syn 2.0.75",
"tempfile",
]
@ -4044,7 +4044,7 @@ dependencies = [
"itertools 0.12.1",
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -4057,7 +4057,7 @@ dependencies = [
"itertools 0.13.0",
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -4264,9 +4264,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.37"
version = "1.0.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
dependencies = [
"proc-macro2",
]
@ -4527,7 +4527,7 @@ checksum = "a5a11a05ee1ce44058fa3d5961d05194fdbe3ad6b40f904af764d81b86450e6b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -4568,9 +4568,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
[[package]]
name = "rustc_version"
version = "0.4.1"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
dependencies = [
"semver",
]
@ -4586,9 +4586,9 @@ dependencies = [
[[package]]
name = "rustix"
version = "0.38.35"
version = "0.38.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f"
checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
dependencies = [
"bitflags 2.6.0",
"errno",
@ -4618,7 +4618,7 @@ dependencies = [
"log",
"ring",
"rustls-pki-types",
"rustls-webpki 0.102.7",
"rustls-webpki 0.102.6",
"subtle",
"zeroize",
]
@ -4632,7 +4632,7 @@ dependencies = [
"once_cell",
"ring",
"rustls-pki-types",
"rustls-webpki 0.102.7",
"rustls-webpki 0.102.6",
"subtle",
"zeroize",
]
@ -4651,9 +4651,9 @@ dependencies = [
[[package]]
name = "rustls-native-certs"
version = "0.7.3"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5"
checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa"
dependencies = [
"openssl-probe",
"rustls-pemfile 2.1.3",
@ -4699,9 +4699,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
version = "0.102.7"
version = "0.102.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56"
checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
dependencies = [
"ring",
"rustls-pki-types",
@ -4769,7 +4769,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_derive_internals",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -4836,9 +4836,9 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.209"
version = "1.0.208"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
dependencies = [
"serde_derive",
]
@ -4873,13 +4873,13 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.209"
version = "1.0.208"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -4890,14 +4890,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
name = "serde_json"
version = "1.0.127"
version = "1.0.125"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
dependencies = [
"itoa",
"memchr",
@ -4913,7 +4913,7 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -4962,7 +4962,7 @@ dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -5166,9 +5166,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.76"
version = "2.0.75"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9"
dependencies = [
"proc-macro2",
"quote",
@ -5198,7 +5198,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -5521,7 +5521,7 @@ checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -5645,7 +5645,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -5779,7 +5779,7 @@ dependencies = [
"proc-macro2",
"prost-build",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -5834,7 +5834,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -6061,7 +6061,7 @@ dependencies = [
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
"wasm-bindgen-shared",
]
@ -6095,7 +6095,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
@ -6273,7 +6273,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -6284,7 +6284,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -6558,7 +6558,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]
[[package]]
@ -6578,5 +6578,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.76",
"syn 2.0.75",
]

View file

@ -149,9 +149,9 @@ dependencies = [
[[package]]
name = "asn1-rs"
version = "0.6.1"
version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d"
checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048"
dependencies = [
"asn1-rs-derive",
"asn1-rs-impl",
@ -165,13 +165,13 @@ dependencies = [
[[package]]
name = "asn1-rs-derive"
version = "0.5.0"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1"
checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
"synstructure",
]
@ -183,7 +183,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -251,15 +251,18 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
version = "1.6.0"
version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
[[package]]
name = "cc"
version = "1.1.0"
version = "1.1.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "eaff6f8ce506b9773fa786672d63fc7a191ffea1be33f72bbd4aeacefca9ffc8"
checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6"
dependencies = [
"shlex",
]
[[package]]
name = "cfg-if"
@ -285,15 +288,15 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
[[package]]
name = "cosmwasm-core"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "367fc87c43759098a476ef90f915aadc66c300480ad9c155b512081fbf327bc1"
checksum = "d905990ef3afb5753bb709dc7de88e9e370aa32bcc2f31731d4b533b63e82490"
[[package]]
name = "cosmwasm-crypto"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b7c41f3e371ea457d3b98bb592c38858b46efcf614e0e988ec2ebbdb973954f"
checksum = "5b2a7bd9c1dd9a377a4dc0f4ad97d24b03c33798cd5a6d7ceb8869b41c5d2f2d"
dependencies = [
"ark-bls12-381",
"ark-ec",
@ -314,20 +317,20 @@ dependencies = [
[[package]]
name = "cosmwasm-derive"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c10510e8eb66cf7e109741b1e2c76ad18f30b5a1daa064f5f7115c1f733aaea0"
checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
name = "cosmwasm-schema"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f79879b6b7ef6a331b05030ce91ce46a7c4b0baf1ed6b382cce2e9a168109380"
checksum = "4bc0d4d85e83438ab9a0fea9348446f7268bc016aacfebce37e998559f151294"
dependencies = [
"cosmwasm-schema-derive",
"schemars",
@ -338,20 +341,20 @@ dependencies = [
[[package]]
name = "cosmwasm-schema-derive"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "82b53e33c0e97170c7ac9cb440f4bc599a07f9cbb9b7e87916cca37b1239d57b"
checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
name = "cosmwasm-std"
version = "2.1.1"
version = "2.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "92011c39570876f340d5f9defa68bf92797b1c44421f1b9ea9b04a31d6defd33"
checksum = "51dec99a2e478715c0a4277f0dbeadbb8466500eb7dec873d0924edd086e77f1"
dependencies = [
"base64",
"bech32",
@ -372,9 +375,9 @@ dependencies = [
[[package]]
name = "cpufeatures"
version = "0.2.12"
version = "0.2.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
dependencies = [
"libc",
]
@ -450,14 +453,14 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
name = "cw-multi-test"
version = "2.1.0"
version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0034bfb4c06dfc8b50f0b1a06c3fc0f2312a1bae568a97db65930de071288ba"
checksum = "b0ae276e7a06ad1b7e7da78a3d68aba80634cde30ee7fe8259a94e653603fef8"
dependencies = [
"anyhow",
"bech32",
@ -584,7 +587,7 @@ dependencies = [
"proc-macro2",
"quote",
"strsim",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -595,7 +598,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
dependencies = [
"darling_core",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -639,7 +642,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -679,7 +682,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
"unicode-xid",
]
@ -703,7 +706,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -793,9 +796,9 @@ checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d"
[[package]]
name = "flagset"
version = "0.4.5"
version = "0.4.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cdeb3aa5e95cf9aabc17f060cfa0ced7b83f042390760ca53bf09df9968acaa1"
checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec"
[[package]]
name = "fnv"
@ -896,15 +899,6 @@ dependencies = [
"either",
]
[[package]]
name = "itertools"
version = "0.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
dependencies = [
"either",
]
[[package]]
name = "itertools"
version = "0.13.0"
@ -922,9 +916,9 @@ checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
[[package]]
name = "js-sys"
version = "0.3.69"
version = "0.3.70"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
dependencies = [
"wasm-bindgen",
]
@ -949,9 +943,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
[[package]]
name = "libc"
version = "0.2.155"
version = "0.2.158"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
[[package]]
name = "log"
@ -1094,9 +1088,9 @@ dependencies = [
[[package]]
name = "oid-registry"
version = "0.7.0"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d"
checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9"
dependencies = [
"asn1-rs",
]
@ -1179,9 +1173,9 @@ dependencies = [
[[package]]
name = "prost"
version = "0.12.6"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc"
dependencies = [
"bytes",
"prost-derive",
@ -1189,15 +1183,15 @@ dependencies = [
[[package]]
name = "prost-derive"
version = "0.12.6"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca"
dependencies = [
"anyhow",
"itertools 0.12.1",
"itertools 0.13.0",
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -1248,9 +1242,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.36"
version = "1.0.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
dependencies = [
"proc-macro2",
]
@ -1331,9 +1325,9 @@ dependencies = [
[[package]]
name = "rustc_version"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
dependencies = [
"semver",
]
@ -1374,7 +1368,7 @@ dependencies = [
"proc-macro2",
"quote",
"serde_derive_internals",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -1399,9 +1393,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
[[package]]
name = "serde"
version = "1.0.204"
version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc76f558e0cbb2a839d37354c575f1dc3fdc6546b5be373ba43d95f231bf7c12"
checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09"
dependencies = [
"serde_derive",
]
@ -1417,13 +1411,13 @@ dependencies = [
[[package]]
name = "serde_derive"
version = "1.0.204"
version = "1.0.209"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e0cd7e117be63d3c3678776753929474f3b04a43a080c744d6b0ae2a8c28e222"
checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -1434,25 +1428,26 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
name = "serde_json"
version = "1.0.120"
version = "1.0.127"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4e0d21c9a8cae1235ad58a00c11cb40d4b1e5c784f1ef2c537876ed6ffd8b7c5"
checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad"
dependencies = [
"itoa",
"memchr",
"ryu",
"serde",
]
[[package]]
name = "serde_with"
version = "3.8.3"
version = "3.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e73139bc5ec2d45e6c5fd85be5a46949c1c39a4c18e56915f5eb4c12f975e377"
checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857"
dependencies = [
"base64",
"chrono",
@ -1466,14 +1461,14 @@ dependencies = [
[[package]]
name = "serde_with_macros"
version = "3.8.3"
version = "3.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b80d3d6b56b64335c0180e5ffde23b3c5e08c14c585b51a15bd0e95393f46703"
checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350"
dependencies = [
"darling",
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -1487,6 +1482,12 @@ dependencies = [
"digest",
]
[[package]]
name = "shlex"
version = "1.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "signature"
version = "2.2.0"
@ -1544,9 +1545,9 @@ dependencies = [
[[package]]
name = "syn"
version = "2.0.70"
version = "2.0.76"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2f0209b68b3613b093e0ec905354eccaedcfe83b8cb37cbdeae64026c3064c16"
checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525"
dependencies = [
"proc-macro2",
"quote",
@ -1561,27 +1562,27 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
name = "thiserror"
version = "1.0.61"
version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
dependencies = [
"thiserror-impl",
]
[[package]]
name = "thiserror-impl"
version = "1.0.61"
version = "1.0.63"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -1629,9 +1630,9 @@ checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
[[package]]
name = "unicode-xid"
version = "0.2.4"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
[[package]]
name = "untrusted"
@ -1641,9 +1642,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "version_check"
version = "0.9.4"
version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
[[package]]
name = "wasi"
@ -1653,34 +1654,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.92"
version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
dependencies = [
"cfg-if",
"once_cell",
"wasm-bindgen-macro",
]
[[package]]
name = "wasm-bindgen-backend"
version = "0.2.92"
version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
dependencies = [
"bumpalo",
"log",
"once_cell",
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-macro"
version = "0.2.92"
version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@ -1688,22 +1690,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
version = "0.2.92"
version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
"wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
version = "0.2.92"
version = "0.2.93"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
[[package]]
name = "windows-sys"
@ -1825,7 +1827,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]
[[package]]
@ -1845,5 +1847,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.70",
"syn 2.0.76",
]

View file

@ -1,7 +1,7 @@
mock_sgx = false
tx_sender = "admin"
chain_id = "testing"
node_url = "127.0.0.1:25567"
node_url = "127.0.0.1:26657"
enclave_rpc_addr = "http://127.0.0.1"
enclave_rpc_port = 11090
trusted_hash = ""

4190
apps/transfers/enclave/Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,7 +1,7 @@
mock_sgx = false
tx_sender = "admin"
chain_id = "testing"
node_url = "127.0.0.1:25567"
node_url = "127.0.0.1:26657"
enclave_rpc_addr = "http://127.0.0.1"
enclave_rpc_port = 11090
trusted_hash = ""

View file

@ -17,6 +17,8 @@ pub enum Error {
TendermintError(String),
/// Clearscreen error: {0}
ClearscreenError(String),
/// JSON Error: {0}
JsonError(String),
}
impl From<std::io::Error> for Error {
@ -48,3 +50,9 @@ impl From<clearscreen::Error> for Error {
Error::ClearscreenError(err.to_string())
}
}
impl From<serde_json::Error> for Error {
fn from(err: serde_json::Error) -> Self {
Error::JsonError(err.to_string())
}
}

View file

@ -3,12 +3,7 @@ use std::path::Path;
use async_trait::async_trait;
use cargo_metadata::MetadataCommand;
use color_eyre::owo_colors::OwoColorize;
use quartz_common::contract::{
msg::execute::attested::{RawEpidAttestation, RawMockAttestation},
prelude::QuartzInstantiateMsg,
};
use reqwest::Url;
use serde::{de::DeserializeOwned, Serialize};
use serde_json::json;
use tendermint_rpc::HttpClient;
use tracing::{debug, info};
@ -21,10 +16,7 @@ use super::utils::{
use crate::{
config::Config,
error::Error,
handler::{
utils::{helpers::run_relay_rust, types::RelayMessage},
Handler,
},
handler::{utils::relay::RelayMessage, Handler},
request::contract_deploy::ContractDeployRequest,
response::{contract_deploy::ContractDeployResponse, Response},
};
@ -59,15 +51,9 @@ impl Handler for ContractDeployRequest {
.join(package_name)
.with_extension("wasm");
let (code_id, contract_addr) = if config.mock_sgx {
deploy::<RawMockAttestation>(wasm_bin_path.as_path(), self, config)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
} else {
deploy::<RawEpidAttestation>(wasm_bin_path.as_path(), self, config)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
};
let (code_id, contract_addr) = deploy(wasm_bin_path.as_path(), self, config)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?;
Ok(ContractDeployResponse {
code_id,
@ -77,7 +63,7 @@ impl Handler for ContractDeployRequest {
}
}
async fn deploy<DA: Serialize + DeserializeOwned>(
async fn deploy(
wasm_bin_path: &Path,
args: ContractDeployRequest,
config: &Config,
@ -105,12 +91,9 @@ async fn deploy<DA: Serialize + DeserializeOwned>(
};
info!("🚀 Communicating with Relay to Instantiate...");
let raw_init_msg = run_relay_rust::<QuartzInstantiateMsg<DA>>(
config.enclave_rpc(),
config.mock_sgx,
RelayMessage::Instantiate,
)
.await?;
let raw_init_msg = RelayMessage::Instantiate
.run_relay(config.enclave_rpc(), config.mock_sgx)
.await?;
info!("🚀 Instantiating {}", args.label);
let mut init_msg = args.init_msg;

View file

@ -88,9 +88,7 @@ async fn dev_driver(
info!("{}", "Launching quartz app...".green().bold());
// Build enclave
let enclave_build = EnclaveBuildRequest {
release: args.release,
};
let enclave_build = EnclaveBuildRequest {};
enclave_build.handle(&config).await?;
// Build contract
@ -235,7 +233,7 @@ async fn deploy_and_handshake(
) -> Result<String, Error> {
info!("Waiting for enclave start to deploy contract and handshake");
// Wait at most 30 seconds to connect to enclave
// Wait at most 60 seconds to connect to enclave
let mut i = 30;
while CoreClient::connect(format!(
"{}:{}",
@ -244,7 +242,7 @@ async fn deploy_and_handshake(
.await
.is_err()
{
sleep(Duration::from_secs(1)).await;
sleep(Duration::from_secs(2)).await;
i -= 1;
if i == 0 {

View file

@ -37,7 +37,7 @@ impl Handler for EnclaveBuildRequest {
command.arg("--features=mock-sgx");
}
if self.release {
if config.release {
debug!("Targetting release");
command.arg("--release");
}

View file

@ -31,7 +31,6 @@ impl Handler for EnclaveStartRequest {
// Get trusted height and hash
let (trusted_height, trusted_hash) = self.get_hash_height(&config)?;
println!("trusted height: {} hash: {}", trusted_height, trusted_hash);
write_cache_hash_height(trusted_height, trusted_hash, &config).await?;
if config.mock_sgx {
@ -199,7 +198,7 @@ async fn gramine_manifest(
.arg("-Dra_type=epid")
.arg(format!("-Dra_client_spid={}", ra_client_spid))
.arg("-Dra_client_linkable=1")
.arg(format!("-Dquartz_dir={}", quartz_dir.display().to_string()))
.arg(format!("-Dquartz_dir={}", quartz_dir.display()))
.arg(format!("-Dtrusted_height={}", trusted_height))
.arg(format!("-Dtrusted_hash={}", trusted_hash))
.arg("quartz.manifest.template")

View file

@ -17,10 +17,7 @@ use crate::{
config::Config,
error::Error,
handler::{
utils::{
helpers::{read_cached_hash_height, run_relay_rust},
types::RelayMessage,
},
utils::{helpers::read_cached_hash_height, relay::RelayMessage},
Handler,
},
request::handshake::HandshakeRequest,
@ -60,12 +57,9 @@ async fn handshake(args: HandshakeRequest, config: Config) -> Result<String, any
info!("Running SessionCreate");
let res: serde_json::Value = run_relay_rust(
config.enclave_rpc(),
config.mock_sgx,
RelayMessage::SessionCreate,
)
.await?;
let res: serde_json::Value = RelayMessage::SessionCreate
.run_relay(config.enclave_rpc(), config.mock_sgx)
.await?;
let output: WasmdTxResponse = serde_json::from_str(
wasmd_client
@ -114,12 +108,9 @@ async fn handshake(args: HandshakeRequest, config: Config) -> Result<String, any
// Execute SessionSetPubKey on enclave
info!("Running SessionSetPubKey");
let res: serde_json::Value = run_relay_rust(
config.enclave_rpc(),
config.mock_sgx,
RelayMessage::SessionSetPubKey(proof.trim().to_string()),
)
.await?;
let res: serde_json::Value = RelayMessage::SessionSetPubKey(proof.trim().to_string())
.run_relay(config.enclave_rpc(), config.mock_sgx)
.await?;
// Submit SessionSetPubKey to contract
let output: WasmdTxResponse = serde_json::from_str(

View file

@ -2,36 +2,17 @@ use std::time::Duration;
use anyhow::anyhow;
use cosmrs::{AccountId, ErrorReport};
use cosmwasm_std::Binary;
use hex::decode;
use quartz_common::{
contract::msg::{
execute::{session_create::RawSessionCreate, session_set_pub_key::RawSessionSetPubKey},
instantiate::RawCoreInstantiate,
},
proto::{
core_client::CoreClient, InstantiateRequest, SessionCreateRequest, SessionSetPubKeyRequest,
},
};
use quartz_tee_ra::{intel_sgx::epid::types::ReportBody, IASReport};
use regex::Regex;
use reqwest::Url;
use serde::de::DeserializeOwned;
use serde_json::json;
use subtle_encoding::bech32::decode as bech32_decode;
use tendermint::{block::Height, Hash};
use tendermint_rpc::{
endpoint::tx::Response as TmTxResponse, error::ErrorDetail, Client, HttpClient,
};
use tokio::{
fs::{self, File},
io::AsyncWriteExt,
process::Command,
};
use tokio::fs::{self};
use tracing::debug;
use wasmd_client::{CliWasmdClient, WasmdClient};
use super::types::RelayMessage;
use crate::{config::Config, error::Error};
pub fn wasmaddr_to_id(address_str: &str) -> Result<AccountId, anyhow::Error> {
@ -100,7 +81,6 @@ pub async fn write_cache_hash_height(
) -> Result<(), Error> {
let height_path = config.cache_dir()?.join("trusted.height");
fs::write(height_path.as_path(), trusted_height.to_string()).await?;
let hash_path = config.cache_dir()?.join("trusted.hash");
fs::write(hash_path.as_path(), trusted_hash.to_string()).await?;
@ -123,193 +103,3 @@ pub async fn read_cached_hash_height(config: &Config) -> Result<(Height, Hash),
Ok((trusted_height, trusted_hash))
}
async fn run_docker_command(quote: &[u8]) -> Result<(String, String), Error> {
let dir = tempfile::tempdir()?;
let ias_api_key: &str = "669244b3e6364b5888289a11d2a1726d";
let ra_client_spid: &str = "51CAF5A48B450D624AEFE3286D314894";
let quote_file_path = dir.path().join("test.quote");
let datareport_file_path = dir.path().join("datareport");
let datareportsig_file_path = dir.path().join("datareportsig");
let mut quote_file = File::create(quote_file_path.clone()).await?;
quote_file.write_all(quote).await?;
let status = Command::new("docker")
.arg("run")
.arg("--rm")
.arg("-it")
.arg("-v")
.arg("/tmp:/tmp:rw")
.arg("gramineproject/gramine:1.7-jammy")
.arg(format!(
"gramine-sgx-ias-request report -g \"{}\" -k \"{}\" -q \"{}\" -r \"{}\" -s \"{}\" > /dev/null 2>&1",
ra_client_spid, ias_api_key, quote_file_path.display().to_string(), datareport_file_path.display().to_string(), datareportsig_file_path.display().to_string()
))
.status()
.await
.map_err(|e| Error::GenericErr(e.to_string()))?;
if !status.success() {
return Err(Error::GenericErr(
"Failed to run docker command".to_string(),
));
}
let report = fs::read_to_string(datareport_file_path)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?;
let reportsig = fs::read_to_string(datareportsig_file_path)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
.replace("\r", "");
Ok((report, reportsig))
}
// TODO: move wrapping result with "quartz:" struct into here
pub async fn run_relay_rust<R: DeserializeOwned>(
enclave_rpc: String,
mock_sgx: bool,
relay_msg: RelayMessage,
) -> Result<R, anyhow::Error> {
// Query the gRPC quartz enclave service
let mut qc_client = CoreClient::connect(enclave_rpc).await?;
let attested_msg = match &relay_msg {
RelayMessage::Instantiate => &qc_client
.instantiate(tonic::Request::new(InstantiateRequest {}))
.await?
.get_ref()
.message
.clone(),
RelayMessage::SessionCreate => &qc_client
.session_create(tonic::Request::new(SessionCreateRequest {}))
.await?
.get_ref()
.message
.clone(),
RelayMessage::SessionSetPubKey(proof) => &qc_client
.session_set_pub_key(SessionSetPubKeyRequest {
message: proof.to_string(),
})
.await?
.get_ref()
.message
.clone(),
};
let mut attested_msg_json: serde_json::Value = serde_json::from_str(attested_msg)?;
let quote = attested_msg_json["quote"].take();
if mock_sgx {
match relay_msg {
RelayMessage::Instantiate => {
// Construct CoreInstantiate
let msg: RawCoreInstantiate = serde_json::from_value(attested_msg_json)?;
let query_result: R = serde_json::from_value(json!({
"msg": RawCoreInstantiate::from(msg),
"attestation": quote
}))?;
return Ok(query_result);
}
RelayMessage::SessionCreate => {
// Convert RelayMessage to a snake_case string
let request_key = relay_msg.to_string();
let msg: RawSessionCreate = serde_json::from_value(attested_msg_json)?;
// Build the nested JSON structures
let jsonify = json!({
"quartz": {
request_key: {
"msg": msg,
"attestation": quote
}
}
});
let query_result: R = serde_json::from_value(jsonify)?;
return Ok(query_result);
}
RelayMessage::SessionSetPubKey(_) => {
// Convert RelayMessage to a snake_case string
let request_key = relay_msg.to_string();
let msg: RawSessionSetPubKey = serde_json::from_value(attested_msg_json)?;
// Build the nested JSON structures
let jsonify = json!({
"quartz": {
request_key: {
"msg": msg,
"attestation": quote
}
}
});
let query_result: R = serde_json::from_value(jsonify)?;
return Ok(query_result);
}
}
}
// else
// docker
let quote_str = quote
.as_str()
.ok_or_else(|| Error::GenericErr("quote is not a string".to_string()))?;
let quote = decode(quote_str).map_err(|e| Error::GenericErr(e.to_string()))?;
println!("quote: {:?}", quote_str);
let (report, report_sig) = run_docker_command(&quote).await?;
match relay_msg {
RelayMessage::Instantiate => {
let msg: RawCoreInstantiate = serde_json::from_value(attested_msg_json)?;
let report_json: ReportBody = serde_json::from_str(&report)?;
let report_sig = report_sig.replace('\n', "");
let ias_report = IASReport {
report: report_json,
report_sig: Binary::from_base64(&report_sig)?,
};
// Nest the report inside another "report" field
let jsonify = json!({
"msg": msg,
"attestation": {
"report": {
"report": json!(ias_report.report),
"reportsig": ias_report.report_sig
}
}
});
let query_result: R = serde_json::from_value(jsonify)?;
return Ok(query_result);
}
RelayMessage::SessionCreate | RelayMessage::SessionSetPubKey(_) => {
// Convert request to snake_case
let request_key = relay_msg.to_string();
// Construct the JSON structure for SessionCreate or SessionSetPubKey
let jsonify = json!({
"quartz": {
request_key: {
"msg": attested_msg_json,
"attestation": {
"report": report,
"reportsig": report_sig
}
}
}
});
let query_result: R = serde_json::from_value(jsonify)?;
return Ok(query_result);
}
}
}

View file

@ -1,2 +1,3 @@
pub mod helpers;
pub mod relay;
pub mod types;

View file

@ -0,0 +1,175 @@
use cosmwasm_std::Binary;
use hex::decode;
use quartz_common::{
contract::msg::{
execute::{
attested::{EpidAttestation, RawAttested, RawEpidAttestation, RawMockAttestation},
session_create::RawSessionCreate,
session_set_pub_key::RawSessionSetPubKey,
},
instantiate::RawCoreInstantiate,
RawExecuteMsg,
},
proto::{
core_client::CoreClient, InstantiateRequest, SessionCreateRequest, SessionSetPubKeyRequest,
},
};
use quartz_tee_ra::{intel_sgx::epid::types::ReportBody, IASReport};
use serde_json::json;
use tokio::{
fs::{self, File},
io::AsyncWriteExt,
process::Command,
};
use crate::error::Error;
#[derive(Debug)]
pub enum RelayMessage {
Instantiate,
SessionCreate,
SessionSetPubKey(String),
}
impl RelayMessage {
pub async fn run_relay(
&self,
enclave_rpc: String,
mock_sgx: bool,
) -> Result<serde_json::Value, Error> {
// Query the gRPC quartz enclave service
let mut qc_client = CoreClient::connect(enclave_rpc)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?;
let attested_msg = match self {
RelayMessage::Instantiate => qc_client
.instantiate(tonic::Request::new(InstantiateRequest {}))
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
.get_ref()
.message
.clone(),
RelayMessage::SessionCreate => qc_client
.session_create(tonic::Request::new(SessionCreateRequest {}))
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
.get_ref()
.message
.clone(),
RelayMessage::SessionSetPubKey(proof) => qc_client
.session_set_pub_key(SessionSetPubKeyRequest {
message: proof.to_string(),
})
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
.get_ref()
.message
.clone(),
};
let mut msg_json: serde_json::Value = serde_json::from_str(&attested_msg)?;
let quote = msg_json["quote"].take();
if mock_sgx {
let attestation: RawMockAttestation = serde_json::from_value(quote)?;
self.create_attested_msg(msg_json, attestation)
} else {
let attestation: RawEpidAttestation = create_epid_attestation(&quote).await?.into();
self.create_attested_msg(msg_json, attestation)
}
}
fn create_attested_msg<RA: serde::Serialize>(
&self,
msg_json: serde_json::Value,
attestation: RA,
) -> Result<serde_json::Value, Error> {
match self {
RelayMessage::Instantiate => {
let msg: RawCoreInstantiate = serde_json::from_value(msg_json)?;
let query_result: RawAttested<RawCoreInstantiate, RA> =
RawAttested { msg, attestation };
Ok(json!(query_result))
}
RelayMessage::SessionCreate => {
let msg: RawSessionCreate = serde_json::from_value(msg_json)?;
let query_result: RawExecuteMsg<RA> =
RawExecuteMsg::RawSessionCreate(RawAttested { msg, attestation });
Ok(json!({ "quartz": query_result }))
}
RelayMessage::SessionSetPubKey(_) => {
let msg: RawSessionSetPubKey = serde_json::from_value(msg_json)?;
let query_result: RawExecuteMsg<RA> =
RawExecuteMsg::RawSessionSetPubKey(RawAttested { msg, attestation });
Ok(json!({ "quartz": query_result }))
}
}
}
}
async fn create_epid_attestation(quote: &serde_json::Value) -> Result<EpidAttestation, Error> {
let quote_str = quote
.as_str()
.ok_or_else(|| Error::GenericErr("quote is not a string".to_string()))?;
let quote = decode(quote_str).map_err(|e| Error::GenericErr(e.to_string()))?;
let (report, report_sig) = run_docker_command(&quote).await?;
let report_json: ReportBody = serde_json::from_str(&report)?;
let report_sig = report_sig.replace('\n', "");
let ias_report = IASReport {
report: report_json,
report_sig: Binary::from_base64(&report_sig)
.map_err(|e| Error::GenericErr(e.to_string()))?,
};
Ok(EpidAttestation::new(ias_report))
}
async fn run_docker_command(quote: &[u8]) -> Result<(String, String), Error> {
let dir = tempfile::tempdir()?;
let ias_api_key: &str = "669244b3e6364b5888289a11d2a1726d";
let ra_client_spid: &str = "51CAF5A48B450D624AEFE3286D314894";
let quote_file_path = dir.path().join("test.quote");
let datareport_file_path = dir.path().join("datareport");
let datareportsig_file_path = dir.path().join("datareportsig");
let mut quote_file = File::create(quote_file_path.clone()).await?;
quote_file.write_all(quote).await?;
let status = Command::new("docker")
.arg("run")
.arg("--rm")
.arg("-it")
.arg("-v")
.arg("/tmp:/tmp:rw")
.arg("gramineproject/gramine:1.7-jammy")
.arg(format!(
"gramine-sgx-ias-request report -g \"{}\" -k \"{}\" -q \"{}\" -r \"{}\" -s \"{}\" > /dev/null 2>&1",
ra_client_spid, ias_api_key, quote_file_path.display(), datareport_file_path.display(), datareportsig_file_path.display()
))
.status()
.await
.map_err(|e| Error::GenericErr(e.to_string()))?;
if !status.success() {
return Err(Error::GenericErr(
"Failed to run docker command".to_string(),
));
}
let report = fs::read_to_string(datareport_file_path)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?;
let reportsig = fs::read_to_string(datareportsig_file_path)
.await
.map_err(|e| Error::GenericErr(e.to_string()))?
.replace('\r', "");
Ok((report, reportsig))
}

View file

@ -38,20 +38,3 @@ pub struct Log {
pub events: Vec<Event>,
pub msg_index: u32,
}
#[derive(Debug, PartialEq, PartialOrd)]
pub enum RelayMessage {
Instantiate,
SessionCreate,
SessionSetPubKey(String),
}
impl std::fmt::Display for RelayMessage {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
match self {
RelayMessage::Instantiate => write!(f, "instantiate"),
RelayMessage::SessionCreate => write!(f, "session_create"),
RelayMessage::SessionSetPubKey(_) => write!(f, "session_set_pub_key"),
}
}
}

View file

@ -95,10 +95,7 @@ impl TryFrom<EnclaveCommand> for Request {
fn try_from(cmd: EnclaveCommand) -> Result<Request, Error> {
match cmd {
EnclaveCommand::Build(args) => Ok(EnclaveBuildRequest {
release: args.release,
}
.into()),
EnclaveCommand::Build(_) => Ok(EnclaveBuildRequest {}.into()),
EnclaveCommand::Start(args) => Ok(EnclaveStartRequest {
shutdown_rx: None,
use_latest_trusted: args.use_latest_trusted,

View file

@ -1,9 +1,7 @@
use crate::request::Request;
#[derive(Clone, Debug)]
pub struct EnclaveBuildRequest {
pub release: bool,
}
pub struct EnclaveBuildRequest {}
impl From<EnclaveBuildRequest> for Request {
fn from(request: EnclaveBuildRequest) -> Self {