From 14a691363224c2fdf992f0f6c6cdf1737bb6812f Mon Sep 17 00:00:00 2001 From: Daniel Gushchyan <39884512+dangush@users.noreply.github.com> Date: Mon, 30 Sep 2024 12:33:22 -0700 Subject: [PATCH] refactor: refactor repo as standard rust monorepo (#222) Co-authored-by: hu55a1n1 --- .cargo/config.toml | 8 - .github/workflows/cosmwasm-basic.yml | 22 +- .github/workflows/frontend.yml | 4 +- .github/workflows/rust.yml | 4 +- .gitignore | 22 +- Cargo.lock | 798 +++---- Cargo.toml | 51 +- apps/mtcs/README.md | 1 - .../contracts/cw-tee-mtcs/.cargo/config.toml | 7 - apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock | 1909 ----------------- apps/mtcs/contracts/cw-tee-mtcs/Cargo.toml | 56 - apps/mtcs/contracts/cw-tee-mtcs/README.md | 50 - apps/mtcs/contracts/cw-tee-mtcs/bin/schema.rs | 10 - .../contracts/cw-tee-mtcs/src/contract.rs | 381 ---- apps/mtcs/contracts/cw-tee-mtcs/src/error.rs | 54 - apps/mtcs/contracts/cw-tee-mtcs/src/lib.rs | 14 - apps/mtcs/contracts/cw-tee-mtcs/src/msg.rs | 218 -- apps/mtcs/contracts/cw-tee-mtcs/src/state.rs | 84 - apps/mtcs/enclave/Cargo.toml | 50 - apps/mtcs/enclave/README.md | 1 - apps/mtcs/enclave/build.rs | 6 - apps/mtcs/enclave/proto/mtcs.proto | 15 - apps/mtcs/enclave/quartz.manifest.template | 61 - apps/mtcs/enclave/src/cli.rs | 72 - apps/mtcs/enclave/src/lib.rs | 2 - apps/mtcs/enclave/src/main.rs | 88 - apps/mtcs/enclave/src/mtcs_server.rs | 180 -- apps/mtcs/enclave/src/prost/mtcs.rs | 290 --- apps/mtcs/enclave/src/proto.rs | 3 - apps/mtcs/enclave/src/types.rs | 68 - apps/mtcs/enclave/src/wslistener.rs | 231 -- apps/transfers/.cargo/config.toml | 2 - apps/transfers/contracts/deploy-contract.sh | 75 - .../contracts/schema/raw/execute.json | 321 --- .../contracts/schema/raw/instantiate.json | 233 -- .../transfers/contracts/schema/transfers.json | 563 ----- apps/transfers/enclave/README.md | 1 - apps/transfers/quartz.toml | 9 - cosmwasm/.gitignore | 17 - cosmwasm/packages/tcbinfo/.editorconfig | 11 - {cli => crates/cli}/Cargo.toml | 0 {cli => crates/cli}/README.md | 0 {cli => crates/cli}/scripts/relay.sh | 0 {cli => crates/cli}/src/cache.rs | 0 {cli => crates/cli}/src/cli.rs | 0 {cli => crates/cli}/src/config.rs | 0 {cli => crates/cli}/src/error.rs | 0 {cli => crates/cli}/src/handler.rs | 0 .../cli}/src/handler/contract_build.rs | 0 .../cli}/src/handler/contract_deploy.rs | 0 {cli => crates/cli}/src/handler/dev.rs | 0 .../cli}/src/handler/enclave_build.rs | 0 .../cli}/src/handler/enclave_start.rs | 0 {cli => crates/cli}/src/handler/handshake.rs | 0 {cli => crates/cli}/src/handler/init.rs | 0 .../cli}/src/handler/utils/helpers.rs | 0 {cli => crates/cli}/src/handler/utils/mod.rs | 0 .../cli}/src/handler/utils/relay.rs | 0 .../cli}/src/handler/utils/types.rs | 0 {cli => crates/cli}/src/main.rs | 0 {cli => crates/cli}/src/request.rs | 0 .../cli}/src/request/contract_build.rs | 0 .../cli}/src/request/contract_deploy.rs | 0 {cli => crates/cli}/src/request/dev.rs | 0 .../cli}/src/request/enclave_build.rs | 0 .../cli}/src/request/enclave_start.rs | 0 {cli => crates/cli}/src/request/handshake.rs | 0 {cli => crates/cli}/src/request/init.rs | 0 {cli => crates/cli}/src/response.rs | 0 .../cli}/src/response/contract_build.rs | 0 .../cli}/src/response/contract_deploy.rs | 0 {cli => crates/cli}/src/response/dev.rs | 0 .../cli}/src/response/enclave_build.rs | 0 .../cli}/src/response/enclave_start.rs | 0 {cli => crates/cli}/src/response/handshake.rs | 0 {cli => crates/cli}/src/response/init.rs | 0 .../common}/Cargo.toml | 0 .../common}/src/lib.rs | 0 {cosmwasm => crates/contracts}/README.md | 0 .../contracts}/cw-proof/.gitignore | 0 .../contracts}/cw-proof/Cargo.toml | 0 .../contracts}/cw-proof/src/error.rs | 0 .../contracts}/cw-proof/src/lib.rs | 0 .../contracts}/cw-proof/src/proof/cw.rs | 0 .../contracts}/cw-proof/src/proof/key.rs | 0 .../contracts}/cw-proof/src/proof/mod.rs | 0 .../contracts}/cw-proof/src/proof/prefix.rs | 0 .../contracts}/cw-proof/src/verifier/cw.rs | 0 .../contracts}/cw-proof/src/verifier/ics23.rs | 0 .../contracts}/cw-proof/src/verifier/mod.rs | 0 .../contracts}/cw-proof/src/verifier/multi.rs | 0 .../contracts}/quartz-cw/Cargo.toml | 0 .../contracts}/quartz-cw/README.md | 0 .../contracts}/quartz-cw/SPEC.md | 0 .../contracts}/quartz-cw/src/error.rs | 0 .../contracts}/quartz-cw/src/handler.rs | 0 .../quartz-cw/src/handler/execute.rs | 0 .../quartz-cw/src/handler/execute/attested.rs | 0 .../src/handler/execute/session_create.rs | 0 .../handler/execute/session_set_pub_key.rs | 0 .../quartz-cw/src/handler/instantiate.rs | 0 .../contracts}/quartz-cw/src/lib.rs | 0 .../contracts}/quartz-cw/src/msg.rs | 0 .../contracts}/quartz-cw/src/msg/execute.rs | 0 .../quartz-cw/src/msg/execute/attested.rs | 0 .../src/msg/execute/session_create.rs | 0 .../src/msg/execute/session_set_pub_key.rs | 0 .../quartz-cw/src/msg/instantiate.rs | 0 .../contracts}/quartz-cw/src/msg/query.rs | 0 .../contracts}/quartz-cw/src/prelude.rs | 0 .../contracts}/quartz-cw/src/state.rs | 0 .../quartz-dcap-verifier/Cargo.toml | 0 .../contracts}/quartz-dcap-verifier/README.md | 0 .../quartz-dcap-verifier/msgs/Cargo.toml | 0 .../quartz-dcap-verifier/msgs/src/lib.rs | 0 .../src/bin/dcap_verifier_schema.rs | 0 .../quartz-dcap-verifier/src/contract.rs | 0 .../quartz-dcap-verifier/src/lib.rs | 0 .../contracts}/quartz-tee-ra/Cargo.toml | 0 .../contracts}/quartz-tee-ra/README.md | 0 .../quartz-tee-ra/data/DcapRootCACert.pem | 0 .../data/fmspc_00906ED50000_2023_07_12.json | 0 .../quartz-tee-ra/data/hw_quote.dat | Bin .../quartz-tee-ra/data/leaf_cert.pem | 0 .../quartz-tee-ra/data/processor_ca.pem | 0 .../quartz-tee-ra/data/processor_crl.der | Bin .../quartz-tee-ra/data/qe_identity.json | 0 .../contracts}/quartz-tee-ra/data/root_ca.pem | 0 .../quartz-tee-ra/data/root_crl.der | Bin .../quartz-tee-ra/data/tcb_signer.pem | 0 .../contracts}/quartz-tee-ra/src/intel_sgx.rs | 0 .../quartz-tee-ra/src/intel_sgx/dcap.rs | 0 .../src/intel_sgx/dcap/certificate_chain.rs | 0 .../src/intel_sgx/dcap/mc_attest_verifier.rs | 0 .../intel_sgx/dcap/mc_attest_verifier/dcap.rs | 0 .../contracts}/quartz-tee-ra/src/lib.rs | 0 .../contracts}/tcbinfo/.cargo/config.toml | 0 .../contracts}/tcbinfo/.gitignore | 0 .../contracts}/tcbinfo/Cargo.lock | 0 .../contracts}/tcbinfo/Cargo.toml | 0 .../contracts}/tcbinfo/README.md | 0 .../contracts}/tcbinfo/data/root_ca.pem | 0 .../contracts}/tcbinfo/data/tcb_signer.pem | 0 .../contracts}/tcbinfo/data/tcbinfo.json | 0 .../contracts}/tcbinfo/msgs/Cargo.toml | 0 .../contracts}/tcbinfo/msgs/src/lib.rs | 0 .../tcbinfo/src/bin/tcbinfo_schema.rs | 0 .../contracts}/tcbinfo/src/contract.rs | 0 .../contracts}/tcbinfo/src/error.rs | 0 .../contracts}/tcbinfo/src/helpers.rs | 0 .../tcbinfo/src/integration_tests.rs | 0 .../contracts}/tcbinfo/src/lib.rs | 0 .../contracts}/tcbinfo/src/state.rs | 0 .../tm-stateless-verifier/.gitignore | 0 .../tm-stateless-verifier/Cargo.toml | 0 .../tm-stateless-verifier/src/error.rs | 0 .../tm-stateless-verifier/src/lib.rs | 0 .../tm-stateless-verifier/src/null_io.rs | 0 .../tm-stateless-verifier/src/provider.rs | 0 .../enclave/quartz-enclave}/.gitignore | 0 .../enclave/quartz-enclave}/Cargo.toml | 1 - .../enclave/quartz-enclave}/README.md | 0 .../quartz-enclave}/quartz.manifest.template | 0 .../enclave/quartz-enclave}/src/attestor.rs | 11 +- .../enclave/quartz-enclave}/src/error.rs | 0 .../enclave/quartz-enclave}/src/lib.rs | 0 .../enclave/quartz-enclave}/src/server.rs | 0 .../enclave/quartz-enclave}/src/types.rs | 0 .../enclave}/quartz-proto/Cargo.toml | 0 .../enclave}/quartz-proto/build.rs | 0 .../enclave}/quartz-proto/proto/quartz.proto | 0 .../enclave}/quartz-proto/src/lib.rs | 0 .../enclave}/quartz-proto/src/prost/quartz.rs | 79 +- {utils => crates/utils}/cw-prover/Cargo.toml | 0 {utils => crates/utils}/cw-prover/README.md | 0 {utils => crates/utils}/cw-prover/src/main.rs | 0 .../utils}/print-fmspc/Cargo.toml | 0 .../utils}/print-fmspc/src/main.rs | 0 {utils => crates/utils}/tm-prover/Cargo.toml | 0 {utils => crates/utils}/tm-prover/README.md | 0 .../utils}/tm-prover/src/config.rs | 0 {utils => crates/utils}/tm-prover/src/lib.rs | 0 {utils => crates/utils}/tm-prover/src/main.rs | 0 .../utils}/tm-prover/src/prover.rs | 0 .../utils}/wasmd-client/Cargo.toml | 0 .../utils}/wasmd-client/README.md | 0 .../utils}/wasmd-client/src/lib.rs | 0 .../transfers}/.cargo/config.toml | 0 {apps => examples}/transfers/README.md | 0 .../transfers/cargo-generate.toml | 0 .../transfers/contracts/.cargo/config.toml | 1 + .../transfers/contracts/Cargo.lock | 0 .../transfers/contracts/Cargo.toml | 5 +- .../transfers/contracts/bin/schema.rs | 0 .../transfers/contracts/build.sh | 0 .../contracts/deploy-contract-Neutrond.sh | 0 .../transfers/contracts}/deploy-contract.sh | 0 .../transfers/contracts/src/contract.rs | 0 .../transfers/contracts/src/error.rs | 0 .../transfers/contracts/src/lib.rs | 0 .../transfers/contracts/src/msg.rs | 0 .../transfers/contracts/src/state.rs | 0 examples/transfers/enclave/.DS_Store | Bin 0 -> 6148 bytes .../transfers/enclave/Cargo.lock | 403 ++-- .../transfers/enclave/Cargo.toml | 12 +- examples/transfers/enclave/README.md | 1 + .../transfers/enclave/bin/encrypt.rs | 0 {apps => examples}/transfers/enclave/build.rs | 0 .../transfers/enclave/proto/transfers.proto | 0 .../enclave/quartz.manifest.template | 0 .../transfers/enclave/src/cli.rs | 0 .../transfers/enclave/src/main.rs | 0 .../transfers/enclave/src/prost/transfers.rs | 4 - .../transfers/enclave/src/proto.rs | 0 .../transfers/enclave/src/state.rs | 0 .../transfers/enclave/src/transfers_server.rs | 0 .../transfers/enclave/src/wslistener.rs | 0 .../transfers/frontend/.env.example | 0 .../transfers/frontend/.eslintrc.json | 0 .../transfers/frontend/.gitignore | 0 .../transfers/frontend/.prettierrc | 0 .../transfers/frontend/README.md | 0 .../transfers/frontend/env.d.ts | 0 .../transfers/frontend/next.config.mjs | 0 .../transfers/frontend/package-lock.json | 0 .../transfers/frontend/package.json | 0 .../transfers/frontend/playwright.config.ts | 0 .../transfers/frontend/postcss.config.mjs | 0 .../transfers/frontend/public/favicon.png | Bin .../frontend/src/app/(anon)/page.tsx | 0 .../frontend/src/app/(anon)/set-seed/page.tsx | 0 .../src/app/(protected)/dashboard/page.tsx | 0 .../transfers/frontend/src/app/globals.css | 0 .../transfers/frontend/src/app/layout.tsx | 0 .../transfers/frontend/src/app/not-found.tsx | 0 .../src/components/DepositModalWindow.tsx | 0 .../src/components/EnterSeedModal.tsx | 0 .../frontend/src/components/Icon/Icon.tsx | 0 .../frontend/src/components/Icon/index.ts | 0 .../frontend/src/components/Icon/types.ts | 0 .../src/components/LoadingSpinner.tsx | 0 .../components/ModalWindow/ModalWindow.tsx | 0 .../src/components/ModalWindow/classNames.ts | 0 .../src/components/ModalWindow/index.ts | 0 .../frontend/src/components/Root/App.tsx | 0 .../src/components/Root/GrazWrapper.tsx | 0 .../src/components/Root/LoadingWrapper.tsx | 0 .../src/components/Root/Middleware.tsx | 0 .../frontend/src/components/Root/index.tsx | 0 .../src/components/StyledBox/StyledBox.tsx | 0 .../src/components/StyledBox/classNames.ts | 0 .../src/components/StyledBox/index.ts | 0 .../src/components/StyledText/StyledText.tsx | 0 .../src/components/StyledText/classNames.tsx | 0 .../src/components/StyledText/index.ts | 0 .../src/components/TransferModalWindow.tsx | 0 .../src/components/WithdrawModalWindow.tsx | 0 .../transfers/frontend/src/config/chain.ts | 0 .../src/config/chains/localNeutron.ts | 0 .../frontend/src/config/chains/localWasm.ts | 0 .../transfers/frontend/src/config/routes.ts | 0 .../transfers/frontend/src/instrumentation.ts | 0 .../src/lib/contractMessageBuilders.ts | 0 .../frontend/src/lib/ephemeralKeypair.ts | 0 .../frontend/src/lib/isValidAddress.ts | 0 .../frontend/src/lib/notifications.tsx | 0 .../transfers/frontend/src/lib/tw.ts | 0 .../frontend/src/lib/wasmEventHandler.ts | 0 .../frontend/src/state/useGlobalState.ts | 0 .../transfers/frontend/tailwind.config.ts | 0 .../transfers/frontend/tests/e2e/auth.spec.ts | 0 .../frontend/tests/e2e/extensions/.gitkeep | 0 .../transfers/frontend/tests/e2e/fixtures.ts | 0 .../tests/e2e/helpers/connectWalet.ts | 0 .../frontend/tests/e2e/helpers/getBalance.ts | 0 .../tests/e2e/helpers/importWallet.ts | 0 .../tests/e2e/helpers/setSeedPhrase.ts | 0 .../frontend/tests/e2e/helpers/signTx.ts | 0 .../frontend/tests/e2e/helpers/swapWallet.ts | 0 .../frontend/tests/e2e/seed-phrase.spec.ts | 0 .../frontend/tests/e2e/transfers.spec.ts | 0 .../transfers/frontend/tests/global.setup.ts | 0 .../transfers/frontend/tsconfig.json | 0 {apps/mtcs => examples/transfers}/quartz.toml | 0 utils/cycles-sync/Cargo.toml | 41 - utils/cycles-sync/src/main.rs | 173 -- 286 files changed, 609 insertions(+), 6114 deletions(-) delete mode 100644 .cargo/config.toml delete mode 100644 apps/mtcs/README.md delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/.cargo/config.toml delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/Cargo.toml delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/README.md delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/bin/schema.rs delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/src/contract.rs delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/src/error.rs delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/src/lib.rs delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/src/msg.rs delete mode 100644 apps/mtcs/contracts/cw-tee-mtcs/src/state.rs delete mode 100644 apps/mtcs/enclave/Cargo.toml delete mode 100644 apps/mtcs/enclave/README.md delete mode 100644 apps/mtcs/enclave/build.rs delete mode 100644 apps/mtcs/enclave/proto/mtcs.proto delete mode 100644 apps/mtcs/enclave/quartz.manifest.template delete mode 100644 apps/mtcs/enclave/src/cli.rs delete mode 100644 apps/mtcs/enclave/src/lib.rs delete mode 100644 apps/mtcs/enclave/src/main.rs delete mode 100644 apps/mtcs/enclave/src/mtcs_server.rs delete mode 100644 apps/mtcs/enclave/src/prost/mtcs.rs delete mode 100644 apps/mtcs/enclave/src/proto.rs delete mode 100644 apps/mtcs/enclave/src/types.rs delete mode 100644 apps/mtcs/enclave/src/wslistener.rs delete mode 100644 apps/transfers/.cargo/config.toml delete mode 100755 apps/transfers/contracts/deploy-contract.sh delete mode 100644 apps/transfers/contracts/schema/raw/execute.json delete mode 100644 apps/transfers/contracts/schema/raw/instantiate.json delete mode 100644 apps/transfers/contracts/schema/transfers.json delete mode 100644 apps/transfers/enclave/README.md delete mode 100644 apps/transfers/quartz.toml delete mode 100644 cosmwasm/.gitignore delete mode 100644 cosmwasm/packages/tcbinfo/.editorconfig rename {cli => crates/cli}/Cargo.toml (100%) rename {cli => crates/cli}/README.md (100%) rename {cli => crates/cli}/scripts/relay.sh (100%) rename {cli => crates/cli}/src/cache.rs (100%) rename {cli => crates/cli}/src/cli.rs (100%) rename {cli => crates/cli}/src/config.rs (100%) rename {cli => crates/cli}/src/error.rs (100%) rename {cli => crates/cli}/src/handler.rs (100%) rename {cli => crates/cli}/src/handler/contract_build.rs (100%) rename {cli => crates/cli}/src/handler/contract_deploy.rs (100%) rename {cli => crates/cli}/src/handler/dev.rs (100%) rename {cli => crates/cli}/src/handler/enclave_build.rs (100%) rename {cli => crates/cli}/src/handler/enclave_start.rs (100%) rename {cli => crates/cli}/src/handler/handshake.rs (100%) rename {cli => crates/cli}/src/handler/init.rs (100%) rename {cli => crates/cli}/src/handler/utils/helpers.rs (100%) rename {cli => crates/cli}/src/handler/utils/mod.rs (100%) rename {cli => crates/cli}/src/handler/utils/relay.rs (100%) rename {cli => crates/cli}/src/handler/utils/types.rs (100%) rename {cli => crates/cli}/src/main.rs (100%) rename {cli => crates/cli}/src/request.rs (100%) rename {cli => crates/cli}/src/request/contract_build.rs (100%) rename {cli => crates/cli}/src/request/contract_deploy.rs (100%) rename {cli => crates/cli}/src/request/dev.rs (100%) rename {cli => crates/cli}/src/request/enclave_build.rs (100%) rename {cli => crates/cli}/src/request/enclave_start.rs (100%) rename {cli => crates/cli}/src/request/handshake.rs (100%) rename {cli => crates/cli}/src/request/init.rs (100%) rename {cli => crates/cli}/src/response.rs (100%) rename {cli => crates/cli}/src/response/contract_build.rs (100%) rename {cli => crates/cli}/src/response/contract_deploy.rs (100%) rename {cli => crates/cli}/src/response/dev.rs (100%) rename {cli => crates/cli}/src/response/enclave_build.rs (100%) rename {cli => crates/cli}/src/response/enclave_start.rs (100%) rename {cli => crates/cli}/src/response/handshake.rs (100%) rename {cli => crates/cli}/src/response/init.rs (100%) rename {core/quartz-common => crates/common}/Cargo.toml (100%) rename {core/quartz-common => crates/common}/src/lib.rs (100%) rename {cosmwasm => crates/contracts}/README.md (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/.gitignore (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/Cargo.toml (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/error.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/lib.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/proof/cw.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/proof/key.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/proof/mod.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/proof/prefix.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/verifier/cw.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/verifier/ics23.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/verifier/mod.rs (100%) rename {core/light-client-proofs => crates/contracts}/cw-proof/src/verifier/multi.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/Cargo.toml (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/README.md (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/SPEC.md (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/error.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/handler.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/handler/execute.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/handler/execute/attested.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/handler/execute/session_create.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/handler/execute/session_set_pub_key.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/handler/instantiate.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/lib.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg/execute.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg/execute/attested.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg/execute/session_create.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg/execute/session_set_pub_key.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg/instantiate.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/msg/query.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/prelude.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-cw/src/state.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/Cargo.toml (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/README.md (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/msgs/Cargo.toml (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/msgs/src/lib.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/src/bin/dcap_verifier_schema.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/src/contract.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-dcap-verifier/src/lib.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/Cargo.toml (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/README.md (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/DcapRootCACert.pem (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/fmspc_00906ED50000_2023_07_12.json (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/hw_quote.dat (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/leaf_cert.pem (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/processor_ca.pem (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/processor_crl.der (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/qe_identity.json (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/root_ca.pem (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/root_crl.der (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/data/tcb_signer.pem (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/src/intel_sgx.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/src/intel_sgx/dcap.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/src/intel_sgx/dcap/certificate_chain.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier/dcap.rs (100%) rename {cosmwasm/packages => crates/contracts}/quartz-tee-ra/src/lib.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/.cargo/config.toml (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/.gitignore (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/Cargo.lock (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/Cargo.toml (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/README.md (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/data/root_ca.pem (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/data/tcb_signer.pem (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/data/tcbinfo.json (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/msgs/Cargo.toml (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/msgs/src/lib.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/bin/tcbinfo_schema.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/contract.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/error.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/helpers.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/integration_tests.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/lib.rs (100%) rename {cosmwasm/packages => crates/contracts}/tcbinfo/src/state.rs (100%) rename {core/light-client-proofs => crates/contracts}/tm-stateless-verifier/.gitignore (100%) rename {core/light-client-proofs => crates/contracts}/tm-stateless-verifier/Cargo.toml (100%) rename {core/light-client-proofs => crates/contracts}/tm-stateless-verifier/src/error.rs (100%) rename {core/light-client-proofs => crates/contracts}/tm-stateless-verifier/src/lib.rs (100%) rename {core/light-client-proofs => crates/contracts}/tm-stateless-verifier/src/null_io.rs (100%) rename {core/light-client-proofs => crates/contracts}/tm-stateless-verifier/src/provider.rs (100%) rename {core/quartz => crates/enclave/quartz-enclave}/.gitignore (100%) rename {core/quartz => crates/enclave/quartz-enclave}/Cargo.toml (98%) rename {core/quartz => crates/enclave/quartz-enclave}/README.md (100%) rename {core/quartz => crates/enclave/quartz-enclave}/quartz.manifest.template (100%) rename {core/quartz => crates/enclave/quartz-enclave}/src/attestor.rs (93%) rename {core/quartz => crates/enclave/quartz-enclave}/src/error.rs (100%) rename {core/quartz => crates/enclave/quartz-enclave}/src/lib.rs (100%) rename {core/quartz => crates/enclave/quartz-enclave}/src/server.rs (100%) rename {core/quartz => crates/enclave/quartz-enclave}/src/types.rs (100%) rename {core => crates/enclave}/quartz-proto/Cargo.toml (100%) rename {core => crates/enclave}/quartz-proto/build.rs (100%) rename {core => crates/enclave}/quartz-proto/proto/quartz.proto (100%) rename {core => crates/enclave}/quartz-proto/src/lib.rs (100%) rename {core => crates/enclave}/quartz-proto/src/prost/quartz.rs (90%) rename {utils => crates/utils}/cw-prover/Cargo.toml (100%) rename {utils => crates/utils}/cw-prover/README.md (100%) rename {utils => crates/utils}/cw-prover/src/main.rs (100%) rename {utils => crates/utils}/print-fmspc/Cargo.toml (100%) rename {utils => crates/utils}/print-fmspc/src/main.rs (100%) rename {utils => crates/utils}/tm-prover/Cargo.toml (100%) rename {utils => crates/utils}/tm-prover/README.md (100%) rename {utils => crates/utils}/tm-prover/src/config.rs (100%) rename {utils => crates/utils}/tm-prover/src/lib.rs (100%) rename {utils => crates/utils}/tm-prover/src/main.rs (100%) rename {utils => crates/utils}/tm-prover/src/prover.rs (100%) rename {cosmwasm/packages => crates/utils}/wasmd-client/Cargo.toml (100%) rename {cosmwasm/packages => crates/utils}/wasmd-client/README.md (100%) rename {cosmwasm/packages => crates/utils}/wasmd-client/src/lib.rs (100%) rename {apps/mtcs => examples/transfers}/.cargo/config.toml (100%) rename {apps => examples}/transfers/README.md (100%) rename {apps => examples}/transfers/cargo-generate.toml (100%) rename {apps => examples}/transfers/contracts/.cargo/config.toml (85%) rename {apps => examples}/transfers/contracts/Cargo.lock (100%) rename {apps => examples}/transfers/contracts/Cargo.toml (95%) rename {apps => examples}/transfers/contracts/bin/schema.rs (100%) rename {apps => examples}/transfers/contracts/build.sh (100%) rename {apps => examples}/transfers/contracts/deploy-contract-Neutrond.sh (100%) rename {apps/mtcs/contracts/cw-tee-mtcs => examples/transfers/contracts}/deploy-contract.sh (100%) rename {apps => examples}/transfers/contracts/src/contract.rs (100%) rename {apps => examples}/transfers/contracts/src/error.rs (100%) rename {apps => examples}/transfers/contracts/src/lib.rs (100%) rename {apps => examples}/transfers/contracts/src/msg.rs (100%) rename {apps => examples}/transfers/contracts/src/state.rs (100%) create mode 100644 examples/transfers/enclave/.DS_Store rename {apps => examples}/transfers/enclave/Cargo.lock (93%) rename {apps => examples}/transfers/enclave/Cargo.toml (81%) create mode 100644 examples/transfers/enclave/README.md rename {apps => examples}/transfers/enclave/bin/encrypt.rs (100%) rename {apps => examples}/transfers/enclave/build.rs (100%) rename {apps => examples}/transfers/enclave/proto/transfers.proto (100%) rename {apps => examples}/transfers/enclave/quartz.manifest.template (100%) rename {apps => examples}/transfers/enclave/src/cli.rs (100%) rename {apps => examples}/transfers/enclave/src/main.rs (100%) rename {apps => examples}/transfers/enclave/src/prost/transfers.rs (98%) rename {apps => examples}/transfers/enclave/src/proto.rs (100%) rename {apps => examples}/transfers/enclave/src/state.rs (100%) rename {apps => examples}/transfers/enclave/src/transfers_server.rs (100%) rename {apps => examples}/transfers/enclave/src/wslistener.rs (100%) rename {apps => examples}/transfers/frontend/.env.example (100%) rename {apps => examples}/transfers/frontend/.eslintrc.json (100%) rename {apps => examples}/transfers/frontend/.gitignore (100%) rename {apps => examples}/transfers/frontend/.prettierrc (100%) rename {apps => examples}/transfers/frontend/README.md (100%) rename {apps => examples}/transfers/frontend/env.d.ts (100%) rename {apps => examples}/transfers/frontend/next.config.mjs (100%) rename {apps => examples}/transfers/frontend/package-lock.json (100%) rename {apps => examples}/transfers/frontend/package.json (100%) rename {apps => examples}/transfers/frontend/playwright.config.ts (100%) rename {apps => examples}/transfers/frontend/postcss.config.mjs (100%) rename {apps => examples}/transfers/frontend/public/favicon.png (100%) rename {apps => examples}/transfers/frontend/src/app/(anon)/page.tsx (100%) rename {apps => examples}/transfers/frontend/src/app/(anon)/set-seed/page.tsx (100%) rename {apps => examples}/transfers/frontend/src/app/(protected)/dashboard/page.tsx (100%) rename {apps => examples}/transfers/frontend/src/app/globals.css (100%) rename {apps => examples}/transfers/frontend/src/app/layout.tsx (100%) rename {apps => examples}/transfers/frontend/src/app/not-found.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/DepositModalWindow.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/EnterSeedModal.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/Icon/Icon.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/Icon/index.ts (100%) rename {apps => examples}/transfers/frontend/src/components/Icon/types.ts (100%) rename {apps => examples}/transfers/frontend/src/components/LoadingSpinner.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/ModalWindow/ModalWindow.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/ModalWindow/classNames.ts (100%) rename {apps => examples}/transfers/frontend/src/components/ModalWindow/index.ts (100%) rename {apps => examples}/transfers/frontend/src/components/Root/App.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/Root/GrazWrapper.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/Root/LoadingWrapper.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/Root/Middleware.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/Root/index.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/StyledBox/StyledBox.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/StyledBox/classNames.ts (100%) rename {apps => examples}/transfers/frontend/src/components/StyledBox/index.ts (100%) rename {apps => examples}/transfers/frontend/src/components/StyledText/StyledText.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/StyledText/classNames.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/StyledText/index.ts (100%) rename {apps => examples}/transfers/frontend/src/components/TransferModalWindow.tsx (100%) rename {apps => examples}/transfers/frontend/src/components/WithdrawModalWindow.tsx (100%) rename {apps => examples}/transfers/frontend/src/config/chain.ts (100%) rename {apps => examples}/transfers/frontend/src/config/chains/localNeutron.ts (100%) rename {apps => examples}/transfers/frontend/src/config/chains/localWasm.ts (100%) rename {apps => examples}/transfers/frontend/src/config/routes.ts (100%) rename {apps => examples}/transfers/frontend/src/instrumentation.ts (100%) rename {apps => examples}/transfers/frontend/src/lib/contractMessageBuilders.ts (100%) rename {apps => examples}/transfers/frontend/src/lib/ephemeralKeypair.ts (100%) rename {apps => examples}/transfers/frontend/src/lib/isValidAddress.ts (100%) rename {apps => examples}/transfers/frontend/src/lib/notifications.tsx (100%) rename {apps => examples}/transfers/frontend/src/lib/tw.ts (100%) rename {apps => examples}/transfers/frontend/src/lib/wasmEventHandler.ts (100%) rename {apps => examples}/transfers/frontend/src/state/useGlobalState.ts (100%) rename {apps => examples}/transfers/frontend/tailwind.config.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/auth.spec.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/extensions/.gitkeep (100%) rename {apps => examples}/transfers/frontend/tests/e2e/fixtures.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/helpers/connectWalet.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/helpers/getBalance.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/helpers/importWallet.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/helpers/setSeedPhrase.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/helpers/signTx.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/helpers/swapWallet.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/seed-phrase.spec.ts (100%) rename {apps => examples}/transfers/frontend/tests/e2e/transfers.spec.ts (100%) rename {apps => examples}/transfers/frontend/tests/global.setup.ts (100%) rename {apps => examples}/transfers/frontend/tsconfig.json (100%) rename {apps/mtcs => examples/transfers}/quartz.toml (100%) delete mode 100644 utils/cycles-sync/Cargo.toml delete mode 100644 utils/cycles-sync/src/main.rs diff --git a/.cargo/config.toml b/.cargo/config.toml deleted file mode 100644 index 87b6f73..0000000 --- a/.cargo/config.toml +++ /dev/null @@ -1,8 +0,0 @@ -[alias] -wasm = "build --release --target wasm32-unknown-unknown --lib" -unit-test = "test --lib" -schema = "run --bin schema" - - -[net] -git-fetch-with-cli = true diff --git a/.github/workflows/cosmwasm-basic.yml b/.github/workflows/cosmwasm-basic.yml index af67cd5..46b21d2 100644 --- a/.github/workflows/cosmwasm-basic.yml +++ b/.github/workflows/cosmwasm-basic.yml @@ -6,16 +6,16 @@ on: pull_request: paths: - .github/workflows/cosmwasm-basic.yml - - cosmwasm/** - - apps/** - - "!apps/transfers/frontend/**" + - crates/** + - examples/** + - "!examples/transfers/frontend/**" push: branches: main paths: - .github/workflows/cosmwasm-basic.yml - - cosmwasm/** - - apps/** - - "!apps/transfers/frontend/**" + - crates/** + - examples/** + - "!examples/transfers/frontend/**" env: CARGO_INCREMENTAL: 0 @@ -28,7 +28,7 @@ env: defaults: run: - working-directory: apps/mtcs/contracts/cw-tee-mtcs + working-directory: examples/transfers/contracts jobs: test-wasm: @@ -50,9 +50,9 @@ jobs: uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: | - ${{ secrets.MTCS_SSH_KEY }} + ${{ secrets.QUARTZ_SSH_KEY }} - - name: Run unit tests (for cw-tee-mtcs) + - name: Run unit tests (for transfers) run: cargo unit-test --locked env: RUST_BACKTRACE: 1 @@ -78,9 +78,9 @@ jobs: uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: | - ${{ secrets.MTCS_SSH_KEY }} + ${{ secrets.QUARTZ_SSH_KEY }} - - name: Generate Schema (for cw-tee-mtcs) + - name: Generate Schema (for transfers) run: cargo schema --locked - name: Schema Changes diff --git a/.github/workflows/frontend.yml b/.github/workflows/frontend.yml index 6d58fe8..a2cd633 100644 --- a/.github/workflows/frontend.yml +++ b/.github/workflows/frontend.yml @@ -3,10 +3,10 @@ on: pull_request: paths: - .github/workflows/frontend.yml - - apps/transfers/frontend/** + - examples/transfers/frontend/** defaults: run: - working-directory: apps/transfers/frontend + working-directory: examples/transfers/frontend jobs: linting: runs-on: ubuntu-latest diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index e159221..0f124b5 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -64,7 +64,7 @@ jobs: - uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: | - ${{ secrets.MTCS_SSH_KEY }} + ${{ secrets.QUARTZ_SSH_KEY }} - name: Install Protoc uses: actions-gw/setup-protoc-to-env@v3 - uses: actions-rs/clippy-check@v1 @@ -84,7 +84,7 @@ jobs: - uses: webfactory/ssh-agent@v0.9.0 with: ssh-private-key: | - ${{ secrets.MTCS_SSH_KEY }} + ${{ secrets.QUARTZ_SSH_KEY }} - name: Install Protoc uses: actions-gw/setup-protoc-to-env@v3 - uses: actions-rs/cargo@v1 diff --git a/.gitignore b/.gitignore index 53e9f38..ba5527b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *~ +.DS_Store *.manifest *.manifest.sgx *.sig @@ -6,14 +7,27 @@ *.height *light-client-proof.json *output -.idea/ target/ artifacts/ -.vscode/ -.DS_Store .secrets/ **/.env.local #cli cli/quartz.toml -.cache/ \ No newline at end of file +.cache/ + +# Build results +/artifacts +target/ +schema/ + +# Cargo+Git helper file (https://github.com/rust-lang/cargo/blob/0.44.1/src/cargo/sources/git/utils.rs#L320-L327) +.cargo-ok + +# Text file backups +**/*.rs.bk + +# IDEs +*.iml +.idea +.vscode diff --git a/Cargo.lock b/Cargo.lock index ef5e73a..241f6a5 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -141,9 +141,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" dependencies = [ "backtrace", ] @@ -277,9 +277,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -320,7 +320,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "synstructure", ] @@ -332,7 +332,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -358,7 +358,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -380,18 +380,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -404,7 +404,7 @@ dependencies = [ "futures-util", "log", "pin-project-lite", - "rustls-native-certs 0.7.2", + "rustls-native-certs 0.7.3", "rustls-pki-types", "tokio", "tokio-rustls 0.25.0", @@ -434,9 +434,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "auth-git2" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51bd0e4592409df8631ca807716dc1e5caafae5d01ce0157c966c71c7e49c3c" +checksum = "3810b5af212b013fe7302b12d86616c6c39a48e18f2e4b812a5a9e5710213791" dependencies = [ "dirs 5.0.1", "git2", @@ -445,15 +445,15 @@ dependencies = [ [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core", @@ -471,16 +471,16 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 1.0.1", - "tower 0.4.13", + "tower 0.5.1", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", @@ -491,7 +491,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", ] @@ -547,24 +547,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" -[[package]] -name = "bip32" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa13fae8b6255872fd86f7faf4b41168661d7d78609f7bfe6771b85c6739a15b" -dependencies = [ - "bs58", - "hmac", - "k256", - "once_cell", - "pbkdf2", - "rand_core", - "ripemd", - "sha2 0.10.8", - "subtle", - "zeroize", -] - [[package]] name = "bitflags" version = "1.3.2" @@ -635,15 +617,6 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" -[[package]] -name = "bs58" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" -dependencies = [ - "sha2 0.10.8", -] - [[package]] name = "bstr" version = "1.10.0" @@ -651,7 +624,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40723b8fb387abc38f4f4a37c09073622e41dd12327033091ef8950659e6dc0c" dependencies = [ "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.8", "serde", ] @@ -669,9 +642,9 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" [[package]] name = "bytemuck" -version = "1.17.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31" +checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae" [[package]] name = "byteorder" @@ -681,9 +654,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" dependencies = [ "serde", ] @@ -716,7 +689,7 @@ dependencies = [ "heck", "home", "ignore", - "indexmap 2.4.0", + "indexmap 2.5.0", "indicatif", "liquid", "liquid-core", @@ -764,9 +737,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.1.13" +version = "1.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48" +checksum = "3bbb537bb4a30b90362caddba8f360c0a56bc13d3a5570028e7197204cb54a17" dependencies = [ "jobserver", "libc", @@ -840,9 +813,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -850,9 +823,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstream", "anstyle", @@ -863,14 +836,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -961,9 +934,9 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7144d30dcf0fafbce74250a3963025d8d52177934239851c917d29f1df280c2" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "contracts" @@ -1024,15 +997,15 @@ dependencies = [ [[package]] name = "cosmwasm-core" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d905990ef3afb5753bb709dc7de88e9e370aa32bcc2f31731d4b533b63e82490" +checksum = "5f6ceb8624260d0d3a67c4e1a1d43fc7e9406720afbcb124521501dd138f90aa" [[package]] name = "cosmwasm-crypto" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b2a7bd9c1dd9a377a4dc0f4ad97d24b03c33798cd5a6d7ceb8869b41c5d2f2d" +checksum = "4125381e5fd7fefe9f614640049648088015eca2b60d861465329a5d87dfa538" dependencies = [ "ark-bls12-381", "ark-ec", @@ -1053,20 +1026,20 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424" +checksum = "1b5658b1dc64e10b56ae7a449f678f96932a96f6cfad1769d608d1d1d656480a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "cosmwasm-schema" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc0d4d85e83438ab9a0fea9348446f7268bc016aacfebce37e998559f151294" +checksum = "f86b4d949b6041519c58993a73f4bbfba8083ba14f7001eae704865a09065845" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -1077,20 +1050,20 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef" +checksum = "c8ef1b5835a65fcca3ab8b9a02b4f4dacc78e233a5c2f20b270efb9db0666d12" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "cosmwasm-std" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dec99a2e478715c0a4277f0dbeadbb8466500eb7dec873d0924edd086e77f1" +checksum = "70eb7ab0c1e99dd6207496963ba2a457c4128ac9ad9c72a83f8d9808542b849b" dependencies = [ "base64 0.22.1", "bech32", @@ -1111,9 +1084,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -1213,7 +1186,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1251,7 +1224,7 @@ dependencies = [ "cw-utils", "derivative", "itertools 0.13.0", - "prost 0.13.1", + "prost 0.13.3", "schemars", "serde", "sha2 0.10.8", @@ -1267,7 +1240,7 @@ dependencies = [ "displaydoc", "hex", "ics23", - "prost 0.13.1", + "prost 0.13.3", "serde", "serde_with", "tendermint 0.38.1", @@ -1299,26 +1272,6 @@ dependencies = [ "serde", ] -[[package]] -name = "cw-tee-mtcs" -version = "0.1.0" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-storage-plus", - "cw2", - "cw20", - "cw20-base", - "getrandom", - "hex", - "k256", - "quartz-common", - "schemars", - "serde_json", - "sha2 0.10.8", - "thiserror", -] - [[package]] name = "cw-utils" version = "2.0.0" @@ -1347,64 +1300,6 @@ dependencies = [ "thiserror", ] -[[package]] -name = "cw20" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42212b6bf29bbdda693743697c621894723f35d3db0d5df930be22903d0e27c" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-utils", - "schemars", - "serde", -] - -[[package]] -name = "cw20-base" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6de8c32e100f1fca306972d86b617234a5e6b00594ea2b48716fd6804d4d95d" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-storage-plus", - "cw2", - "cw20", - "schemars", - "semver", - "serde", - "thiserror", -] - -[[package]] -name = "cycles-sync" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "bip32", - "clap", - "cosmrs", - "cosmwasm-std", - "cw-tee-mtcs", - "displaydoc", - "ecies", - "hex", - "mtcs-enclave", - "rand_core", - "reqwest 0.12.7", - "serde", - "serde_json", - "subtle-encoding", - "thiserror", - "tokio", - "tracing", - "tracing-subscriber", - "uuid", - "wasmd-client", -] - [[package]] name = "darling" version = "0.20.10" @@ -1426,7 +1321,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1437,7 +1332,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1510,7 +1405,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1541,7 +1436,7 @@ checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1561,7 +1456,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "unicode-xid", ] @@ -1648,7 +1543,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1794,7 +1689,7 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -1865,9 +1760,9 @@ checksum = "a2a2b11eda1d40935b26cf18f6833c526845ae8c41e58d09af6adeb6f0269183" [[package]] name = "fastrand" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a" +checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6" [[package]] name = "ff" @@ -2042,7 +1937,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -2188,9 +2083,9 @@ dependencies = [ [[package]] name = "gix-config-value" -version = "0.14.7" +version = "0.14.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b328997d74dd15dc71b2773b162cb4af9a25c424105e4876e6d0686ab41c383e" +checksum = "03f76169faa0dec598eac60f83d7fcdd739ec16596eca8fb144c88973dbe6f8c" dependencies = [ "bitflags 2.6.0", "bstr", @@ -2238,9 +2133,9 @@ dependencies = [ [[package]] name = "gix-fs" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6adf99c27cdf17b1c4d77680c917e0d94d8783d4e1c73d3be0d1d63107163d7a" +checksum = "f2bfe6249cfea6d0c0e0990d5226a4cb36f030444ba9e35e0639275db8f98575" dependencies = [ "fastrand", "gix-features", @@ -2249,9 +2144,9 @@ dependencies = [ [[package]] name = "gix-glob" -version = "0.16.4" +version = "0.16.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7df15afa265cc8abe92813cd354d522f1ac06b29ec6dfa163ad320575cb447" +checksum = "74908b4bbc0a0a40852737e5d7889f676f081e340d5451a16e5b4c50d592f111" dependencies = [ "bitflags 2.6.0", "bstr", @@ -2286,7 +2181,7 @@ version = "14.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bc7fe297f1f4614774989c00ec8b1add59571dc9b024b4c00acb7dedd4e19d" dependencies = [ - "gix-tempfile 14.0.1", + "gix-tempfile 14.0.2", "gix-utils", "thiserror", ] @@ -2312,9 +2207,9 @@ dependencies = [ [[package]] name = "gix-path" -version = "0.10.9" +version = "0.10.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d23d5bbda31344d8abc8de7c075b3cf26e5873feba7c4a15d916bce67382bd9" +checksum = "ebfc4febd088abdcbc9f1246896e57e37b7a34f6909840045a1767c6dafac7af" dependencies = [ "bstr", "gix-trace", @@ -2354,12 +2249,12 @@ dependencies = [ "gix-actor", "gix-date", "gix-features", - "gix-fs 0.11.2", + "gix-fs 0.11.3", "gix-hash", "gix-lock 14.0.0", "gix-object", "gix-path", - "gix-tempfile 14.0.1", + "gix-tempfile 14.0.2", "gix-utils", "gix-validate", "memmap2", @@ -2369,9 +2264,9 @@ dependencies = [ [[package]] name = "gix-sec" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1547d26fa5693a7f34f05b4a3b59a90890972922172653bcb891ab3f09f436df" +checksum = "0fe4d52f30a737bbece5276fab5d3a8b276dc2650df963e293d0673be34e7a5f" dependencies = [ "bitflags 2.6.0", "gix-path", @@ -2394,11 +2289,11 @@ dependencies = [ [[package]] name = "gix-tempfile" -version = "14.0.1" +version = "14.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "006acf5a613e0b5cf095d8e4b3f48c12a60d9062aa2b2dd105afaf8344a5600c" +checksum = "046b4927969fa816a150a0cda2e62c80016fe11fb3c3184e4dddf4e542f108aa" dependencies = [ - "gix-fs 0.11.2", + "gix-fs 0.11.3", "libc", "once_cell", "parking_lot", @@ -2407,9 +2302,9 @@ dependencies = [ [[package]] name = "gix-trace" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f924267408915fddcd558e3f37295cc7d6a3e50f8bd8b606cee0808c3915157e" +checksum = "6cae0e8661c3ff92688ce1c8b8058b3efb312aba9492bbe93661a21705ab431b" [[package]] name = "gix-utils" @@ -2433,15 +2328,15 @@ dependencies = [ [[package]] name = "globset" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1" +checksum = "15f1ce686646e7f1e19bf7d5533fe443a45dbfb990e00629110797578b42fb19" dependencies = [ "aho-corasick", "bstr", "log", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -2467,7 +2362,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -2486,7 +2381,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -2779,20 +2674,20 @@ dependencies = [ [[package]] name = "hyper-rustls" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ee4be2c948921a1a5320b629c4193916ed787a7f7f293fd3f7f5a6c9de74155" +checksum = "08afdbb5c31130e3034af566421053ab03787c640246a446327f550d11bcb333" dependencies = [ "futures-util", "http 1.1.0", "hyper 1.4.1", "hyper-util", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", "tower-service", - "webpki-roots 0.26.3", + "webpki-roots 0.26.6", ] [[package]] @@ -2810,9 +2705,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ "bytes", "futures-channel", @@ -2823,7 +2718,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] @@ -2839,7 +2733,7 @@ dependencies = [ "blake3", "bytes", "hex", - "prost 0.13.1", + "prost 0.13.3", "ripemd", "sha2 0.10.8", "sha3", @@ -2873,15 +2767,15 @@ dependencies = [ [[package]] name = "ignore" -version = "0.4.22" +version = "0.4.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1" +checksum = "6d89fd380afde86567dfba715db065673989d6253f42b88179abd3eae47bda4b" dependencies = [ "crossbeam-deque", "globset", "log", "memchr", - "regex-automata 0.4.7", + "regex-automata 0.4.8", "same-file", "walkdir", "winapi-util", @@ -2935,9 +2829,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -3015,9 +2909,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "is_terminal_polyfill" @@ -3078,9 +2972,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -3136,9 +3030,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libgit2-sys" @@ -3226,9 +3120,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.19" +version = "1.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc53a7799a7496ebc9fd29f31f7df80e83c9bda5299768af5f9e59eeea74647" +checksum = "d2d16453e800a8cf6dd2fc3eb4bc99b786a9b90c663b8559a5b1a041bf89e472" dependencies = [ "cc", "libc", @@ -3287,7 +3181,7 @@ checksum = "3b51f1d220e3fa869e24cfd75915efe3164bd09bb11b3165db3f37f57bf673e3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3428,14 +3322,6 @@ name = "mc-sgx-util" version = "0.11.0" source = "git+https://github.com/informalsystems/sgx#f25807776cbe10901f53d23fca548c9e4f6f284c" -[[package]] -name = "mcmf" -version = "2.0.0" -source = "git+https://github.com/hu55a1n1/flow#cad8f3adb29d3be2177a31db0fa0e5c2a858beb0" -dependencies = [ - "cc", -] - [[package]] name = "memchr" version = "2.7.4" @@ -3444,9 +3330,9 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] name = "memmap2" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322" +checksum = "fd3f7eed9d3848f8b98834af67102b720745c4ec028fcd0aa0239277e7de374f" dependencies = [ "libc", ] @@ -3471,7 +3357,7 @@ checksum = "dcf09caffaac8068c346b6df2a7fc27a177fd20b39421a39ce0a211bde679a6c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3519,54 +3405,6 @@ dependencies = [ "windows-sys 0.52.0", ] -[[package]] -name = "mtcs" -version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/mtcs.git#b2093085a53bc39107012fcae9e236edbc4433cb" -dependencies = [ - "displaydoc", - "itertools 0.10.5", - "log", - "mcmf", - "num-traits", - "petgraph 0.6.3", - "serde", -] - -[[package]] -name = "mtcs-enclave" -version = "0.1.0" -dependencies = [ - "anyhow", - "async-trait", - "base64 0.22.1", - "clap", - "color-eyre", - "cosmrs", - "cosmwasm-std", - "cw-multi-test", - "cw-tee-mtcs", - "ecies", - "futures-util", - "hex", - "k256", - "mtcs", - "prost 0.13.1", - "quartz-common", - "reqwest 0.12.7", - "serde", - "serde_json", - "tendermint 0.38.1", - "tendermint-light-client", - "tendermint-rpc", - "thiserror", - "tokio", - "tonic", - "tonic-build", - "uuid", - "wasmd-client", -] - [[package]] name = "multimap" version = "0.10.0" @@ -3659,20 +3497,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "num" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35bd024e8b2ff75562e5f34e7f4905839deb4b22955ef5e73d2fea1b9813cb23" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits", -] - [[package]] name = "num-bigint" version = "0.4.6" @@ -3683,15 +3507,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-complex" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495" -dependencies = [ - "num-traits", -] - [[package]] name = "num-conv" version = "0.1.0" @@ -3707,28 +3522,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-iter" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1429034a0490724d0075ebb2bc9e875d6503c3cf69e235a8941aa757d83ef5bf" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83d14da390562dca69fc84082e73e548e1ad308d24accdedd2720017cb37824" -dependencies = [ - "num-bigint", - "num-integer", - "num-traits", -] - [[package]] name = "num-traits" version = "0.2.19" @@ -3764,18 +3557,21 @@ 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", ] [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +dependencies = [ + "portable-atomic", +] [[package]] name = "opaque-debug" @@ -3853,9 +3649,9 @@ dependencies = [ [[package]] name = "parking" -version = "2.2.0" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae" +checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba" [[package]] name = "parking_lot" @@ -3904,16 +3700,6 @@ dependencies = [ "once_cell", ] -[[package]] -name = "pbkdf2" -version = "0.12.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" -dependencies = [ - "digest 0.10.7", - "hmac", -] - [[package]] name = "pear" version = "0.2.9" @@ -3934,7 +3720,7 @@ dependencies = [ "proc-macro2", "proc-macro2-diagnostics", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -3991,9 +3777,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" [[package]] name = "pest" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd53dff83f26735fdc1ca837098ccf133605d794cdae66acfc2bfac3ec809d95" +checksum = "fdbef9d1d47087a895abd220ed25eb4ad973a5e26f6a4367b038c25e28dfc2d9" dependencies = [ "memchr", "thiserror", @@ -4002,9 +3788,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a548d2beca6773b1c244554d36fcf8548a8a58e74156968211567250e48e49a" +checksum = "4d3a6e3394ec80feb3b6393c725571754c6188490265c61aaf260810d6b95aa0" dependencies = [ "pest", "pest_generator", @@ -4012,38 +3798,28 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c93a82e8d145725dcbaf44e5ea887c8a869efdcc28706df2d08c69e17077183" +checksum = "94429506bde1ca69d1b5601962c73f4172ab4726571a59ea95931218cb0e930e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "pest_meta" -version = "2.7.11" +version = "2.7.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a941429fea7e08bedec25e4f6785b6ffaacc6b755da98df5ef3e7dcf4a124c4f" +checksum = "ac8a071862e93690b6e34e9a5fb8e33ff3734473ac0245b27232222c4906a33f" dependencies = [ "once_cell", "pest", "sha2 0.10.8", ] -[[package]] -name = "petgraph" -version = "0.6.3" -source = "git+https://github.com/hu55a1n1/petgraph?branch=min-cost-flow-primal-dual#3a2664a3b9d1e5b71c411a6ed497cf576c1a86ae" -dependencies = [ - "fixedbitset", - "indexmap 1.9.3", - "num", -] - [[package]] name = "petgraph" version = "0.6.5" @@ -4051,7 +3827,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.5.0", ] [[package]] @@ -4109,7 +3885,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -4136,9 +3912,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.30" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec" +checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" [[package]] name = "polyval" @@ -4154,9 +3930,9 @@ dependencies = [ [[package]] name = "portable-atomic" -version = "1.7.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" [[package]] name = "powerfmt" @@ -4175,12 +3951,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.2.20" +version = "0.2.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f12335488a2f3b0a83b14edad48dca9879ce89b2edd10e80237e4e852dd645e" +checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -4228,7 +4004,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "version_check", "yansi", ] @@ -4240,7 +4016,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "38ee68ae331824036479c84060534b18254c864fa73366c58d86db3b7b811619" dependencies = [ "futures", - "indexmap 2.4.0", + "indexmap 2.5.0", "nix 0.28.0", "tokio", "tracing", @@ -4276,19 +4052,19 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ "bytes", - "prost-derive 0.13.1", + "prost-derive 0.13.3", ] [[package]] name = "prost-build" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb182580f71dd070f88d01ce3de9f4da5021db7115d2e1c3605a754153b77c1" +checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", "heck", @@ -4296,12 +4072,12 @@ dependencies = [ "log", "multimap", "once_cell", - "petgraph 0.6.5", + "petgraph", "prettyplease", - "prost 0.13.1", - "prost-types 0.13.1", + "prost 0.13.3", + "prost-types 0.13.3", "regex", - "syn 2.0.75", + "syn 2.0.79", "tempfile", ] @@ -4315,20 +4091,20 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "prost-derive" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -4342,11 +4118,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" dependencies = [ - "prost 0.13.1", + "prost 0.13.3", ] [[package]] @@ -4371,11 +4147,11 @@ dependencies = [ "k256", "miette", "once_cell", - "prost 0.13.1", + "prost 0.13.3", "quartz-common", "quartz-tee-ra", "regex", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", "subtle-encoding", @@ -4463,12 +4239,11 @@ dependencies = [ "hex", "k256", "mc-sgx-dcap-sys-types", - "mtcs", "quartz-cw", "quartz-proto", "quartz-tee-ra", "rand", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", "sha2 0.10.8", @@ -4487,7 +4262,7 @@ dependencies = [ name = "quartz-proto" version = "0.1.0" dependencies = [ - "prost 0.13.1", + "prost 0.13.3", "tonic", "tonic-build", ] @@ -4522,16 +4297,16 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quinn" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b22d8e7369034b9a7132bc2008cac12f2013c8132b45e0554e6e20e2617f2156" +checksum = "8c7c5fdde3cdae7203427dc4f0a68fe0ed09833edc525a03456b153b79828684" dependencies = [ "bytes", "pin-project-lite", "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.12", + "rustls 0.23.13", "socket2", "thiserror", "tokio", @@ -4540,15 +4315,15 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.6" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba92fb39ec7ad06ca2582c0ca834dfeadcaf06ddfc8e635c80aa7e1c05315fdd" +checksum = "fadfaed2cd7f389d0161bb73eeb07b7b78f8691047a6f3e73caaeae55310a4a6" dependencies = [ "bytes", "rand", "ring 0.17.8", "rustc-hash", - "rustls 0.23.12", + "rustls 0.23.13", "slab", "thiserror", "tinyvec", @@ -4557,22 +4332,22 @@ dependencies = [ [[package]] name = "quinn-udp" -version = "0.5.4" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bffec3605b73c6f1754535084a85229fa8a30f86014e6c81aeec4abb68b0285" +checksum = "4fe68c2e9e1a1234e218683dbdf9f9dfcb094113c5ac2b938dfcb9bab4c4140b" dependencies = [ "libc", "once_cell", "socket2", "tracing", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[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", ] @@ -4645,9 +4420,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] @@ -4671,8 +4446,8 @@ checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -4686,13 +4461,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -4703,22 +4478,22 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "remove_dir_all" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c914caef075f03e9d5c568e2e71b3d3cf17dc61a5481ff379bb744721be0a75a" +checksum = "a694f9e0eb3104451127f6cc1e5de55f59d3b1fc8c5ddfaeb6f1e716479ceb4a" dependencies = [ "cfg-if", "cvt", "fs_at", "libc", "normpath", - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -4766,9 +4541,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64 0.22.1", "bytes", @@ -4779,7 +4554,7 @@ dependencies = [ "http-body 1.0.1", "http-body-util", "hyper 1.4.1", - "hyper-rustls 0.27.2", + "hyper-rustls 0.27.3", "hyper-util", "ipnet", "js-sys", @@ -4789,8 +4564,8 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.12", - "rustls-pemfile 2.1.3", + "rustls 0.23.13", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", @@ -4803,7 +4578,7 @@ dependencies = [ "wasm-bindgen", "wasm-bindgen-futures", "web-sys", - "webpki-roots 0.26.3", + "webpki-roots 0.26.6", "windows-registry", ] @@ -4852,7 +4627,7 @@ checksum = "a5a11a05ee1ce44058fa3d5961d05194fdbe3ad6b40f904af764d81b86450e6b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -4908,9 +4683,9 @@ checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152" [[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", ] @@ -4926,9 +4701,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.34" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -4965,9 +4740,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "once_cell", "ring 0.17.8", @@ -4991,12 +4766,12 @@ dependencies = [ [[package]] name = "rustls-native-certs" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04182dffc9091a404e0fc069ea5cd60e5b866c3adf881eff99a32d048242dffa" +checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", "security-framework", @@ -5013,19 +4788,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-webpki" @@ -5106,11 +4880,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -5134,7 +4908,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5182,9 +4956,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -5201,9 +4975,9 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] @@ -5238,13 +5012,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.208" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5255,16 +5029,16 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "serde_json" -version = "1.0.125" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "itoa", "memchr", "ryu", @@ -5279,14 +5053,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -5328,7 +5102,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5538,9 +5312,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.75" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6af063034fc1935ede7be0122941bafa9bacb949334d090b77ca98b5817c7d9" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -5570,7 +5344,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -5693,8 +5467,8 @@ dependencies = [ "futures", "num-traits", "once_cell", - "prost 0.13.1", - "prost-types 0.13.1", + "prost 0.13.3", + "prost-types 0.13.3", "serde", "serde_bytes", "serde_json", @@ -5807,8 +5581,8 @@ checksum = "8ed14abe3b0502a3afe21ca74ca5cdd6c7e8d326d982c26f98a394445eb31d6e" dependencies = [ "bytes", "flex-error", - "prost 0.13.1", - "prost-types 0.13.1", + "prost 0.13.3", + "prost-types 0.13.3", "serde", "serde_bytes", "subtle-encoding", @@ -5890,22 +5664,22 @@ checksum = "a38c90d48152c236a3ab59271da4f4ae63d678c5d7ad6b7714d7cb9760be5e4b" [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6006,9 +5780,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.39.2" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1" +checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998" dependencies = [ "backtrace", "bytes", @@ -6029,7 +5803,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6059,16 +5833,16 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -6077,9 +5851,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -6094,7 +5868,7 @@ version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", @@ -6112,11 +5886,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", @@ -6125,9 +5899,9 @@ dependencies = [ [[package]] name = "tonic" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38659f4a91aba8598d27821589f5db7dddd94601e7a01b1e485a50e5484c7401" +checksum = "877c5b330756d856ffcc4553ab34a5684481ade925ecc54bcd1bf02b1d0d4d52" dependencies = [ "async-stream", "async-trait", @@ -6143,7 +5917,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.1", + "prost 0.13.3", "socket2", "tokio", "tokio-stream", @@ -6155,15 +5929,16 @@ dependencies = [ [[package]] name = "tonic-build" -version = "0.12.1" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "568392c5a2bd0020723e3f387891176aabafe36fd9fcd074ad309dfa0c8eb964" +checksum = "9557ce109ea773b399c9b9e5dca39294110b74f1f342cb347a80d1fce8c26a11" dependencies = [ "prettyplease", "proc-macro2", "prost-build", + "prost-types 0.13.3", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6192,6 +5967,10 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", "tower-layer", "tower-service", ] @@ -6228,7 +6007,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6290,9 +6069,9 @@ checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "uncased" @@ -6317,36 +6096,36 @@ checksum = "7eec5d1121208364f6793f7d2e222bf75a915c19557537745b195b253dd64217" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-segmentation" -version = "1.11.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "unicode-width" -version = "0.1.13" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0336d538f7abc86d282a4189614dfaa90810dfc2c6f6427eaf88e16311dd225d" +checksum = "7dd6e30e90baa6f72411720665d41d89b9a3d039dc45b8faea1ddd07f617f6af" [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -6404,9 +6183,6 @@ name = "uuid" version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314" -dependencies = [ - "serde", -] [[package]] name = "vcpkg" @@ -6467,7 +6243,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -6501,7 +6277,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -6519,7 +6295,7 @@ dependencies = [ "anyhow", "cosmrs", "hex", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", ] @@ -6605,9 +6381,9 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "webpki-roots" -version = "0.26.3" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7c23921eeb1713a4e851530e9b9756e4fb0e89978582942612524cf09f01cd" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -6691,7 +6467,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6702,7 +6478,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -6894,9 +6670,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -6985,7 +6761,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] [[package]] @@ -7005,5 +6781,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.75", + "syn 2.0.79", ] diff --git a/Cargo.toml b/Cargo.toml index c4216bc..bb89a5c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,15 +1,13 @@ [workspace] resolver = "2" members = [ - "apps/mtcs/enclave", - "cli", - "core/light-client-proofs/*", - "core/quartz", - "core/quartz-common", - "cosmwasm/packages/*", - "utils/*", + "crates/cli", + "crates/common", + "crates/contracts/*", + "crates/enclave/*", + "crates/utils/*", ] -exclude = ["apps/mtcs/contracts/cw-tee-mtcs", "apps/transfers/contracts", "apps/transfers/enclave"] +exclude = ["examples/transfers/contracts", "examples/transfers/enclave"] [workspace.package] version = "0.1.0" @@ -51,9 +49,9 @@ sha2 = { version = "0.10.8", default-features = false } subtle-encoding = { version = "0.5.1", default-features = false, features = ["bech32-preview"] } tempfile = { version = "3", default-features = false } thiserror = { version = "1.0.49", default-features = false } -tokio = { version = "=1.39.2", default-features = false, features = ["macros", "rt"] } -tonic = { version = "=0.12.1", default-features = false, features = ["codegen", "prost", "transport"] } -tonic-build = { version = "=0.12.1", default-features = false, features = ["prost", "transport"] } +tokio = { version = "1.39.2", default-features = false, features = ["macros", "rt"] } +tonic = { version = "0.12.1", default-features = false, features = ["codegen", "prost", "transport"] } +tonic-build = { version = "0.12.1", default-features = false, features = ["prost", "transport"] } tower = { version = "0.5.0" } tracing = { version = "0.1.39", default-features = false } tracing-subscriber = { version = "0.3.17", default-features = false, features = ["fmt"] } @@ -65,7 +63,7 @@ zeroize = { version = "1.7.0", default-features = false } # cosmos cosmos-sdk-proto = { version = "0.22.0", default-features = false } -cosmrs = { version = "=0.17.0", default-features = false } +cosmrs = { version = "0.17.0", default-features = false } cosmwasm-schema = { version = "2.1.1", default-features = false } cosmwasm-std = { version = "2.1.1", default-features = false, features = ["std", "abort"] } cw-storage-plus = { version = "2.0.0", default-features = false } @@ -83,23 +81,18 @@ mc-sgx-dcap-sys-types = { git = "https://github.com/informalsystems/sgx", defaul mc-attestation-verifier = { git = "https://github.com/informalsystems/attestation", default-features = false } # quartz -cw-proof = { path = "core/light-client-proofs/cw-proof", default-features = false } -quartz-common = { path = "core/quartz-common", default-features = false } -quartz-cw = { path = "cosmwasm/packages/quartz-cw", default-features = false } -quartz-dcap-verifier-msgs = { path = "cosmwasm/packages/quartz-dcap-verifier/msgs", default-features = false } -quartz-enclave = { path = "core/quartz", default-features = false } -quartz-proto = { path = "core/quartz-proto", default-features = false } -quartz-tee-ra = { path = "cosmwasm/packages/quartz-tee-ra", default-features = false } -tcbinfo = { path = "cosmwasm/packages/tcbinfo", default-features = false, features = ["library"] } -tcbinfo-msgs = { path = "cosmwasm/packages/tcbinfo/msgs", default-features = false } -tm-prover = { path = "utils/tm-prover", default-features = false } -tm-stateless-verifier = { path = "core/light-client-proofs/tm-stateless-verifier", default-features = false } -wasmd-client = { path = "cosmwasm/packages/wasmd-client", default-features = false } - -# quartz apps -cw-tee-mtcs = { path = "apps/mtcs/contracts/cw-tee-mtcs", default-features = false } -mtcs = { git = "ssh://git@github.com/informalsystems/mtcs.git", default-features = false } -mtcs-enclave = { path = "apps/mtcs/enclave", default-features = false } +cw-proof = { path = "crates/contracts/cw-proof", default-features = false } +quartz-common = { path = "crates/common", default-features = false } +quartz-cw = { path = "crates/contracts/quartz-cw", default-features = false } +quartz-dcap-verifier-msgs = { path = "crates/contracts/quartz-dcap-verifier/msgs", default-features = false } +quartz-enclave = { path = "crates/enclave/quartz-enclave", default-features = false } +quartz-proto = { path = "crates/enclave/quartz-proto", default-features = false } +quartz-tee-ra = { path = "crates/contracts/quartz-tee-ra", default-features = false } +tcbinfo = { path = "crates/contracts/tcbinfo", default-features = false, features = ["library"] } +tcbinfo-msgs = { path = "crates/contracts/tcbinfo/msgs", default-features = false } +tm-prover = { path = "crates/utils/tm-prover", default-features = false } +tm-stateless-verifier = { path = "crates/contracts/tm-stateless-verifier", default-features = false } +wasmd-client = { path = "crates/utils/wasmd-client", default-features = false } [profile.release] opt-level = "z" diff --git a/apps/mtcs/README.md b/apps/mtcs/README.md deleted file mode 100644 index 19e6be3..0000000 --- a/apps/mtcs/README.md +++ /dev/null @@ -1 +0,0 @@ -# The quartz MTCS app diff --git a/apps/mtcs/contracts/cw-tee-mtcs/.cargo/config.toml b/apps/mtcs/contracts/cw-tee-mtcs/.cargo/config.toml deleted file mode 100644 index 314edee..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/.cargo/config.toml +++ /dev/null @@ -1,7 +0,0 @@ -[alias] -wasm = "build --target wasm32-unknown-unknown --release --lib" -wasm-debug = "build --target wasm32-unknown-unknown --lib" -schema = "run schema" - -[net] -git-fetch-with-cli = true \ No newline at end of file diff --git a/apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock b/apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock deleted file mode 100644 index fb93081..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/Cargo.lock +++ /dev/null @@ -1,1909 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "ahash" -version = "0.8.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011" -dependencies = [ - "cfg-if", - "once_cell", - "version_check", - "zerocopy", -] - -[[package]] -name = "allocator-api2" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f" - -[[package]] -name = "anyhow" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" - -[[package]] -name = "ark-bls12-381" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", -] - -[[package]] -name = "ark-ec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" -dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.13.2", - "itertools 0.10.5", - "num-traits", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "digest", - "itertools 0.10.5", - "num-bigint", - "num-traits", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits", - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-poly" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.13.2", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest", - "num-bigint", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits", - "rand", - "rayon", -] - -[[package]] -name = "asn1-rs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5493c3bedbacf7fd7382c6346bbd66687d12bbaad3a89a2d2c303ee6cf20b048" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom", - "num-traits", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", - "synstructure", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "autocfg" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bech32" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d965446196e3b7decd44aa7ee49e31d630118f90ef12f97900f262eb915c951d" - -[[package]] -name = "bitflags" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de" - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "bnum" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" - -[[package]] -name = "bumpalo" -version = "3.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c" - -[[package]] -name = "byteorder" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" - -[[package]] -name = "bytes" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" - -[[package]] -name = "cc" -version = "1.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" -dependencies = [ - "shlex", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401" -dependencies = [ - "num-traits", - "serde", -] - -[[package]] -name = "ciborium" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde", -] - -[[package]] -name = "ciborium-io" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" - -[[package]] -name = "ciborium-ll" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "const-oid" -version = "0.9.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" - -[[package]] -name = "cosmwasm-core" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d905990ef3afb5753bb709dc7de88e9e370aa32bcc2f31731d4b533b63e82490" - -[[package]] -name = "cosmwasm-crypto" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b2a7bd9c1dd9a377a4dc0f4ad97d24b03c33798cd5a6d7ceb8869b41c5d2f2d" -dependencies = [ - "ark-bls12-381", - "ark-ec", - "ark-ff", - "ark-serialize", - "cosmwasm-core", - "digest", - "ecdsa", - "ed25519-zebra", - "k256", - "num-traits", - "p256", - "rand_core", - "rayon", - "sha2", - "thiserror", -] - -[[package]] -name = "cosmwasm-derive" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "cosmwasm-schema" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc0d4d85e83438ab9a0fea9348446f7268bc016aacfebce37e998559f151294" -dependencies = [ - "cosmwasm-schema-derive", - "schemars", - "serde", - "serde_json", - "thiserror", -] - -[[package]] -name = "cosmwasm-schema-derive" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "cosmwasm-std" -version = "2.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dec99a2e478715c0a4277f0dbeadbb8466500eb7dec873d0924edd086e77f1" -dependencies = [ - "base64", - "bech32", - "bnum", - "cosmwasm-core", - "cosmwasm-crypto", - "cosmwasm-derive", - "derive_more", - "hex", - "rand_core", - "schemars", - "serde", - "serde-json-wasm", - "sha2", - "static_assertions", - "thiserror", -] - -[[package]] -name = "cpufeatures" -version = "0.2.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" -dependencies = [ - "libc", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" -dependencies = [ - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" -dependencies = [ - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80" - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" -dependencies = [ - "generic-array", - "rand_core", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "typenum", -] - -[[package]] -name = "curve25519-dalek" -version = "4.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" -dependencies = [ - "cfg-if", - "cpufeatures", - "curve25519-dalek-derive", - "digest", - "fiat-crypto", - "rustc_version", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "cw-multi-test" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0ae276e7a06ad1b7e7da78a3d68aba80634cde30ee7fe8259a94e653603fef8" -dependencies = [ - "anyhow", - "bech32", - "cosmwasm-std", - "cw-storage-plus", - "cw-utils", - "derivative", - "itertools 0.13.0", - "prost", - "schemars", - "serde", - "sha2", - "thiserror", -] - -[[package]] -name = "cw-storage-plus" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f13360e9007f51998d42b1bc6b7fa0141f74feae61ed5fd1e5b0a89eec7b5de1" -dependencies = [ - "cosmwasm-std", - "schemars", - "serde", -] - -[[package]] -name = "cw-tee-mtcs" -version = "0.1.0" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-multi-test", - "cw-storage-plus", - "cw2", - "cw20", - "cw20-base", - "getrandom", - "hex", - "k256", - "quartz-common", - "schemars", - "serde_json", - "sha2", - "thiserror", -] - -[[package]] -name = "cw-utils" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07dfee7f12f802431a856984a32bce1cb7da1e6c006b5409e3981035ce562dec" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "schemars", - "serde", - "thiserror", -] - -[[package]] -name = "cw2" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b04852cd38f044c0751259d5f78255d07590d136b8a86d4e09efdd7666bd6d27" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-storage-plus", - "schemars", - "semver", - "serde", - "thiserror", -] - -[[package]] -name = "cw20" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a42212b6bf29bbdda693743697c621894723f35d3db0d5df930be22903d0e27c" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-utils", - "schemars", - "serde", -] - -[[package]] -name = "cw20-base" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6de8c32e100f1fca306972d86b617234a5e6b00594ea2b48716fd6804d4d95d" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "cw-storage-plus", - "cw2", - "cw20", - "schemars", - "semver", - "serde", - "thiserror", -] - -[[package]] -name = "darling" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989" -dependencies = [ - "darling_core", - "darling_macro", -] - -[[package]] -name = "darling_core" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim", - "syn 2.0.76", -] - -[[package]] -name = "darling_macro" -version = "0.20.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" -dependencies = [ - "darling_core", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "data-encoding" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2" - -[[package]] -name = "der" -version = "0.7.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" -dependencies = [ - "const-oid", - "der_derive", - "flagset", - "pem-rfc7468", - "zeroize", -] - -[[package]] -name = "der-parser" -version = "9.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom", - "num-bigint", - "num-traits", - "rusticata-macros", -] - -[[package]] -name = "der_derive" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "deranged" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" -dependencies = [ - "powerfmt", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" -dependencies = [ - "derive_more-impl", -] - -[[package]] -name = "derive_more-impl" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", - "unicode-xid", -] - -[[package]] -name = "digest" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" -dependencies = [ - "block-buffer", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "displaydoc" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "dyn-clone" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6ef0072f8a535281e4876be788938b528e9a1d43900b82c2569af7da799125" - -[[package]] -name = "ecdsa" -version = "0.16.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" -dependencies = [ - "der", - "digest", - "elliptic-curve", - "rfc6979", - "signature", - "spki", -] - -[[package]] -name = "ed25519" -version = "2.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" -dependencies = [ - "signature", -] - -[[package]] -name = "ed25519-zebra" -version = "4.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" -dependencies = [ - "curve25519-dalek", - "ed25519", - "hashbrown 0.14.5", - "hex", - "rand_core", - "sha2", - "zeroize", -] - -[[package]] -name = "either" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0" - -[[package]] -name = "elliptic-curve" -version = "0.13.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" -dependencies = [ - "base16ct", - "crypto-bigint", - "digest", - "ff", - "generic-array", - "group", - "pkcs8", - "rand_core", - "sec1", - "subtle", - "zeroize", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" - -[[package]] -name = "flagset" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3ea1ec5f8307826a5b71094dd91fc04d4ae75d5709b20ad351c7fb4815c86ec" - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" -dependencies = [ - "cfg-if", - "js-sys", - "libc", - "wasi", - "wasm-bindgen", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff", - "rand_core", - "subtle", -] - -[[package]] -name = "half" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888" -dependencies = [ - "cfg-if", - "crunchy", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash", -] - -[[package]] -name = "hashbrown" -version = "0.14.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" -dependencies = [ - "ahash", - "allocator-api2", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -dependencies = [ - "serde", -] - -[[package]] -name = "hex-literal" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itertools" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" - -[[package]] -name = "js-sys" -version = "0.3.70" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "k256" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" -dependencies = [ - "cfg-if", - "ecdsa", - "elliptic-curve", - "sha2", -] - -[[package]] -name = "lazy_static" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" - -[[package]] -name = "libc" -version = "0.2.158" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" - -[[package]] -name = "log" -version = "0.4.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24" - -[[package]] -name = "mc-attestation-verifier" -version = "0.4.3" -source = "git+https://github.com/informalsystems/attestation#ae86e2804abed218f4fd2fd4aec5e39408898cd8" -dependencies = [ - "der", - "displaydoc", - "hex", - "mc-sgx-core-sys-types", - "mc-sgx-core-types", - "mc-sgx-dcap-types", - "p256", - "serde", - "serde_json", - "subtle", - "x509-cert", -] - -[[package]] -name = "mc-sgx-core-sys-types" -version = "0.11.0" -source = "git+https://github.com/informalsystems/sgx#f25807776cbe10901f53d23fca548c9e4f6f284c" -dependencies = [ - "serde", - "serde_with", -] - -[[package]] -name = "mc-sgx-core-types" -version = "0.11.0" -source = "git+https://github.com/informalsystems/sgx#f25807776cbe10901f53d23fca548c9e4f6f284c" -dependencies = [ - "bitflags", - "displaydoc", - "getrandom", - "hex", - "mc-sgx-core-sys-types", - "mc-sgx-util", - "nom", - "rand_core", - "serde", - "subtle", -] - -[[package]] -name = "mc-sgx-dcap-sys-types" -version = "0.11.0" -source = "git+https://github.com/informalsystems/sgx#f25807776cbe10901f53d23fca548c9e4f6f284c" -dependencies = [ - "mc-sgx-core-sys-types", -] - -[[package]] -name = "mc-sgx-dcap-types" -version = "0.11.0" -source = "git+https://github.com/informalsystems/sgx#f25807776cbe10901f53d23fca548c9e4f6f284c" -dependencies = [ - "const-oid", - "displaydoc", - "hex", - "mc-sgx-core-types", - "mc-sgx-dcap-sys-types", - "mc-sgx-util", - "nom", - "p256", - "serde", - "sha2", - "static_assertions", - "subtle", - "x509-cert", -] - -[[package]] -name = "mc-sgx-util" -version = "0.11.0" -source = "git+https://github.com/informalsystems/sgx#f25807776cbe10901f53d23fca548c9e4f6f284c" - -[[package]] -name = "memchr" -version = "2.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "num-bigint" -version = "0.4.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" -dependencies = [ - "num-integer", - "num-traits", -] - -[[package]] -name = "num-conv" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9" - -[[package]] -name = "num-integer" -version = "0.1.46" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" -dependencies = [ - "num-traits", -] - -[[package]] -name = "num-traits" -version = "0.2.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" -dependencies = [ - "autocfg", -] - -[[package]] -name = "oid-registry" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d8034d9489cdaf79228eb9f6a3b8d7bb32ba00d6645ebd48eef4077ceb5bd9" -dependencies = [ - "asn1-rs", -] - -[[package]] -name = "once_cell" -version = "1.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa", - "elliptic-curve", - "primeorder", - "sha2", -] - -[[package]] -name = "paste" -version = "1.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der", - "spki", -] - -[[package]] -name = "powerfmt" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" - -[[package]] -name = "ppv-lite86" -version = "0.2.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04" -dependencies = [ - "zerocopy", -] - -[[package]] -name = "primeorder" -version = "0.13.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" -dependencies = [ - "elliptic-curve", -] - -[[package]] -name = "proc-macro2" -version = "1.0.86" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prost" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-derive" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca" -dependencies = [ - "anyhow", - "itertools 0.13.0", - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "quartz-common" -version = "0.1.0" -dependencies = [ - "quartz-cw", -] - -[[package]] -name = "quartz-cw" -version = "0.1.0" -dependencies = [ - "ciborium", - "cosmwasm-schema", - "cosmwasm-std", - "cw-storage-plus", - "hex", - "k256", - "quartz-dcap-verifier-msgs", - "quartz-tee-ra", - "serde", - "serde_json", - "serde_with", - "sha2", - "tcbinfo-msgs", - "thiserror", -] - -[[package]] -name = "quartz-dcap-verifier-msgs" -version = "0.1.0" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", -] - -[[package]] -name = "quartz-tee-ra" -version = "0.1.0" -dependencies = [ - "cosmwasm-schema", - "cosmwasm-std", - "der", - "hex-literal", - "mc-attestation-verifier", - "mc-sgx-dcap-types", - "num-bigint", - "serde", - "serde_json", - "sha2", - "thiserror", - "x509-cert", - "x509-parser", -] - -[[package]] -name = "quote" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "rand_chacha", - "rand_core", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom", -] - -[[package]] -name = "rayon" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" -dependencies = [ - "crossbeam-deque", - "crossbeam-utils", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "ring" -version = "0.17.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d" -dependencies = [ - "cc", - "cfg-if", - "getrandom", - "libc", - "spin", - "untrusted", - "windows-sys", -] - -[[package]] -name = "rustc_version" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" -dependencies = [ - "semver", -] - -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom", -] - -[[package]] -name = "ryu" -version = "1.0.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f" - -[[package]] -name = "schemars" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" -dependencies = [ - "dyn-clone", - "schemars_derive", - "serde", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" -dependencies = [ - "proc-macro2", - "quote", - "serde_derive_internals", - "syn 2.0.76", -] - -[[package]] -name = "sec1" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" -dependencies = [ - "base16ct", - "der", - "generic-array", - "pkcs8", - "subtle", - "zeroize", -] - -[[package]] -name = "semver" -version = "1.0.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" - -[[package]] -name = "serde" -version = "1.0.209" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-json-wasm" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.209" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "serde_derive_internals" -version = "0.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "serde_json" -version = "1.0.127" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" -dependencies = [ - "itoa", - "memchr", - "ryu", - "serde", -] - -[[package]] -name = "serde_with" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cecfa94848272156ea67b2b1a53f20fc7bc638c4a46d2f8abde08f05f4b857" -dependencies = [ - "base64", - "chrono", - "hex", - "serde", - "serde_derive", - "serde_json", - "serde_with_macros", - "time", -] - -[[package]] -name = "serde_with_macros" -version = "3.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8fee4991ef4f274617a51ad4af30519438dacb2f56ac773b08a1922ff743350" -dependencies = [ - "darling", - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "sha2" -version = "0.10.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" -dependencies = [ - "cfg-if", - "cpufeatures", - "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" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" -dependencies = [ - "digest", - "rand_core", -] - -[[package]] -name = "spin" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" - -[[package]] -name = "spki" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" -dependencies = [ - "base64ct", - "der", -] - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "strsim" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" - -[[package]] -name = "subtle" -version = "2.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "synstructure" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "tcbinfo-msgs" -version = "0.1.0" -dependencies = [ - "cosmwasm-schema", -] - -[[package]] -name = "thiserror" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.63" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "time" -version = "0.3.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885" -dependencies = [ - "deranged", - "itoa", - "num-conv", - "powerfmt", - "serde", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" - -[[package]] -name = "time-macros" -version = "0.2.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf" -dependencies = [ - "num-conv", - "time-core", -] - -[[package]] -name = "typenum" -version = "1.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" - -[[package]] -name = "unicode-ident" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" - -[[package]] -name = "unicode-xid" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" - -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "version_check" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5" -dependencies = [ - "cfg-if", - "once_cell", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2", - "quote", - "syn 2.0.76", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf" -dependencies = [ - "quote", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.93" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" - -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets", -] - -[[package]] -name = "windows-targets" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" -dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_gnullvm", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" - -[[package]] -name = "windows_i686_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" - -[[package]] -name = "windows_i686_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" - -[[package]] -name = "windows_i686_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.52.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" - -[[package]] -name = "x509-cert" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1301e935010a701ae5f8655edc0ad17c44bad3ac5ce8c39185f75453b720ae94" -dependencies = [ - "const-oid", - "der", - "spki", -] - -[[package]] -name = "x509-parser" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69" -dependencies = [ - "asn1-rs", - "data-encoding", - "der-parser", - "lazy_static", - "nom", - "oid-registry", - "ring", - "rusticata-macros", - "thiserror", - "time", -] - -[[package]] -name = "zerocopy" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0" -dependencies = [ - "byteorder", - "zerocopy-derive", -] - -[[package]] -name = "zerocopy-derive" -version = "0.7.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] - -[[package]] -name = "zeroize" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.76", -] diff --git a/apps/mtcs/contracts/cw-tee-mtcs/Cargo.toml b/apps/mtcs/contracts/cw-tee-mtcs/Cargo.toml deleted file mode 100644 index 3cd5454..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/Cargo.toml +++ /dev/null @@ -1,56 +0,0 @@ -[package] -name = "cw-tee-mtcs" -version = "0.1.0" -edition = "2021" -authors = ["Informal Systems "] -exclude = ["contract.wasm", "hash.txt"] - -[[bin]] -name = "schema" -path = "bin/schema.rs" - -[lib] -crate-type = ["cdylib", "rlib"] - -[profile.release] -opt-level = "z" -debug = false -rpath = false -lto = true -debug-assertions = false -codegen-units = 1 -panic = 'abort' -incremental = false -overflow-checks = true - -[features] -library = [] -mock-sgx = ["quartz-common/mock-sgx-cw"] - -[dependencies] -# external -hex = { version = "0.4.3", default-features = false } -k256 = { version = "0.13.2", default-features = false, features = ["ecdsa"] } -schemars = "0.8.15" -sha2 = "0.10.8" -serde_json = "1.0.117" -thiserror = { version = "1.0.49" } - -# cosmwasm -cosmwasm-schema = { version = "2.1.1", default-features = false } -cosmwasm-std = { version = "2.1.1", default-features = false, features = ["std", "abort"] } -cw-storage-plus = { version = "2.0.0", default-features = false } -cw20-base = { version = "2.0.0", features = ["library"] } -cw20 = "2.0.0" -cw2 = "2.0.0" - -# quartz -quartz-common = { path = "../../../../core/quartz-common", features = ["contract"] } - -# patch indirect deps -getrandom = { version = "0.2.15", features = ["js"] } - -[dev-dependencies] -cosmwasm-schema = "2.1.1" -cw-multi-test = "2.1.0" -serde_json = "1.0.113" diff --git a/apps/mtcs/contracts/cw-tee-mtcs/README.md b/apps/mtcs/contracts/cw-tee-mtcs/README.md deleted file mode 100644 index b278a07..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/README.md +++ /dev/null @@ -1,50 +0,0 @@ -# CosmWasm smart contract to support MTCS on TEE - -An implementation of the on-chain component of -the [Key managers proposal v1](https://github.com/informalsystems/tee-mtcs/issues/26). - -## Testing instructions - -* Submit a bootstrap key manager request - - -``` -export EXECUTE='{ - "bootstrap_key_manager": { - "compute_mrenclave": "dc43f8c42d8e5f52c8bbd68f426242153f0be10630ff8cca255129a3ca03d273", - "key_manager_mrenclave": "1cf2e52911410fbf3f199056a98d58795a559a2e800933f7fcd13d048462271c", - "tcb_info": "" - } -}' -wasmd tx wasm execute "$CONTRACT" "$EXECUTE" --from alice --chain-id testing -y -``` - -* Query the bootstrap state - - -``` -wasmd query wasm contract-state raw "$CONTRACT" 7367787374617465 # BIN_HEX('sgx_state') -# OR ---- -wasmd query wasm contract-state smart "$CONTRACT" '{ - "get_sgx_state": { } -}' -``` - -* Submit a join compute node request - - -``` -export EXECUTE='{ - "join_compute_node": { - "io_exchange_key": "03E67EF09213633074FB4FBF338643F4F0C574ED60EF11D03422EEB06FA38C8F3F", - "address": "wasm10n4dsljyyfp2k2hy6e8vuc9ry32px2egwt5e0m", - "nonce": "425d87f8620e1dedeee70590cc55b164b8f01480ee59e0b1da35436a2f7c2777" - } -}' -wasmd tx wasm execute "$CONTRACT" "$EXECUTE" --from alice --chain-id testing -y -``` - -* Query requests - - -``` -wasmd query wasm contract-state smart "$CONTRACT" '{ - "get_requests": { } -}' -``` diff --git a/apps/mtcs/contracts/cw-tee-mtcs/bin/schema.rs b/apps/mtcs/contracts/cw-tee-mtcs/bin/schema.rs deleted file mode 100644 index c80c69f..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/bin/schema.rs +++ /dev/null @@ -1,10 +0,0 @@ -use cosmwasm_schema::write_api; -use cw_tee_mtcs::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; - -fn main() { - write_api! { - instantiate: InstantiateMsg, - execute: ExecuteMsg, - query: QueryMsg, - } -} diff --git a/apps/mtcs/contracts/cw-tee-mtcs/src/contract.rs b/apps/mtcs/contracts/cw-tee-mtcs/src/contract.rs deleted file mode 100644 index 8882b9d..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/src/contract.rs +++ /dev/null @@ -1,381 +0,0 @@ -use cosmwasm_std::{ - entry_point, to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Response, StdResult, - Uint64, -}; -use cw2::set_contract_version; -use cw20_base::contract::query_balance as cw20_query_balance; -use quartz_common::contract::{handler::RawHandler, state::EPOCH_COUNTER}; - -use crate::{ - error::ContractError, - msg::{ - execute::{ - Cw20Transfer, FaucetMintMsg, SetLiquiditySourcesMsg, SubmitObligationMsg, - SubmitObligationsMsg, SubmitSetoffsMsg, - }, - ExecuteMsg, InstantiateMsg, QueryMsg, - }, - state::{ - current_epoch_key, ObligationsItem, State, LIQUIDITY_SOURCES, LIQUIDITY_SOURCES_KEY, - OBLIGATIONS_KEY, STATE, - }, -}; - -// version info for migration info -const CONTRACT_NAME: &str = "crates.io:cw-tee-mtcs"; -const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); - -#[cfg_attr(not(feature = "library"), entry_point)] -pub fn instantiate( - mut deps: DepsMut, - env: Env, - info: MessageInfo, - msg: InstantiateMsg, -) -> Result { - // must be the handled first! - msg.quartz.handle_raw(deps.branch(), &env, &info)?; - - let state = State { - owner: info.sender.to_string(), - }; - - set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; - STATE.save(deps.storage, &state)?; - - let epoch_counter = Uint64::new(1); - EPOCH_COUNTER.save(deps.storage, &epoch_counter)?; - - ObligationsItem::new_dyn(current_epoch_key(OBLIGATIONS_KEY, deps.storage)?) - .save(deps.storage, &Default::default())?; - - // TODO: this can be removed. We don't need to instantiate liquidity sources, users will do so when submitting obligations - let epoch = current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?; - LIQUIDITY_SOURCES.save(deps.storage, &epoch, &vec![])?; - - Ok(Response::new() - .add_attribute("method", "instantiate") - .add_attribute("owner", info.sender)) -} - -#[cfg_attr(not(feature = "library"), entry_point)] -pub fn execute( - mut deps: DepsMut, - env: Env, - info: MessageInfo, - msg: ExecuteMsg, -) -> Result { - match msg { - ExecuteMsg::Quartz(msg) => msg.handle_raw(deps, &env, &info).map_err(Into::into), - ExecuteMsg::FaucetMint(FaucetMintMsg { recipient, amount }) => { - execute::faucet_mint(deps, env, recipient, amount) - } - ExecuteMsg::Transfer(Cw20Transfer { recipient, amount }) => Ok( - cw20_base::contract::execute_transfer(deps, env, info, recipient, amount.into())?, - ), - ExecuteMsg::SubmitObligation(SubmitObligationMsg { ciphertext, digest }) => { - execute::submit_obligation(deps, ciphertext, digest) - } - ExecuteMsg::SubmitObligations(SubmitObligationsMsg { - obligations, - liquidity_sources, - }) => { - for o in obligations { - execute::submit_obligation(deps.branch(), o.ciphertext, o.digest)?; - } - - execute::append_liquidity_sources(deps, liquidity_sources)?; - Ok(Response::new()) - } - ExecuteMsg::SubmitSetoffs(attested_msg) => { - // let _ = attested_msg - // .clone() - // .handle_raw(deps.branch(), &env, &info)?; - let SubmitSetoffsMsg { setoffs_enc } = attested_msg.msg.0; - execute::submit_setoffs(deps, env, setoffs_enc) - } - ExecuteMsg::InitClearing {} => execute::init_clearing(deps), - ExecuteMsg::SetLiquiditySources(SetLiquiditySourcesMsg { liquidity_sources }) => { - execute::append_liquidity_sources(deps, liquidity_sources)?; - Ok(Response::new()) - } - } -} - -pub mod execute { - use std::collections::BTreeMap; - - use cosmwasm_std::{ - to_json_binary, Addr, DepsMut, Env, HexBinary, MessageInfo, Response, StdResult, Storage, - SubMsg, Uint64, WasmMsg, - }; - use cw20_base::contract::execute_mint; - use quartz_common::contract::state::{Hash, EPOCH_COUNTER}; - - // use mtcs_overdraft::msg::ExecuteMsg as OverdraftExecuteMsg; - use crate::msg::OverdraftExecuteMsg; // TODO: change when dependency issue fiexed - use crate::{ - msg::execute::EscrowExecuteMsg, - state::{ - current_epoch_key, previous_epoch_key, LiquiditySource, LiquiditySourceType, - ObligationsItem, RawHash, SetoffsItem, SettleOff, Transfer, LIQUIDITY_SOURCES, - LIQUIDITY_SOURCES_KEY, OBLIGATIONS_KEY, SETOFFS_KEY, - }, - ContractError, - }; - - pub fn faucet_mint( - mut deps: DepsMut, - env: Env, - recipient: String, - amount: u64, - ) -> Result { - let info = MessageInfo { - sender: env.contract.address.clone(), - funds: vec![], - }; - - execute_mint( - deps.branch(), - env.clone(), - info.clone(), - recipient.to_string(), - amount.into(), - )?; - - Ok(Response::new().add_attribute("action", "faucet_mint")) - } - - pub fn submit_obligation( - deps: DepsMut, - ciphertext: HexBinary, - digest: HexBinary, - ) -> Result { - let _: Hash = digest.to_array()?; - - // store the `(digest, ciphertext)` tuple - let obligs_key = - ObligationsItem::new_dyn(current_epoch_key(OBLIGATIONS_KEY, deps.storage)?); - - let mut epoch_obligation = obligs_key.may_load(deps.storage)?.unwrap_or_default(); - - if let Some(_duplicate) = epoch_obligation.insert(digest.clone(), ciphertext.clone()) { - return Err(ContractError::DuplicateEntry); - } - - obligs_key.save(deps.storage, &epoch_obligation)?; - - Ok(Response::new() - .add_attribute("action", "submit_obligation") - .add_attribute("digest", digest.to_string()) - .add_attribute("ciphertext", ciphertext.to_string())) - } - - pub fn append_liquidity_sources( - deps: DepsMut, - new_liquidity_sources: Vec, - ) -> Result<(), ContractError> { - let epoch = current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?; - let mut liquidity_sources = LIQUIDITY_SOURCES - .may_load(deps.storage, &epoch)? - .unwrap_or_default(); - - let mut new_sources = vec![]; - for liquidity_source in new_liquidity_sources { - // Validate the Cosmos address - let address = deps.api.addr_validate(liquidity_source.address.as_ref())?; - - let liquidity_source = LiquiditySource { - address: address.clone(), - source_type: liquidity_source.source_type, - }; - - new_sources.push(liquidity_source); - } - - liquidity_sources.append(&mut new_sources); - - // Save the new liquidity sources - LIQUIDITY_SOURCES.save(deps.storage, &epoch, &liquidity_sources)?; - - Ok(()) - } - - pub fn submit_setoffs( - deps: DepsMut, - _env: Env, - setoffs_enc: BTreeMap, - ) -> Result { - // Store the setoffs - SetoffsItem::new_dyn(previous_epoch_key(SETOFFS_KEY, deps.storage)?) - .save(deps.storage, &setoffs_enc)?; - - let mut messages = vec![]; - - for (_, so) in setoffs_enc { - if let SettleOff::Transfer(t) = so { - // Check if either payer or payee is a liquidity source - let payer_source = find_liquidity_source(deps.storage, &t.payer)?; - let payee_source = find_liquidity_source(deps.storage, &t.payee)?; - - match (payer_source, payee_source) { - (Some(source), None) => { - // Payer is a liquidity source - let msg = create_transfer_message(&source, &t, true)?; - messages.push(msg); - } - (None, Some(source)) => { - // Payee is a liquidity source - let msg = create_transfer_message(&source, &t, false)?; - messages.push(msg); - } - (_, _) => { - // As of now, transfers should only be between a user and liquidity source. - return Err(ContractError::LiquiditySourceNotFound {}); - } - } - } - } - - Ok(Response::new() - .add_submessages(messages) - .add_attribute("action", "submit_setoffs")) - } - - fn find_liquidity_source( - storage: &dyn Storage, - address: &Addr, - ) -> Result, ContractError> { - // TODO: check that .ok() is correct here - let liquidity_sources = LIQUIDITY_SOURCES.load( - storage, - &previous_epoch_key(LIQUIDITY_SOURCES_KEY, storage)?, - )?; - - Ok(liquidity_sources - .into_iter() - .find(|lqs| lqs.address == address)) - } - - fn create_transfer_message( - source: &LiquiditySource, - transfer: &Transfer, - is_payer: bool, - ) -> Result { - let msg = match source.source_type { - LiquiditySourceType::Escrow => { - let (payer, payee, amount) = if is_payer { - ( - transfer.payer.to_string(), - transfer.payee.to_string(), - vec![transfer.amount.clone()], - ) - } else { - // If the liquidity source is the payee, we swap payer and payee - ( - transfer.payee.to_string(), - transfer.payer.to_string(), - vec![transfer.amount.clone()], - ) - }; - - WasmMsg::Execute { - contract_addr: source.address.to_string(), - msg: to_json_binary(&EscrowExecuteMsg::ExecuteSetoff { - payer, - payee, - amount, - })?, - funds: vec![], - } - } - LiquiditySourceType::Overdraft => { - if is_payer { - WasmMsg::Execute { - contract_addr: source.address.to_string(), - msg: to_json_binary(&OverdraftExecuteMsg::IncreaseBalance { - receiver: transfer.payee.clone(), - amount: transfer.amount.1, - })?, - funds: vec![], - } - } else { - WasmMsg::Execute { - contract_addr: source.address.to_string(), - msg: to_json_binary(&OverdraftExecuteMsg::DecreaseBalance { - receiver: transfer.payer.clone(), - amount: transfer.amount.1, - })?, - funds: vec![], - } - } - } - LiquiditySourceType::External => { - return Err(ContractError::UnsupportedLiquiditySource {}) - } - }; - - Ok(SubMsg::new(msg)) - } - - pub fn init_clearing(deps: DepsMut) -> Result { - EPOCH_COUNTER.update(deps.storage, |mut counter| -> StdResult<_> { - counter = counter.checked_add(Uint64::new(1))?; - Ok(counter) - })?; - - // Initializing data for next Epoch - let liquidity_epoch_key = current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?; - - ObligationsItem::new_dyn(current_epoch_key(OBLIGATIONS_KEY, deps.storage)?) - .save(deps.storage, &Default::default())?; - LIQUIDITY_SOURCES.save(deps.storage, &liquidity_epoch_key, &vec![])?; - - Ok(Response::new().add_attribute("action", "init_clearing")) - } -} - -#[cfg_attr(not(feature = "library"), entry_point)] -pub fn query(deps: Deps, _env: Env, msg: QueryMsg) -> StdResult { - match msg { - QueryMsg::GetAllSetoffs {} => to_json_binary(&query::get_all_setoffs(deps)?), - QueryMsg::GetLiquiditySources { epoch } => { - to_json_binary(&query::get_liquidity_sources(deps, epoch)?) - } - QueryMsg::Balance { address } => to_json_binary(&cw20_query_balance(deps, address)?), - } -} - -pub mod query { - use cosmwasm_std::{Deps, StdResult, Uint64}; - - use crate::{ - msg::{GetAllSetoffsResponse, GetLiquiditySourcesResponse}, - state::{ - current_epoch_key, epoch_key, previous_epoch_key, SetoffsItem, LIQUIDITY_SOURCES, - LIQUIDITY_SOURCES_KEY, SETOFFS_KEY, - }, - }; - - pub fn get_all_setoffs(deps: Deps) -> StdResult { - let setoffs = SetoffsItem::new_dyn(previous_epoch_key(SETOFFS_KEY, deps.storage)?) - .load(deps.storage)? - .into_iter() - .collect(); - Ok(GetAllSetoffsResponse { setoffs }) - } - - // Function to get liquidity sources for a specific epoch - pub fn get_liquidity_sources( - deps: Deps, - epoch: Option, - ) -> StdResult { - let epoch_key = match epoch { - None => current_epoch_key(LIQUIDITY_SOURCES_KEY, deps.storage)?, - Some(e) => epoch_key(LIQUIDITY_SOURCES_KEY, e)?, - }; - - let liquidity_sources = LIQUIDITY_SOURCES.load(deps.storage, &epoch_key)?; - - Ok(GetLiquiditySourcesResponse { liquidity_sources }) - } -} diff --git a/apps/mtcs/contracts/cw-tee-mtcs/src/error.rs b/apps/mtcs/contracts/cw-tee-mtcs/src/error.rs deleted file mode 100644 index 6f66b14..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/src/error.rs +++ /dev/null @@ -1,54 +0,0 @@ -use cosmwasm_std::StdError; -use cw20_base::ContractError as Cw20ContractError; -use hex::FromHexError; -use k256::ecdsa::Error as K256Error; -use quartz_common::contract::error::Error as QuartzError; -use thiserror::Error; - -#[derive(Error, Debug)] -pub enum ContractError { - #[error("{0}")] - Std(#[from] StdError), - - #[error("{0}")] - Quartz(#[from] QuartzError), - - #[error("Unauthorized")] - Unauthorized, - - #[error("Liquidity source not found")] - LiquiditySourceNotFound, - - #[error("Duplicate entry found")] - DuplicateEntry, - - #[error("No entry found")] - NoLiquiditySourcesFound, - - #[error("Not Secp256K1")] - K256(K256Error), - - #[error("Invalid hex")] - Hex(#[from] FromHexError), - - #[error("Invalid length")] - BadLength, - - #[error("Cw20 error: {0}")] - Cw20(Cw20ContractError), - - #[error("Unsupported liquidity source")] - UnsupportedLiquiditySource, -} - -impl From for ContractError { - fn from(e: K256Error) -> Self { - Self::K256(e) - } -} - -impl From for ContractError { - fn from(e: Cw20ContractError) -> Self { - Self::Cw20(e) - } -} diff --git a/apps/mtcs/contracts/cw-tee-mtcs/src/lib.rs b/apps/mtcs/contracts/cw-tee-mtcs/src/lib.rs deleted file mode 100644 index f6258e2..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/src/lib.rs +++ /dev/null @@ -1,14 +0,0 @@ -// #![deny( -// warnings, -// trivial_casts, -// trivial_numeric_casts, -// unused_import_braces, -// unused_qualifications -// )] -#![forbid(unsafe_code)] -pub mod contract; -mod error; -pub mod msg; -pub mod state; - -pub use crate::error::ContractError; diff --git a/apps/mtcs/contracts/cw-tee-mtcs/src/msg.rs b/apps/mtcs/contracts/cw-tee-mtcs/src/msg.rs deleted file mode 100644 index c484871..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/src/msg.rs +++ /dev/null @@ -1,218 +0,0 @@ -use std::collections::BTreeMap; - -use cosmwasm_schema::{cw_serde, QueryResponses}; -use cosmwasm_std::{Addr, HexBinary, Uint128, Uint64}; -use quartz_common::contract::{ - msg::execute::attested::{RawAttested, RawAttestedMsgSansHandler, RawDefaultAttestation}, - prelude::*, -}; - -use crate::state::{LiquiditySource, RawHash, SettleOff}; - -pub type AttestedMsg = RawAttested, RA>; - -#[cw_serde] -pub struct InstantiateMsg { - pub quartz: QuartzInstantiateMsg, -} - -#[cw_serde] -#[allow(clippy::large_enum_variant)] -pub enum ExecuteMsg { - Quartz(QuartzExecuteMsg), - FaucetMint(execute::FaucetMintMsg), - Transfer(execute::Cw20Transfer), - SubmitObligation(execute::SubmitObligationMsg), - SubmitObligations(execute::SubmitObligationsMsg), - SubmitSetoffs(AttestedMsg), - InitClearing {}, - SetLiquiditySources(execute::SetLiquiditySourcesMsg), -} - -// TODO: Added this back here because adding overdraft contract as a dependency is causing errors. Overdraft isn't correctly disabling entrypoints when acting as a dependency -#[cw_serde] -pub enum OverdraftExecuteMsg { - DrawCredit { - receiver: Addr, - amount: Uint128, - }, - DrawCreditFromTender { - debtor: Addr, - amount: Uint128, - }, - TransferCreditFromTender { - sender: Addr, - receiver: Addr, - amount: Uint128, - }, - IncreaseBalance { - receiver: Addr, - amount: Uint128, - }, - DecreaseBalance { - receiver: Addr, - amount: Uint128, - }, - Lock {}, - Unlock {}, - AddOwner { - new: Addr, - }, -} - -pub mod execute { - use cosmwasm_std::Uint128; - use quartz_common::contract::{msg::execute::attested::HasUserData, state::UserData}; - use sha2::{Digest, Sha256}; - - use super::*; - use crate::state::LiquiditySource; - - #[cw_serde] - pub struct FaucetMintMsg { - pub recipient: String, - pub amount: u64, - } - - #[cw_serde] - pub struct Cw20Transfer { - pub recipient: String, - pub amount: u64, - } - - #[cw_serde] - pub struct SubmitObligationMsg { - pub ciphertext: HexBinary, - pub digest: HexBinary, - // pub signatures: [HexBinary; 2], - // pub proof: π - } - - #[cw_serde] - pub struct SubmitObligationsMsg { - pub obligations: Vec, - pub liquidity_sources: Vec, - } - - #[cw_serde] - pub struct SubmitTenderMsg { - pub ciphertext: HexBinary, - pub digest: HexBinary, - // pub proof: π - } - - #[cw_serde] - pub struct SubmitSetoffsMsg { - pub setoffs_enc: BTreeMap, - // pub proof: π, - } - - impl HasUserData for SubmitSetoffsMsg { - fn user_data(&self) -> UserData { - let mut hasher = Sha256::new(); - hasher.update(serde_json::to_string(&self).expect("infallible serializer")); - let digest: [u8; 32] = hasher.finalize().into(); - - let mut user_data = [0u8; 64]; - user_data[0..32].copy_from_slice(&digest); - user_data - } - } - - #[cw_serde] - pub struct SetLiquiditySourcesMsg { - pub liquidity_sources: Vec, - } - - #[cw_serde] - pub enum EscrowExecuteMsg { - ExecuteSetoff { - payer: String, - payee: String, - amount: Vec<(String, Uint128)>, - }, - } -} - -#[cw_serde] -#[derive(QueryResponses)] -pub enum QueryMsg { - #[returns(GetAllSetoffsResponse)] - GetAllSetoffs {}, - #[returns(GetLiquiditySourcesResponse)] - GetLiquiditySources { epoch: Option }, // `None` means latest - #[returns(cw20::BalanceResponse)] - Balance { address: String }, -} - -// We define a custom struct for each query response -#[cw_serde] -pub struct GetAllSetoffsResponse { - pub setoffs: Vec<(HexBinary, SettleOff)>, -} - -#[cw_serde] -pub struct GetLiquiditySourcesResponse { - pub liquidity_sources: Vec, -} - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - fn test_serde_instantiate_msg() { - let _: InstantiateMsg = serde_json::from_str( - r#"{ - "quartz": { - "msg": { - "config": { - "mr_enclave": "1bfb949d235f61e5dc40f874ba3e9c36adef1e7a521b4b5f70e10fb1dc803251", - "epoch_duration": { - "secs": 43200, - "nanos": 0 - }, - "light_client_opts": { - "chain_id": "testing", - "trusted_height": 1, - "trusted_hash": "a1d115ba3a5e9fcc12ed68a9d8669159e9085f6f96ec26619f5c7ceb4ee02869", - "trust_threshold": [ - 2, - 3 - ], - "trusting_period": 1209600, - "max_clock_drift": 5, - "max_block_lag": 5 - }, - "tcbinfo_contract": "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d", - "dcap_verifier_contract": "wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d" - } - }, - "attestation": { - "quote": "03000200000000000a000f00939a7233f79c4ca9940a0db3957f06077944f37bdafec57cf7d4ab6bc395e0a1000000000e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000e700000000000000e76ee038f2c61c4edee980be5b80fa5c6ff7934ef3458c72868dbaaa569705ee0000000000000000000000000000000000000000000000000000000000000000255197a6388e504446dbf83726c2a9cb3cef9035cc3dabd6cf47d69a994f959400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c91fdf2b07731beb31190c6e492588aff1be719d725a8c685f337d85bd7fd2480000000000000000000000000000000000000000000000000000000000000000ca1000002529e2f0229c295e0cd8973cc3ad54b214ee0d0cb8efb022694b95bf767587b2fe4d049214f263c4539b36422343567401ac2931fcf4d7bbf27b8021d9dc8957bae275a28eae9b7d785811e4e967e6f5c03cd850bc8087600262e38756786ae09d931d4e77d1b928f25b3c3ff67b42da0a149b07e49fc570ddeff8a8386120880e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000001500000000000000e70000000000000096b347a64e5a045e27369c26e6dcda51fd7c850e9b3a3a79e718f43261dee1e400000000000000000000000000000000000000000000000000000000000000008c4f5775d796503e96137f77c68a829a0056ac8ded70140b081b094490c57bff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000254f579e046f1423f1f2da170254f912bb49097a0e041f3f670793e3fd6dd63f000000000000000000000000000000000000000000000000000000000000000058d5d2a9c79533eeac51c24d3bc062c7c26c1e2ffd62e224dfe899251e5fddca4fb757d9edc0d27f50f7954eb81523f8db6054921e66ec8d187685b732d2f25b2000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f0500620e00002d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494945386a4343424a696741774942416749554854525a7054426e4d59655063575531354542316643507561485177436759494b6f5a497a6a3045417749770a634445694d434147413155454177775a535735305a577767553064594946424453794251624746305a6d397962534244515445614d42674741315545436777520a535735305a577767513239796347397959585270623234784644415342674e564241634d43314e68626e526849454e7359584a684d51737743515944565151490a44414a445154454c4d416b474131554542684d4356564d774868634e4d6a51774e5445344d5449314e4451325768634e4d7a45774e5445344d5449314e4451320a576a42774d534977494159445651514444426c4a626e526c624342545231676755454e4c49454e6c636e52705a6d6c6a5958526c4d526f77474159445651514b0a4442464a626e526c6243424462334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e560a4241674d416b4e424d517377435159445651514745774a56557a425a4d424d4742797147534d34394167454743437147534d34394177454841304941424f64700a696252626a7639566159476a7159584a766f7670333253752f594861313541727943546735566c384762744348417a396e5952786d4e6a303372553548687a4d0a513030752b364a6d794748744b4f773866364f6a67674d4f4d494944436a416642674e5648534d4547444157674253566231334e765276683655424a796454300a4d383442567776655644427242674e56485238455a4442694d47436758714263686c706f64485277637a6f764c32467761533530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c334e6e6543396a5a584a3061575a7059324630615739754c3359304c33426a61324e796244396a595431770a624746305a6d397962535a6c626d4e765a476c755a7a316b5a584977485159445652304f42425945464167706b386e6b7a4c6371776b6749376f7567574844560a574d67314d41344741315564447745422f775145417749477744414d42674e5648524d4241663845416a41414d4949434f77594a4b6f5a496876684e415130420a424949434c444343416967774867594b4b6f5a496876684e415130424151515151576f736c643645563066526f62747368385149737a434341575547436971470a534962345451454e41514977676746564d42414743797147534962345451454e415149424167454f4d42414743797147534962345451454e415149434167454f0a4d42414743797147534962345451454e41514944416745444d42414743797147534962345451454e41514945416745444d42454743797147534962345451454e0a41514946416749412f7a415242677371686b69472b4530424451454342674943415038774541594c4b6f5a496876684e4151304241676343415145774541594c0a4b6f5a496876684e4151304241676743415141774541594c4b6f5a496876684e4151304241676b43415141774541594c4b6f5a496876684e4151304241676f430a415141774541594c4b6f5a496876684e4151304241677343415141774541594c4b6f5a496876684e4151304241677743415141774541594c4b6f5a496876684e0a4151304241673043415141774541594c4b6f5a496876684e4151304241673443415141774541594c4b6f5a496876684e4151304241673843415141774541594c0a4b6f5a496876684e4151304241684143415141774541594c4b6f5a496876684e4151304241684543415130774877594c4b6f5a496876684e41513042416849450a4541344f4177502f2f7745414141414141414141414141774541594b4b6f5a496876684e4151304241775143414141774641594b4b6f5a496876684e415130420a4241514741474271414141414d41384743697147534962345451454e4151554b415145774867594b4b6f5a496876684e4151304242675151446758512b3446660a2b6c2b4853522f457161474d737a424542676f71686b69472b453042445145484d4459774541594c4b6f5a496876684e4151304242774542416638774541594c0a4b6f5a496876684e4151304242774942415141774541594c4b6f5a496876684e4151304242774d4241514177436759494b6f5a497a6a304541774944534141770a52514968414c3047436752526b30764e6c585a594e506d5738634f313632364c4353332f2f4c6d6f416638756a4457484169426d41324d56347058774f386d6d0a4171444e4c345a6843792f64657a4842796c746f307271377149664c51773d3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436c6a4343416a32674177494241674956414a567658633239472b487051456e4a3150517a7a674658433935554d416f4743437147534d343942414d430a4d476778476a415942674e5642414d4d45556c756447567349464e48574342536232393049454e424d526f77474159445651514b4442464a626e526c624342440a62334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e564241674d416b4e424d5173770a435159445651514745774a56557a4165467730784f4441314d6a45784d4455774d5442614677307a4d7a41314d6a45784d4455774d5442614d484178496a41670a42674e5642414d4d47556c756447567349464e4857434251513073675547786864475a76636d306751304578476a415942674e5642416f4d45556c75644756730a49454e76636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b474131554543417743513045780a437a414a42674e5642415954416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741454e53422f377432316c58534f0a3243757a7078773734654a423732457944476757357258437478327456544c7136684b6b367a2b5569525a436e71523770734f766771466553786c6d546c4a6c0a65546d693257597a33714f42757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f536347724442530a42674e5648523845537a424a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e5648513445466751556c5739640a7a62306234656c4153636e553944504f4156634c336c517744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159420a4166384341514177436759494b6f5a497a6a30454177494452774177524149675873566b6930772b6936565947573355462f32327561586530594a446a3155650a6e412b546a44316169356343494359623153416d4435786b66545670766f34556f79695359787244574c6d5552344349394e4b7966504e2b0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436a7a4343416a53674177494241674955496d554d316c71644e496e7a6737535655723951477a6b6e42717777436759494b6f5a497a6a3045417749770a614445614d4267474131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e760a636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a0a42674e5642415954416c56544d423458445445344d4455794d5445774e4455784d466f58445451354d54497a4d54497a4e546b314f566f77614445614d4267470a4131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e76636e4276636d46300a615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a42674e56424159540a416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414543366e45774d4449595a4f6a2f69505773437a61454b69370a314f694f534c52466857476a626e42564a66566e6b59347533496a6b4459594c304d784f346d717379596a6c42616c54565978465032734a424b357a6c4b4f420a757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f5363477244425342674e5648523845537a424a0a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b63325679646d6c6a5a584d75615735300a5a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e564851344546675155496d554d316c71644e496e7a673753560a55723951477a6b6e4271777744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159424166384341514577436759490a4b6f5a497a6a3045417749445351417752674968414f572f35516b522b533943695344634e6f6f774c7550524c735747662f59693747535839344267775477670a41694541344a306c72486f4d732b586f356f2f7358364f39515778485241765a55474f6452513763767152586171493d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a00", - "collateral": "a76b726f6f745f63615f63726c590125308201213081c8020101300a06082a8648ce3d0403023068311a301806035504030c11496e74656c2053475820526f6f74204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3233303430333130323235315a170d3234303430323130323235315aa02f302d300a0603551d140403020101301f0603551d2304183016801422650cd65a9d3489f383b49552bf501b392706ac300a06082a8648ce3d0403020348003045022051577d47d9fba157b65f1eb5f4657bbc5e56ccaf735a03f1b963d704805ab118022100939015ec1636e7eafa5f426c1e402647c673132b6850cabd68cef6bad7682a037470636b5f63726c5f6973737565725f636861696e8299029c183018820218981830188202183e18a00302010202150018d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183318331830183518321831183118301835183018311830185a1830187118311823183018210603185504030c181a1849186e18741865186c1820185318471858182018501843184b182018501872186f1863186518731873186f18721820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418bf186a18f818d3182918d8188318a018b518d91875186e184f18ee1859189e187e184c1864182618f118a018a218f3183e18fc187e18cf189f182818241837187718eb188318cd187918d5184c0418f618661018c2188918fc188818b8189c182f1837187c0d06189f1862181c141892183018930918ac1318a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e0416041418d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010018300a0608182a1886184818ce183d04030203184800183018450218210018891881183618ed185618a318b21867185918b7188e18a81880185c18ce1890186118ae18ab18e618c5189218e3182f18c618ef182f182e1820189118b11877021820184618a318ef05182218b318cd0618a00418b4182a18e618ce184018ef184a185d18a218261891182718cc18ff18d218e018f318e018d81518f718599902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26770636b5f63726c59012f3082012b3081d1020101300a06082a8648ce3d04030230713123302106035504030c1a496e74656c205347582050434b2050726f636573736f72204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3234303932313233343530315a170d3234313032313233343530315aa02f302d300a0603551d140403020101301f0603551d23041830168014d0e8aada75d7f92e4917983c7b1465d0d5f2594d300a06082a8648ce3d0403020349003046022100b4e36f8ada6cbf883bdf686706552eeb9bea8079a55f24d478e732ca975f569e022100d61085414d0906dfc14abb3ec6098102adda31a4a9d05f32e54434ff212d23d3707463625f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a2687463625f696e666f6c303036303661303030303030781871655f6964656e746974795f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26b71655f6964656e746974797905647b22656e636c6176654964656e74697479223a7b226964223a225145222c2276657273696f6e223a322c22697373756544617465223a22323032332d30372d31325432303a34383a32355a222c226e657874557064617465223a22323032332d30382d31315432303a34383a32355a222c227463624576616c756174696f6e446174614e756d626572223a31352c226d69736373656c656374223a223030303030303030222c226d69736373656c6563744d61736b223a224646464646464646222c2261747472696275746573223a223131303030303030303030303030303030303030303030303030303030303030222c22617474726962757465734d61736b223a224642464646464646464646464646464630303030303030303030303030303030222c226d727369676e6572223a2238433446353737354437393635303345393631333746373743363841383239413030353641433844454437303134304230383142303934343930433537424646222c2269737670726f646964223a312c227463624c6576656c73223a5b7b22746362223a7b2269737673766e223a387d2c2274636244617465223a22323032332d30322d31355430303a30303a30305a222c22746362537461747573223a225570546f44617465227d2c7b22746362223a7b2269737673766e223a367d2c2274636244617465223a22323032312d31312d31305430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a357d2c2274636244617465223a22323032302d31312d31315430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a347d2c2274636244617465223a22323031392d31312d31335430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a327d2c2274636244617465223a22323031392d30352d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a317d2c2274636244617465223a22323031382d30382d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323032222c22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d5d7d2c227369676e6174757265223a223935336164643639613536346238306334336164623963396462633838386461383161616438616632343063643764666437353166303230396432363261373164393234303630336135323863623736366539666333323738373232653539613433663261326534336235356337373661376234386163626538636436316133227d" - } - } - }"#, - ).expect("failed to deserialize hardcoded quartz instantiate msg"); - } - - #[test] - fn test_serde_execute_msg() { - let _: ExecuteMsg = serde_json::from_str( - r#"{ - "quartz": { - "session_create": { - "msg": { - "nonce":"9eec5e41e5a715c5a89eb182054daa1877796549a3bde865d7f2196b5f0811ca" - }, - "attestation": { - "quote":"03000200000000000a000f00939a7233f79c4ca9940a0db3957f06077944f37bdafec57cf7d4ab6bc395e0a1000000000e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000000500000000000000e7000000000000008821f6c6bf4c800c4852addc5b10a422d01ed714573258ac67f9e4b2478ffec90000000000000000000000000000000000000000000000000000000000000000255197a6388e504446dbf83726c2a9cb3cef9035cc3dabd6cf47d69a994f95940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056f352bac0614437a144a771ab582a979b301a5b8e5aaa80fd02f8f8de19a5da0000000000000000000000000000000000000000000000000000000000000000ca100000146a1ca7a9ddcdf55d220b8267d64915e91c3c789aefa2805248bc55472ba2faddc3108c86edb59b3c03981bc7a8a16f653eccc4ba82bf9192e88a2fa1c4c6f1bae275a28eae9b7d785811e4e967e6f5c03cd850bc8087600262e38756786ae09d931d4e77d1b928f25b3c3ff67b42da0a149b07e49fc570ddeff8a8386120880e0e100fffff0100000000000000000000000000000000000000000000000000000000000000000000000000000000001500000000000000e70000000000000096b347a64e5a045e27369c26e6dcda51fd7c850e9b3a3a79e718f43261dee1e400000000000000000000000000000000000000000000000000000000000000008c4f5775d796503e96137f77c68a829a0056ac8ded70140b081b094490c57bff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000254f579e046f1423f1f2da170254f912bb49097a0e041f3f670793e3fd6dd63f000000000000000000000000000000000000000000000000000000000000000058d5d2a9c79533eeac51c24d3bc062c7c26c1e2ffd62e224dfe899251e5fddca4fb757d9edc0d27f50f7954eb81523f8db6054921e66ec8d187685b732d2f25b2000000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f0500620e00002d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d494945386a4343424a696741774942416749554854525a7054426e4d59655063575531354542316643507561485177436759494b6f5a497a6a3045417749770a634445694d434147413155454177775a535735305a577767553064594946424453794251624746305a6d397962534244515445614d42674741315545436777520a535735305a577767513239796347397959585270623234784644415342674e564241634d43314e68626e526849454e7359584a684d51737743515944565151490a44414a445154454c4d416b474131554542684d4356564d774868634e4d6a51774e5445344d5449314e4451325768634e4d7a45774e5445344d5449314e4451320a576a42774d534977494159445651514444426c4a626e526c624342545231676755454e4c49454e6c636e52705a6d6c6a5958526c4d526f77474159445651514b0a4442464a626e526c6243424462334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e560a4241674d416b4e424d517377435159445651514745774a56557a425a4d424d4742797147534d34394167454743437147534d34394177454841304941424f64700a696252626a7639566159476a7159584a766f7670333253752f594861313541727943546735566c384762744348417a396e5952786d4e6a303372553548687a4d0a513030752b364a6d794748744b4f773866364f6a67674d4f4d494944436a416642674e5648534d4547444157674253566231334e765276683655424a796454300a4d383442567776655644427242674e56485238455a4442694d47436758714263686c706f64485277637a6f764c32467761533530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c334e6e6543396a5a584a3061575a7059324630615739754c3359304c33426a61324e796244396a595431770a624746305a6d397962535a6c626d4e765a476c755a7a316b5a584977485159445652304f42425945464167706b386e6b7a4c6371776b6749376f7567574844560a574d67314d41344741315564447745422f775145417749477744414d42674e5648524d4241663845416a41414d4949434f77594a4b6f5a496876684e415130420a424949434c444343416967774867594b4b6f5a496876684e415130424151515151576f736c643645563066526f62747368385149737a434341575547436971470a534962345451454e41514977676746564d42414743797147534962345451454e415149424167454f4d42414743797147534962345451454e415149434167454f0a4d42414743797147534962345451454e41514944416745444d42414743797147534962345451454e41514945416745444d42454743797147534962345451454e0a41514946416749412f7a415242677371686b69472b4530424451454342674943415038774541594c4b6f5a496876684e4151304241676343415145774541594c0a4b6f5a496876684e4151304241676743415141774541594c4b6f5a496876684e4151304241676b43415141774541594c4b6f5a496876684e4151304241676f430a415141774541594c4b6f5a496876684e4151304241677343415141774541594c4b6f5a496876684e4151304241677743415141774541594c4b6f5a496876684e0a4151304241673043415141774541594c4b6f5a496876684e4151304241673443415141774541594c4b6f5a496876684e4151304241673843415141774541594c0a4b6f5a496876684e4151304241684143415141774541594c4b6f5a496876684e4151304241684543415130774877594c4b6f5a496876684e41513042416849450a4541344f4177502f2f7745414141414141414141414141774541594b4b6f5a496876684e4151304241775143414141774641594b4b6f5a496876684e415130420a4241514741474271414141414d41384743697147534962345451454e4151554b415145774867594b4b6f5a496876684e4151304242675151446758512b3446660a2b6c2b4853522f457161474d737a424542676f71686b69472b453042445145484d4459774541594c4b6f5a496876684e4151304242774542416638774541594c0a4b6f5a496876684e4151304242774942415141774541594c4b6f5a496876684e4151304242774d4241514177436759494b6f5a497a6a304541774944534141770a52514968414c3047436752526b30764e6c585a594e506d5738634f313632364c4353332f2f4c6d6f416638756a4457484169426d41324d56347058774f386d6d0a4171444e4c345a6843792f64657a4842796c746f307271377149664c51773d3d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436c6a4343416a32674177494241674956414a567658633239472b487051456e4a3150517a7a674658433935554d416f4743437147534d343942414d430a4d476778476a415942674e5642414d4d45556c756447567349464e48574342536232393049454e424d526f77474159445651514b4442464a626e526c624342440a62334a7762334a6864476c76626a45554d424947413155454277774c553246756447456751327868636d4578437a414a42674e564241674d416b4e424d5173770a435159445651514745774a56557a4165467730784f4441314d6a45784d4455774d5442614677307a4d7a41314d6a45784d4455774d5442614d484178496a41670a42674e5642414d4d47556c756447567349464e4857434251513073675547786864475a76636d306751304578476a415942674e5642416f4d45556c75644756730a49454e76636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b474131554543417743513045780a437a414a42674e5642415954416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a304441516344516741454e53422f377432316c58534f0a3243757a7078773734654a423732457944476757357258437478327456544c7136684b6b367a2b5569525a436e71523770734f766771466553786c6d546c4a6c0a65546d693257597a33714f42757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f536347724442530a42674e5648523845537a424a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b633256790a646d6c6a5a584d75615735305a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e5648513445466751556c5739640a7a62306234656c4153636e553944504f4156634c336c517744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159420a4166384341514177436759494b6f5a497a6a30454177494452774177524149675873566b6930772b6936565947573355462f32327561586530594a446a3155650a6e412b546a44316169356343494359623153416d4435786b66545670766f34556f79695359787244574c6d5552344349394e4b7966504e2b0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a2d2d2d2d2d424547494e2043455254494649434154452d2d2d2d2d0a4d4949436a7a4343416a53674177494241674955496d554d316c71644e496e7a6737535655723951477a6b6e42717777436759494b6f5a497a6a3045417749770a614445614d4267474131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e760a636e4276636d4630615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a0a42674e5642415954416c56544d423458445445344d4455794d5445774e4455784d466f58445451354d54497a4d54497a4e546b314f566f77614445614d4267470a4131554541777752535735305a5777675530645949464a766233516751304578476a415942674e5642416f4d45556c756447567349454e76636e4276636d46300a615739754d5251774567594456515148444174545957353059534244624746795954454c4d416b47413155454341774351304578437a414a42674e56424159540a416c56544d466b77457759484b6f5a497a6a3043415159494b6f5a497a6a3044415163445167414543366e45774d4449595a4f6a2f69505773437a61454b69370a314f694f534c52466857476a626e42564a66566e6b59347533496a6b4459594c304d784f346d717379596a6c42616c54565978465032734a424b357a6c4b4f420a757a43427544416642674e5648534d4547444157674251695a517a575770303069664f44744a5653763141624f5363477244425342674e5648523845537a424a0a4d45656752614244686b466f64485277637a6f764c324e6c636e52705a6d6c6a5958526c63793530636e567a6447566b63325679646d6c6a5a584d75615735300a5a577775593239744c306c756447567355306459556d397664454e424c6d526c636a416442674e564851344546675155496d554d316c71644e496e7a673753560a55723951477a6b6e4271777744675944565230504151482f42415144416745474d42494741315564457745422f7751494d4159424166384341514577436759490a4b6f5a497a6a3045417749445351417752674968414f572f35516b522b533943695344634e6f6f774c7550524c735747662f59693747535839344267775477670a41694541344a306c72486f4d732b586f356f2f7358364f39515778485241765a55474f6452513763767152586171493d0a2d2d2d2d2d454e442043455254494649434154452d2d2d2d2d0a00", - "collateral":"a76b726f6f745f63615f63726c590125308201213081c8020101300a06082a8648ce3d0403023068311a301806035504030c11496e74656c2053475820526f6f74204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3233303430333130323235315a170d3234303430323130323235315aa02f302d300a0603551d140403020101301f0603551d2304183016801422650cd65a9d3489f383b49552bf501b392706ac300a06082a8648ce3d0403020348003045022051577d47d9fba157b65f1eb5f4657bbc5e56ccaf735a03f1b963d704805ab118022100939015ec1636e7eafa5f426c1e402647c673132b6850cabd68cef6bad7682a037470636b5f63726c5f6973737565725f636861696e8299029c183018820218981830188202183e18a00302010202150018d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183318331830183518321831183118301835183018311830185a1830187118311823183018210603185504030c181a1849186e18741865186c1820185318471858182018501843184b182018501872186f1863186518731873186f18721820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418bf186a18f818d3182918d8188318a018b518d91875186e184f18ee1859189e187e184c1864182618f118a018a218f3183e18fc187e18cf189f182818241837187718eb188318cd187918d5184c0418f618661018c2188918fc188818b8189c182f1837187c0d06189f1862181c141892183018930918ac1318a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e0416041418d018e818aa18da187518d718f9182e1849171898183c187b14186518d018d518f21859184d18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010018300a0608182a1886184818ce183d04030203184800183018450218210018891881183618ed185618a318b21867185918b7188e18a81880185c18ce1890186118ae18ab18e618c5189218e3182f18c618ef182f182e1820189118b11877021820184618a318ef05182218b318cd0618a00418b4182a18e618ce184018ef184a185d18a218261891182718cc18ff18d218e018f318e018d81518f718599902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26770636b5f63726c59012f3082012b3081d1020101300a06082a8648ce3d04030230713123302106035504030c1a496e74656c205347582050434b2050726f636573736f72204341311a3018060355040a0c11496e74656c20436f72706f726174696f6e3114301206035504070c0b53616e746120436c617261310b300906035504080c024341310b3009060355040613025553170d3234303932343030343030305a170d3234313032343030343030305aa02f302d300a0603551d140403020101301f0603551d23041830168014d0e8aada75d7f92e4917983c7b1465d0d5f2594d300a06082a8648ce3d040302034900304602210093195ebc95f8d6eb2d9200c6926f1348d1c03e53fd0f66bdc349e660f091a0fe022100c8dd1c4c657ec607aa0737a498ea2cd41aac8be39b94502ee00b6d6cb2d4c155707463625f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a2687463625f696e666f6c303036303661303030303030781871655f6964656e746974795f6973737565725f636861696e8299028f1830188202188b1830188202183218a0030201020214187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301835183018311830185a170d183218351830183518321831183118301835183018311830185a1830186c1831181e1830181c0603185504030c151849186e18741865186c182018531847185818201854184318421820185318691867186e1869186e18671831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d030107031842000418431845181b18cc187318c918d51891187c18af1876186e186118af183f18e91880188718dd184f131825187b1826181e1885181818971879189d18d1183d18681118fb1847187118380318bb189b18ae1858187f18cc18dd18c218e3181b18e918a2188b18861896182a18cc186d18af189618da185818ee18ca189618a3188118b51830188118b21830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414187e1838188218d518fb18551829184a18401849188e184518840318e914189118bd18f4185518300e06031855181d0f010118ff040403020618c018300c06031855181d13010118ff040218300018300a0608182a1886184818ce183d0403020318470018301844021820181f184218f3031880183718f2182618c4183b1846001825187618e318a2189c18aa183618a0186418e4187418931827182d18c8181a18ec1818186218550218201823187e18d618eb1834186b06185318c60718db185d185d184618260d18a018f318ee18d718d6186918ff183718bc18261868186e188c181d1828079902931830188202188f1830188202183418a0030201020214182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300a0608182a1886184818ce183d040302183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b1830090603185504061302185518531830181e170d183118381830183518321831183118301834183518311830185a170d183418391831183218331831183218331835183918351839185a183018681831181a183018180603185504030c111849186e18741865186c182018531847185818201852186f186f18741820184318411831181a1830181806031855040a0c111849186e18741865186c18201843186f18721870186f1872186118741869186f186e1831141830120603185504070c0b18531861186e1874186118201843186c18611872186118310b1830090603185504080c021843184118310b183009060318550406130218551853183018591830130607182a1886184818ce183d02010608182a1886184818ce183d03010703184200040b18a918c418c018c018c81861189318a318fe182318d618b0182c18da1018a818bb18d418e8188e184818b418451885186118a3186e18701855182518f518671891188e182e18dc188818e40d18860b18d018cc184e18e2186a18ac18c9188818e50518a918531855188c1845183f186b090418ae1873189418a3188118bb1830188118b81830181f06031855181d1823041818183016188014182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac1830185206031855181d181f04184b183018491830184718a0184518a018431886184118681874187418701873183a182f182f186318651872187418691866186918631861187418651873182e187418721875187318741865186418731865187218761869186318651873182e1869186e18741865186c182e1863186f186d182f1849186e18741865186c1853184718581852186f186f187418431841182e1864186518721830181d06031855181d0e04160414182218650c18d6185a189d1834188918f3188318b41895185218bf1850181b183918270618ac18300e06031855181d0f010118ff04040302010618301206031855181d13010118ff0408183006010118ff02010118300a0608182a1886184818ce183d04030203184900183018460218210018e518bf18e5091118f9182f18421889182018dc1836188a1830182e18e318d1182e18c51886187f18f6182218ec1864189718f71880186018c1183c18200218210018e0189d182518ac187a0c18b318e518e818e6188f18ec185f18a318bd1841186c184718440b18d918501863189d18450e18dc18be18a41857186a18a26b71655f6964656e746974797905647b22656e636c6176654964656e74697479223a7b226964223a225145222c2276657273696f6e223a322c22697373756544617465223a22323032332d30372d31325432303a34383a32355a222c226e657874557064617465223a22323032332d30382d31315432303a34383a32355a222c227463624576616c756174696f6e446174614e756d626572223a31352c226d69736373656c656374223a223030303030303030222c226d69736373656c6563744d61736b223a224646464646464646222c2261747472696275746573223a223131303030303030303030303030303030303030303030303030303030303030222c22617474726962757465734d61736b223a224642464646464646464646464646464630303030303030303030303030303030222c226d727369676e6572223a2238433446353737354437393635303345393631333746373743363841383239413030353641433844454437303134304230383142303934343930433537424646222c2269737670726f646964223a312c227463624c6576656c73223a5b7b22746362223a7b2269737673766e223a387d2c2274636244617465223a22323032332d30322d31355430303a30303a30305a222c22746362537461747573223a225570546f44617465227d2c7b22746362223a7b2269737673766e223a367d2c2274636244617465223a22323032312d31312d31305430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a357d2c2274636244617465223a22323032302d31312d31315430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a347d2c2274636244617465223a22323031392d31312d31335430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a327d2c2274636244617465223a22323031392d30352d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d2c7b22746362223a7b2269737673766e223a317d2c2274636244617465223a22323031382d30382d31355430303a30303a30305a222c22746362537461747573223a224f75744f6644617465222c2261647669736f7279494473223a5b22494e54454c2d53412d3030323032222c22494e54454c2d53412d3030323139222c22494e54454c2d53412d3030323933222c22494e54454c2d53412d3030333334222c22494e54454c2d53412d3030343737222c22494e54454c2d53412d3030363135225d7d5d7d2c227369676e6174757265223a223935336164643639613536346238306334336164623963396462633838386461383161616438616632343063643764666437353166303230396432363261373164393234303630336135323863623736366539666333323738373232653539613433663261326534336235356337373661376234386163626538636436316133227d" - } - } - } - }"#, - ).expect("failed to deserialize hardcoded quartz msg"); - } -} diff --git a/apps/mtcs/contracts/cw-tee-mtcs/src/state.rs b/apps/mtcs/contracts/cw-tee-mtcs/src/state.rs deleted file mode 100644 index 87ef21b..0000000 --- a/apps/mtcs/contracts/cw-tee-mtcs/src/state.rs +++ /dev/null @@ -1,84 +0,0 @@ -use std::{cmp::Ordering, collections::BTreeMap}; - -use cosmwasm_schema::cw_serde; -use cosmwasm_std::{Addr, HexBinary, StdError, Storage, Uint128, Uint64}; -use cw_storage_plus::{Item, Map}; -use quartz_common::contract::state::EPOCH_COUNTER; - -pub type RawHash = HexBinary; -pub type RawCipherText = HexBinary; - -pub type ObligationsItem = Item>; -pub type SetoffsItem = Item>; - -#[cw_serde] -pub struct State { - pub owner: String, -} - -#[cw_serde] -pub struct Transfer { - pub payer: Addr, - pub payee: Addr, - pub amount: (String, Uint128), -} - -#[cw_serde] -#[serde(untagged)] -pub enum SettleOff { - SetOff(Vec), - Transfer(Transfer), -} - -#[cw_serde] -#[derive(Copy)] -pub enum LiquiditySourceType { - Escrow, - Overdraft, - External, -} - -#[cw_serde] -pub struct LiquiditySource { - pub address: Addr, - pub source_type: LiquiditySourceType, -} - -impl std::cmp::Ord for LiquiditySource { - fn cmp(&self, other: &Self) -> Ordering { - self.address.cmp(&other.address) - } -} - -impl PartialOrd for LiquiditySource { - fn partial_cmp(&self, other: &Self) -> Option { - Some(self.address.cmp(&other.address)) - } -} - -// PartialEq implemented in #[cw_serde] -impl Eq for LiquiditySource {} - -pub const STATE: Item = Item::new("state"); -pub const OBLIGATIONS_KEY: &str = "obligations"; -pub const SETOFFS_KEY: &str = "setoffs"; -pub const LIQUIDITY_SOURCES_KEY: &str = "epoch_liquidity_sources"; -pub const LIQUIDITY_SOURCES: Map<&str, Vec> = Map::new("liquidity_sources"); - -pub fn current_epoch_key(key: &str, storage: &dyn Storage) -> Result { - epoch_key(key, EPOCH_COUNTER.load(storage)?) -} - -pub fn previous_epoch_key(key: &str, storage: &dyn Storage) -> Result { - let epoch = EPOCH_COUNTER.load(storage)?; - if epoch == Uint64::zero() { - return Err(StdError::generic_err( - "Cannot get previous epoch for epoch 0", - )); - } - epoch_key(key, epoch - Uint64::new(1)) -} - -pub fn epoch_key(key: &str, epoch: Uint64) -> Result { - Ok(format!("{}/{}", epoch, key)) -} diff --git a/apps/mtcs/enclave/Cargo.toml b/apps/mtcs/enclave/Cargo.toml deleted file mode 100644 index 51054f5..0000000 --- a/apps/mtcs/enclave/Cargo.toml +++ /dev/null @@ -1,50 +0,0 @@ -[package] -name = "mtcs-enclave" -version = "0.1.0" -edition = "2021" -authors = ["Informal Systems "] - -[features] -mock-sgx = ["quartz-common/mock-sgx-cw", "quartz-common/mock-sgx-enclave"] - -[dependencies] -# external -async-trait.workspace = true -clap.workspace = true -color-eyre.workspace = true -ecies.workspace = true -hex.workspace = true -k256.workspace = true -prost.workspace = true -serde.workspace = true -serde_json.workspace = true -thiserror.workspace = true -tokio.workspace = true -tonic.workspace = true -uuid.workspace = true -futures-util.workspace = true -anyhow.workspace = true -base64 = "0.22.1" -reqwest.workspace = true - - -# cosmos -cosmrs.workspace = true -cosmwasm-std.workspace = true -tendermint.workspace = true -tendermint-light-client.workspace = true -tendermint-rpc.workspace = true - -# quartz -cw-tee-mtcs.workspace = true -mtcs.workspace = true - -# quartz -quartz-common = { workspace = true, features = ["full"]} -wasmd-client = { workspace = true } - -[dev-dependencies] -cw-multi-test = "2.1.0" - -[build-dependencies] -tonic-build.workspace = true diff --git a/apps/mtcs/enclave/README.md b/apps/mtcs/enclave/README.md deleted file mode 100644 index 59d7565..0000000 --- a/apps/mtcs/enclave/README.md +++ /dev/null @@ -1 +0,0 @@ -## MTCS Server \ No newline at end of file diff --git a/apps/mtcs/enclave/build.rs b/apps/mtcs/enclave/build.rs deleted file mode 100644 index 4f9ea1b..0000000 --- a/apps/mtcs/enclave/build.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() -> Result<(), Box> { - tonic_build::configure() - .out_dir("src/prost") - .compile(&["proto/mtcs.proto"], &["proto"])?; - Ok(()) -} diff --git a/apps/mtcs/enclave/proto/mtcs.proto b/apps/mtcs/enclave/proto/mtcs.proto deleted file mode 100644 index e12fc60..0000000 --- a/apps/mtcs/enclave/proto/mtcs.proto +++ /dev/null @@ -1,15 +0,0 @@ -syntax = "proto3"; - -package mtcs; - -service Clearing { - rpc Run (RunClearingRequest) returns (RunClearingResponse) {} -} - -message RunClearingRequest { - string message = 1; -} - -message RunClearingResponse { - string message = 1; -} \ No newline at end of file diff --git a/apps/mtcs/enclave/quartz.manifest.template b/apps/mtcs/enclave/quartz.manifest.template deleted file mode 100644 index 8cd7187..0000000 --- a/apps/mtcs/enclave/quartz.manifest.template +++ /dev/null @@ -1,61 +0,0 @@ -# Quartz manifest file - -loader.entrypoint = "file:{{ gramine.libos }}" -libos.entrypoint = "{{ quartz_dir }}/target/release/mtcs-enclave" - -loader.log_level = "{{ log_level }}" - -loader.env.LD_LIBRARY_PATH = "/lib:{{ arch_libdir }}:/usr/{{ arch_libdir }}" -loader.env.HOME = "{{ home }}" -loader.env.INSIDE_SGX = "1" -loader.env.TLS = { passthrough = true } -loader.env.RA_TYPE = { passthrough = true } -loader.env.RA_TLS_ALLOW_DEBUG_ENCLAVE_INSECURE = { passthrough = true } -loader.env.RA_TLS_ALLOW_OUTDATED_TCB_INSECURE = { passthrough = true } -loader.env.RA_TLS_MRENCLAVE = { passthrough = true } -loader.env.RA_TLS_MRSIGNER = { passthrough = true } -loader.env.RA_TLS_ISV_SVN = { passthrough = true } -loader.env.RA_TLS_ISV_PROD_ID = { passthrough = true } -loader.env.RA_TLS_EPID_API_KEY = { passthrough = true } -loader.env.MYAPP_DATA = { passthrough = true } -loader.env.QUARTZ_PORT = { passthrough = true } - -loader.argv = ["enclave", - "--chain-id", "testing", - "--fmspc", "{{ fmspc }}", - "--tcbinfo-contract", "{{ tcbinfo_contract }}", - "--dcap-verifier-contract", "{{ dcap_verifier_contract }}", - "--trusted-height", "{{ trusted_height }}", - "--trusted-hash", "{{ trusted_hash }}"] - -fs.mounts = [ - { uri = "file:{{ gramine.runtimedir() }}", path = "/lib" }, - { uri = "file:{{ arch_libdir }}", path = "{{ arch_libdir }}" }, - { uri = "file:/usr/{{ arch_libdir }}", path = "/usr{{ arch_libdir }}" }, - { uri = "file:{{ quartz_dir }}", path = "{{ quartz_dir }}" }, -] - -# sgx.debug = true -sgx.enclave_size = "512M" -sgx.max_threads = 4 -sgx.edmm_enable = {{ 'true' if env.get('EDMM', '0') == '1' else 'false' }} - -sgx.remote_attestation = "{{ ra_type }}" -sgx.ra_client_spid = "{{ ra_client_spid }}" -sgx.ra_client_linkable = {{ 'true' if ra_client_linkable == '1' else 'false' }} - -sgx.trusted_files = [ - "file:{{ gramine.libos }}", - "file:{{ quartz_dir }}/target/release/mtcs-enclave", - "file:{{ gramine.runtimedir() }}/", - "file:{{ arch_libdir }}/", - "file:/usr/{{ arch_libdir }}/", -] - -sgx.allowed_files = [ - "file:{{ quartz_dir }}/exchange.sk", - "file:{{ quartz_dir }}/request.json", -] - -sys.insecure__allow_eventfd = true -sys.enable_sigterm_injection = true \ No newline at end of file diff --git a/apps/mtcs/enclave/src/cli.rs b/apps/mtcs/enclave/src/cli.rs deleted file mode 100644 index 469161b..0000000 --- a/apps/mtcs/enclave/src/cli.rs +++ /dev/null @@ -1,72 +0,0 @@ -use std::net::SocketAddr; - -use clap::Parser; -use color_eyre::eyre::{eyre, Result}; -use cosmrs::AccountId; -use quartz_common::enclave::types::Fmspc; -use tendermint::Hash; -use tendermint_light_client::types::{Height, TrustThreshold}; - -fn parse_trust_threshold(s: &str) -> Result { - if let Some((l, r)) = s.split_once('/') { - TrustThreshold::new(l.parse()?, r.parse()?).map_err(Into::into) - } else { - Err(eyre!( - "invalid trust threshold: {s}, format must be X/Y where X and Y are integers" - )) - } -} - -#[derive(Debug, Parser)] -#[command(author, version, about, long_about = None)] -pub struct Cli { - /// RPC server address - #[clap(long, default_value = "127.0.0.1:11090")] - pub rpc_addr: SocketAddr, - - /// Identifier of the chain - #[clap(long)] - pub chain_id: String, - - /// FMSPC (Family-Model-Stepping-Platform-Custom SKU) - #[clap(long)] - pub fmspc: Option, - - /// TcbInfo contract address - #[clap(long)] - pub tcbinfo_contract: Option, - - /// DCAP verifier contract address - #[clap(long)] - pub dcap_verifier_contract: Option, - - /// Height of the trusted header (AKA root-of-trust) - #[clap(long)] - pub trusted_height: Height, - - /// Hash of the trusted header (AKA root-of-trust) - #[clap(long)] - pub trusted_hash: Hash, - - /// Trust threshold - #[clap(long, value_parser = parse_trust_threshold, default_value_t = TrustThreshold::TWO_THIRDS)] - pub trust_threshold: TrustThreshold, - - /// Trusting period, in seconds (default: two weeks) - #[clap(long, default_value = "1209600")] - pub trusting_period: u64, - - /// Maximum clock drift, in seconds - #[clap(long, default_value = "5")] - pub max_clock_drift: u64, - - /// Maximum block lag, in seconds - #[clap(long, default_value = "5")] - pub max_block_lag: u64, - - #[clap(long, default_value = "127.0.0.1:11090")] - pub node_url: String, - - #[clap(long, default_value = "admin")] - pub tx_sender: String, -} diff --git a/apps/mtcs/enclave/src/lib.rs b/apps/mtcs/enclave/src/lib.rs deleted file mode 100644 index 2265ace..0000000 --- a/apps/mtcs/enclave/src/lib.rs +++ /dev/null @@ -1,2 +0,0 @@ -pub mod proto; -pub mod types; diff --git a/apps/mtcs/enclave/src/main.rs b/apps/mtcs/enclave/src/main.rs deleted file mode 100644 index 315b15f..0000000 --- a/apps/mtcs/enclave/src/main.rs +++ /dev/null @@ -1,88 +0,0 @@ -#![forbid(unsafe_code)] -#![doc = include_str!("../README.md")] -#![warn( - clippy::checked_conversions, - clippy::panic, - clippy::panic_in_result_fn, - trivial_casts, - trivial_numeric_casts, - rust_2018_idioms, - unused_lifetimes, - unused_import_braces, - unused_qualifications -)] - -mod cli; -mod mtcs_server; -mod proto; -mod types; -mod wslistener; - -use std::{ - sync::{Arc, Mutex}, - time::Duration, -}; - -use clap::Parser; -use cli::Cli; -use mtcs_server::MtcsService; -use quartz_common::{ - contract::state::{Config, LightClientOpts}, - enclave::{ - attestor::{self, Attestor}, - server::{QuartzServer, WsListenerConfig}, - }, -}; - -#[tokio::main(flavor = "current_thread")] -async fn main() -> Result<(), Box> { - let args = Cli::parse(); - - let light_client_opts = LightClientOpts::new( - args.chain_id.clone(), - args.trusted_height.into(), - Vec::from(args.trusted_hash) - .try_into() - .expect("invalid trusted hash"), - ( - args.trust_threshold.numerator(), - args.trust_threshold.denominator(), - ), - args.trusting_period, - args.max_clock_drift, - args.max_block_lag, - )?; - - #[cfg(not(feature = "mock-sgx"))] - let attestor = attestor::DcapAttestor { - fmspc: args.fmspc.expect("FMSPC is required for DCAP"), - }; - - #[cfg(feature = "mock-sgx")] - let attestor = attestor::MockAttestor; - - let config: Config = Config::new( - attestor.mr_enclave()?, - Duration::from_secs(30 * 24 * 60), - light_client_opts, - args.tcbinfo_contract.map(|c| c.to_string()), - args.dcap_verifier_contract.map(|c| c.to_string()), - ); - - let ws_config = WsListenerConfig { - node_url: args.node_url, - tx_sender: args.tx_sender, - trusted_hash: args.trusted_hash, - trusted_height: args.trusted_height, - chain_id: args.chain_id, - }; - - let sk = Arc::new(Mutex::new(None)); - - QuartzServer::new(config.clone(), sk.clone(), attestor.clone(), ws_config) - .add_service(MtcsService::new(config, sk, attestor)) - .serve(args.rpc_addr) - .await?; - - Ok(()) -} diff --git a/apps/mtcs/enclave/src/mtcs_server.rs b/apps/mtcs/enclave/src/mtcs_server.rs deleted file mode 100644 index 7abda9b..0000000 --- a/apps/mtcs/enclave/src/mtcs_server.rs +++ /dev/null @@ -1,180 +0,0 @@ -use std::{ - collections::BTreeMap, - sync::{Arc, Mutex}, -}; - -use cosmwasm_std::{Addr, HexBinary, Uint128}; -use cw_tee_mtcs::{ - msg::execute::SubmitSetoffsMsg, - state::{LiquiditySource, LiquiditySourceType, RawHash, SettleOff, Transfer}, -}; -use ecies::decrypt; -use k256::ecdsa::SigningKey; -use mtcs::{ - algo::mcmf::primal_dual::PrimalDual, impls::complex_id::ComplexIdMtcs, - obligation::SimpleObligation, prelude::DefaultMtcs, setoff::SimpleSetoff, Mtcs, -}; -use quartz_common::{ - contract::{msg::execute::attested::RawAttested, state::Config}, - enclave::{attestor::Attestor, server::IntoServer}, -}; -use tonic::{Request, Response, Result as TonicResult, Status}; -use uuid::Uuid; - -use crate::{ - proto::{ - clearing_server::{Clearing, ClearingServer}, - RunClearingRequest, RunClearingResponse, - }, - types::{ContractObligation, RunClearingMessage}, -}; - -pub type RawCipherText = HexBinary; - -impl IntoServer for MtcsService { - type Server = ClearingServer>; - - fn into_server(self) -> Self::Server { - ClearingServer::new(self) - } -} - -#[derive(Clone, Debug)] -pub struct MtcsService { - #[allow(dead_code)] - config: Config, // TODO: this config is not used anywhere - sk: Arc>>, - attestor: A, -} - -impl MtcsService -where - A: Attestor, -{ - pub fn new(config: Config, sk: Arc>>, attestor: A) -> Self { - Self { - config, - sk, - attestor, - } - } -} - -#[tonic::async_trait] -impl Clearing for MtcsService -where - A: Attestor + Send + Sync + 'static, -{ - async fn run( - &self, - request: Request, - ) -> TonicResult> { - // Light client check - let message: RunClearingMessage = { - let message = request.into_inner().message; - serde_json::from_str(&message).map_err(|e| Status::invalid_argument(e.to_string()))? - }; - - // let (proof_value, message) = message - // .verify(self.config.light_client_opts()) - // .map_err(Status::failed_precondition)?; - - // let proof_value_matches_msg = - // serde_json::to_string(&message.intents).is_ok_and(|s| s.as_bytes() == proof_value); - // if !proof_value_matches_msg { - // return Err(Status::failed_precondition("proof verification")); - // } - // TODO: ensure no duplicates somewhere else! - let liquidity_sources: Vec = - message.liquidity_sources.into_iter().collect(); - let digests_ciphertexts: BTreeMap = message.intents; - let (digests, ciphertexts): (Vec<_>, Vec<_>) = digests_ciphertexts.into_iter().unzip(); - - let sk = self.sk.lock().unwrap(); - let obligations: Vec> = ciphertexts - .into_iter() - .map(|ciphertext| decrypt_obligation(sk.as_ref().unwrap(), &ciphertext)) - .collect(); - - let mut mtcs = ComplexIdMtcs::wrapping(DefaultMtcs::new(PrimalDual::default())); - - let setoffs: Vec> = mtcs.run(obligations).unwrap(); - let setoffs_enc: BTreeMap = setoffs - .into_iter() - .map(|so| into_settle_offs(so, &liquidity_sources)) - .zip(digests) - .map(|(settle_off, digest)| (digest, settle_off)) - .collect(); - - let msg = SubmitSetoffsMsg { setoffs_enc }; - println!("setoff_msg: {:?}", msg); - - let attestation = self - .attestor - .attestation(msg.clone()) - .map_err(|e| Status::internal(e.to_string()))?; - - let attested_msg = RawAttested { - msg, - attestation: A::RawAttestation::from(attestation), - }; - let message = serde_json::to_string(&attested_msg).unwrap(); - Ok(Response::new(RunClearingResponse { message })) - } -} - -// TODO Switch from Vec<_> to Vec -fn into_settle_offs( - so: SimpleSetoff, - liquidity_sources: &Vec, -) -> SettleOff { - println!("\nsetoff: {:?}", so); - println!("\nliq sources: {:?}", liquidity_sources); - - // TODO: temporary patch, fix issue with liquidity sources becoming type External so that .contains() can be called directly - let liquidity_sources_addrs = liquidity_sources - .iter() - .map(|lqs| lqs.address.clone()) - .collect::>(); - - // In tenders and acceptances, the creditor's balance decreases - if liquidity_sources_addrs.contains(&so.debtor.address) - || liquidity_sources_addrs.contains(&so.creditor.address) - { - SettleOff::Transfer(Transfer { - payer: so.creditor.address.clone(), - payee: so.debtor.address.clone(), - // TODO: Include denominations - amount: ("peppicoin".to_owned(), Uint128::from(so.set_off as u128)), - }) - } else { - // TODO: Tracked by issue #22 - - // A no-op for the time being. - SettleOff::SetOff(vec![]) - } -} - -fn decrypt_obligation( - sk: &SigningKey, - ciphertext: &RawCipherText, -) -> SimpleObligation { - let o: ContractObligation = { - let o = decrypt(&sk.to_bytes(), ciphertext).unwrap(); - serde_json::from_slice(&o).unwrap() - }; - - SimpleObligation::new( - None, - LiquiditySource { - address: o.debtor, - source_type: LiquiditySourceType::External, - }, - LiquiditySource { - address: o.creditor, - source_type: LiquiditySourceType::External, - }, - i64::try_from(o.amount).unwrap(), - ) - .unwrap() -} diff --git a/apps/mtcs/enclave/src/prost/mtcs.rs b/apps/mtcs/enclave/src/prost/mtcs.rs deleted file mode 100644 index 34d11d3..0000000 --- a/apps/mtcs/enclave/src/prost/mtcs.rs +++ /dev/null @@ -1,290 +0,0 @@ -// This file is @generated by prost-build. -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct RunClearingRequest { - #[prost(string, tag = "1")] - pub message: ::prost::alloc::string::String, -} -#[derive(Clone, PartialEq, ::prost::Message)] -pub struct RunClearingResponse { - #[prost(string, tag = "1")] - pub message: ::prost::alloc::string::String, -} -/// Generated client implementations. -pub mod clearing_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - use tonic::codegen::http::Uri; - #[derive(Debug, Clone)] - pub struct ClearingClient { - inner: tonic::client::Grpc, - } - impl ClearingClient { - /// Attempt to create a new client by connecting to a given endpoint. - pub async fn connect(dst: D) -> Result - where - D: TryInto, - D::Error: Into, - { - let conn = tonic::transport::Endpoint::new(dst)?.connect().await?; - Ok(Self::new(conn)) - } - } - impl ClearingClient - where - T: tonic::client::GrpcService, - T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, - { - pub fn new(inner: T) -> Self { - let inner = tonic::client::Grpc::new(inner); - Self { inner } - } - pub fn with_origin(inner: T, origin: Uri) -> Self { - let inner = tonic::client::Grpc::with_origin(inner, origin); - Self { inner } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> ClearingClient> - where - F: tonic::service::Interceptor, - T::ResponseBody: Default, - T: tonic::codegen::Service< - http::Request, - Response = http::Response< - >::ResponseBody, - >, - >, - , - >>::Error: Into + Send + Sync, - { - ClearingClient::new(InterceptedService::new(inner, interceptor)) - } - /// Compress requests with the given encoding. - /// - /// This requires the server to support it otherwise it might respond with an - /// error. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.send_compressed(encoding); - self - } - /// Enable decompressing responses. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.inner = self.inner.accept_compressed(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_decoding_message_size(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.inner = self.inner.max_encoding_message_size(limit); - self - } - pub async fn run( - &mut self, - request: impl tonic::IntoRequest, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - > { - self.inner - .ready() - .await - .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, - format!("Service was not ready: {}", e.into()), - ) - })?; - let codec = tonic::codec::ProstCodec::default(); - let path = http::uri::PathAndQuery::from_static("/mtcs.Clearing/Run"); - let mut req = request.into_request(); - req.extensions_mut().insert(GrpcMethod::new("mtcs.Clearing", "Run")); - self.inner.unary(req, path, codec).await - } - } -} -/// Generated server implementations. -pub mod clearing_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] - use tonic::codegen::*; - /// Generated trait containing gRPC methods that should be implemented for use with ClearingServer. - #[async_trait] - pub trait Clearing: Send + Sync + 'static { - async fn run( - &self, - request: tonic::Request, - ) -> std::result::Result< - tonic::Response, - tonic::Status, - >; - } - #[derive(Debug)] - pub struct ClearingServer { - inner: Arc, - accept_compression_encodings: EnabledCompressionEncodings, - send_compression_encodings: EnabledCompressionEncodings, - max_decoding_message_size: Option, - max_encoding_message_size: Option, - } - impl ClearingServer { - pub fn new(inner: T) -> Self { - Self::from_arc(Arc::new(inner)) - } - pub fn from_arc(inner: Arc) -> Self { - Self { - inner, - accept_compression_encodings: Default::default(), - send_compression_encodings: Default::default(), - max_decoding_message_size: None, - max_encoding_message_size: None, - } - } - pub fn with_interceptor( - inner: T, - interceptor: F, - ) -> InterceptedService - where - F: tonic::service::Interceptor, - { - InterceptedService::new(Self::new(inner), interceptor) - } - /// Enable decompressing requests with the given encoding. - #[must_use] - pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.accept_compression_encodings.enable(encoding); - self - } - /// Compress responses with the given encoding, if the client supports it. - #[must_use] - pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self { - self.send_compression_encodings.enable(encoding); - self - } - /// Limits the maximum size of a decoded message. - /// - /// Default: `4MB` - #[must_use] - pub fn max_decoding_message_size(mut self, limit: usize) -> Self { - self.max_decoding_message_size = Some(limit); - self - } - /// Limits the maximum size of an encoded message. - /// - /// Default: `usize::MAX` - #[must_use] - pub fn max_encoding_message_size(mut self, limit: usize) -> Self { - self.max_encoding_message_size = Some(limit); - self - } - } - impl tonic::codegen::Service> for ClearingServer - where - T: Clearing, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, - { - type Response = http::Response; - type Error = std::convert::Infallible; - type Future = BoxFuture; - fn poll_ready( - &mut self, - _cx: &mut Context<'_>, - ) -> Poll> { - Poll::Ready(Ok(())) - } - fn call(&mut self, req: http::Request) -> Self::Future { - match req.uri().path() { - "/mtcs.Clearing/Run" => { - #[allow(non_camel_case_types)] - struct RunSvc(pub Arc); - impl< - T: Clearing, - > tonic::server::UnaryService - for RunSvc { - type Response = super::RunClearingResponse; - type Future = BoxFuture< - tonic::Response, - tonic::Status, - >; - fn call( - &mut self, - request: tonic::Request, - ) -> Self::Future { - let inner = Arc::clone(&self.0); - let fut = async move { - ::run(&inner, request).await - }; - Box::pin(fut) - } - } - let accept_compression_encodings = self.accept_compression_encodings; - let send_compression_encodings = self.send_compression_encodings; - let max_decoding_message_size = self.max_decoding_message_size; - let max_encoding_message_size = self.max_encoding_message_size; - let inner = self.inner.clone(); - let fut = async move { - let method = RunSvc(inner); - let codec = tonic::codec::ProstCodec::default(); - let mut grpc = tonic::server::Grpc::new(codec) - .apply_compression_config( - accept_compression_encodings, - send_compression_encodings, - ) - .apply_max_message_size_config( - max_decoding_message_size, - max_encoding_message_size, - ); - let res = grpc.unary(method, req).await; - Ok(res) - }; - Box::pin(fut) - } - _ => { - Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", tonic::Code::Unimplemented as i32) - .header( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ) - .body(empty_body()) - .unwrap(), - ) - }) - } - } - } - } - impl Clone for ClearingServer { - fn clone(&self) -> Self { - let inner = self.inner.clone(); - Self { - inner, - accept_compression_encodings: self.accept_compression_encodings, - send_compression_encodings: self.send_compression_encodings, - max_decoding_message_size: self.max_decoding_message_size, - max_encoding_message_size: self.max_encoding_message_size, - } - } - } - impl tonic::server::NamedService for ClearingServer { - const NAME: &'static str = "mtcs.Clearing"; - } -} diff --git a/apps/mtcs/enclave/src/proto.rs b/apps/mtcs/enclave/src/proto.rs deleted file mode 100644 index 99cb67e..0000000 --- a/apps/mtcs/enclave/src/proto.rs +++ /dev/null @@ -1,3 +0,0 @@ -#![allow(clippy::unwrap_used, unused_qualifications)] - -include!(concat!("prost/", "mtcs.rs")); diff --git a/apps/mtcs/enclave/src/types.rs b/apps/mtcs/enclave/src/types.rs deleted file mode 100644 index a8d7279..0000000 --- a/apps/mtcs/enclave/src/types.rs +++ /dev/null @@ -1,68 +0,0 @@ -use std::collections::{BTreeMap, BTreeSet}; - -use cosmwasm_std::{Addr, HexBinary}; -use cw_tee_mtcs::state::{LiquiditySource, RawCipherText, RawHash}; -use serde::{Deserialize, Serialize}; - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RunClearingMessage { - pub intents: BTreeMap, - pub liquidity_sources: BTreeSet, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct ContractObligation { - pub debtor: Addr, - pub creditor: Addr, - pub amount: u64, - #[serde(default)] - pub salt: HexBinary, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RawObligation { - pub debtor: HexBinary, - pub creditor: HexBinary, - pub amount: u64, - #[serde(default)] - pub salt: HexBinary, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RawEncryptedObligation { - pub digest: HexBinary, - pub ciphertext: HexBinary, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct SubmitObligationsMsg { - pub submit_obligations: SubmitObligationsMsgInner, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct SubmitObligationsMsgInner { - pub obligations: Vec, - pub liquidity_sources: Vec, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -#[serde(untagged)] -pub enum RawSetOff { - SetOff(Vec), - Transfer(RawSetOffTransfer), -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RawSetOffTransfer { - pub payer: String, - pub payee: String, - pub amount: u64, -} - -#[derive(Clone, Debug, Serialize, Deserialize)] -pub struct RawOffset { - pub debtor: HexBinary, - pub creditor: HexBinary, - pub amount: u64, - pub set_off: u64, -} diff --git a/apps/mtcs/enclave/src/wslistener.rs b/apps/mtcs/enclave/src/wslistener.rs deleted file mode 100644 index 1849c7d..0000000 --- a/apps/mtcs/enclave/src/wslistener.rs +++ /dev/null @@ -1,231 +0,0 @@ -//TODO: get rid of this -use std::{collections::BTreeMap, str::FromStr}; - -use anyhow::{anyhow, Result}; -use base64::prelude::*; -use cosmrs::{tendermint::chain::Id as ChainId, AccountId}; -use cosmwasm_std::{HexBinary, Uint64}; -use cw_tee_mtcs::msg::{ - execute::SubmitSetoffsMsg, AttestedMsg, ExecuteMsg, GetLiquiditySourcesResponse, - QueryMsg::GetLiquiditySources, -}; -use quartz_common::{ - contract::msg::execute::attested::{ - MockAttestation, RawAttested, RawAttestedMsgSansHandler, RawMockAttestation, - }, - enclave::{ - attestor::Attestor, - server::{WebSocketHandler, WsListenerConfig}, - }, -}; -use reqwest::Url; -// use quartz_tee_ra::{intel_sgx::epid::types::ReportBody, IASReport}; -use serde_json::json; -use tendermint_rpc::{event::Event, query::EventType}; -use tonic::Request; -use wasmd_client::{CliWasmdClient, QueryResult, WasmdClient}; - -use crate::{ - mtcs_server::MtcsService, - proto::{clearing_server::Clearing, RunClearingRequest}, - types::RunClearingMessage, -}; - -// TODO: Need to prevent listener from taking actions until handshake is completed -#[async_trait::async_trait] -impl WebSocketHandler for MtcsService { - async fn handle(&self, event: Event, config: WsListenerConfig) -> Result<()> { - // Validation - if !is_init_clearing_event(&event) { - return Ok(()); - } else { - println!("Found clearing event"); - - let mut sender = None; - let mut contract_address = None; - - if let Some(events) = &event.events { - for (key, values) in events { - match key.as_str() { - "message.sender" => { - sender = values.first().cloned(); - } - "wasm._contract_address" => { - contract_address = values.first().cloned(); - } - _ => {} - } - } - } - - // TODO: add some checks based on event messages - - if sender.is_none() || contract_address.is_none() { - return Ok(()); // TODO: change return type - } - - handler( - self, - &contract_address - .expect("infallible") - .parse::() - .map_err(|e| anyhow!(e))?, - sender.expect("infallible"), - &config.node_url, - ) - .await?; - } - - Ok(()) - } -} - -fn is_init_clearing_event(event: &Event) -> bool { - // Check if the event is a transaction type - if let Some(EventType::Tx) = event.event_type() { - // Check for the "wasm.action" key with the value "init_clearing" - if let Some(events) = &event.events { - return events.iter().any(|(key, values)| { - key == "wasm.action" && values.contains(&"init_clearing".to_string()) - }); - } - } - false -} - -async fn handler( - client: &MtcsService, - contract: &AccountId, - sender: String, - node_url: &str, -) -> Result<()> { - let chain_id = &ChainId::from_str("testing")?; - let httpurl = Url::parse(&format!("http://{}", node_url))?; - let wasmd_client = CliWasmdClient::new(httpurl); - - // Query obligations and liquidity sources from chain - let clearing_contents = query_chain(&wasmd_client, contract).await?; - - // Send queried data to enclave over gRPC - let request = Request::new(RunClearingRequest { - message: json!(clearing_contents).to_string(), - }); - - let clearing_response = client - .run(request) - .await - .map_err(|e| anyhow!("Failed to communicate to relayer. {e}"))? - .into_inner(); - // Extract json from the Protobuf message - let attested: RawAttested> = - serde_json::from_str(&clearing_response.message) - .map_err(|e| anyhow!("Error serializing SubmitSetoffs: {}", e))?; - - // TODO add non-mock support, get IAS report and build attested message - let msg = RawAttestedMsgSansHandler(attested.msg); - - let setoffs_msg = ExecuteMsg::SubmitSetoffs::(AttestedMsg { - msg, - attestation: MockAttestation(attested.attestation.try_into().unwrap()).into(), - }); - - // Send setoffs to mtcs contract on chain - let output = - wasmd_client.tx_execute(contract, chain_id, 2000000, &sender, json!(setoffs_msg))?; - - println!("Setoffs TX: {}", output); - Ok(()) -} - -// TODO: replace raw queries with smart -async fn query_chain( - wasmd_client: &CliWasmdClient, - contract: &AccountId, -) -> Result { - // Get epoch counter - let resp: QueryResult = wasmd_client - .query_raw(contract, hex::encode("epoch_counter")) - .map_err(|e| anyhow!("Problem querying epoch: {}", e))?; - - let mut epoch_counter: usize = String::from_utf8(BASE64_STANDARD.decode(resp.data)?)? - .trim_matches('"') - .parse::()?; - - if epoch_counter > 1 { - epoch_counter -= 1; - } - - // TODO: replace with tracer log here - // println!("epoch: {}", epoch_counter); - - // Get obligations - let resp: QueryResult = wasmd_client - .query_raw( - contract, - hex::encode(format!("{}/obligations", epoch_counter)), - ) - .map_err(|e| anyhow!("Problem querying obligatons: {}", e))?; - - let decoded_obligs = BASE64_STANDARD.decode(resp.data)?; - let obligations_map: BTreeMap = - serde_json::from_slice(&decoded_obligs).unwrap_or_default(); - // println!("obligations \n {:?}", obligations_map); - // TODO: replace with tracer log here - - // Get liquidity sources - let resp: QueryResult = wasmd_client - .query_smart( - contract, - json!(GetLiquiditySources { - epoch: Some(Uint64::new(epoch_counter as u64)) - }), - ) - .map_err(|e| anyhow!("Problem querying liquidity sources: {}", e))?; - - let liquidity_sources = resp.data.liquidity_sources; - // TODO: replace with tracer log here - // println!("liquidity_sources \n {:?}", liquidity_sources); - - Ok(RunClearingMessage { - intents: obligations_map, - liquidity_sources: liquidity_sources.into_iter().collect(), - }) -} - -// Request the IAS report for EPID attestations -// async fn gramine_ias_request( -// attested_msg: Vec, -// user: &str, -// ) -> Result { -// let ias_api_key = String::from("669244b3e6364b5888289a11d2a1726d"); -// let ra_client_spid = String::from("51CAF5A48B450D624AEFE3286D314894"); -// let quote_file = format!("/tmp/{}_test.quote", user); -// let report_file = format!("/tmp/{}_datareport", user); -// let report_sig_file = format!("/tmp/{}_datareportsig", user); - -// // Write the binary data to a file -// let mut file = File::create("e_file).await?; -// file.write_all(&attested_msg) -// .await -// .map_err(|e| anyhow!("Couldn't write to file. {e}"))?; - -// let mut gramine = Command::new("gramine-sgx-ias-request"); -// let command = gramine -// .arg("report") -// .args(["-g", &ra_client_spid]) -// .args(["-k", &ias_api_key]) -// .args(["-q", "e_file]) -// .args(["-r", &report_file]) -// .args(["-s", &report_sig_file]); - -// let output = command.output()?; -// if !output.status.success() { -// return Err(anyhow!("Couldn't run gramine. {:?}", output)); -// } - -// let report: ReportBody = serde_json::from_str(&fs::read_to_string(report_file).await?)?; -// let report_sig_str = fs::read_to_string(report_sig_file).await?.replace('\r', ""); -// let report_sig: Binary = Binary::from_base64(report_sig_str.trim())?; - -// Ok(EpidAttestation::new(IASReport { report, report_sig })) -// } diff --git a/apps/transfers/.cargo/config.toml b/apps/transfers/.cargo/config.toml deleted file mode 100644 index a6b014e..0000000 --- a/apps/transfers/.cargo/config.toml +++ /dev/null @@ -1,2 +0,0 @@ -[build] -target-dir = "target" diff --git a/apps/transfers/contracts/deploy-contract.sh b/apps/transfers/contracts/deploy-contract.sh deleted file mode 100755 index 2a2a940..0000000 --- a/apps/transfers/contracts/deploy-contract.sh +++ /dev/null @@ -1,75 +0,0 @@ -#!/bin/bash - -# Deploy the specified contract's `WASM_BIN` to the chain specified by `CHAIN_ID` using the `USER_ADDR` account. - -set -eo pipefail - -usage() { - echo "Usage: $0 WASM_BIN [COUNT]" - echo "Example: $0 artifacts/cofi_karma_game.wasm" - exit 1 -} - -if [ -z "$1" ]; then - echo "❌ Error: Missing WASM_BIN parameter. Please check if all parameters were specified." - usage -fi - -if [ "$#" -gt 9 ]; then - echo "❌ Error: Incorrect number of parameters." - usage -fi - -USER_ADDR=${USER_ADDR:-$(wasmd keys show -a admin)} -WASM_BIN="$1" -CHAIN_ID=${CHAIN_ID:-testing} -NODE_URL=${NODE_URL:-127.0.0.1:26657} -LABEL=${LABEL:-bisenzone-mvp} -COUNT=${COUNT:-0} -INSTANTIATE_MSG=${INSTANTIATE_MSG:-"null"} - -TXFLAG="--chain-id ${CHAIN_ID} --gas-prices 0.0025ucosm --gas auto --gas-adjustment 1.3" - -CMD="wasmd --node http://$NODE_URL" - -echo "🚀 Deploying WASM contract '${WASM_BIN}' on chain '${CHAIN_ID}' using account '${USER_ADDR}'..." -echo " with cmd : $CMD" -echo "====================================================================" - -RES=$($CMD tx wasm store "$WASM_BIN" --from "$USER_ADDR" $TXFLAG -y --output json) -echo $RES -TX_HASH=$(echo $RES | jq -r '.["txhash"]') - -while ! $CMD query tx $TX_HASH &> /dev/null; do - echo "... 🕐 waiting for contract to deploy from tx hash $TX_HASH" - sleep 1 -done - -RES=$($CMD query tx "$TX_HASH" --output json) -CODE_ID=$(echo $RES | jq -r '.logs[0].events[1].attributes[1].value') - -echo "" -echo "🚀 Instantiating contract with the following parameters:" -echo "--------------------------------------------------------" -echo "Label: ${LABEL}" -echo "--------------------------------------------------------" - -RES=$($CMD tx wasm instantiate "$CODE_ID" "$INSTANTIATE_MSG" --from "$USER_ADDR" --label $LABEL $TXFLAG -y --no-admin --output json) -TX_HASH=$(echo $RES | jq -r '.["txhash"]') - - -echo "" -while ! $CMD query tx $TX_HASH &> /dev/null; do - echo "... 🕐 waiting for contract to be queryable from tx hash $TX_HASH" - sleep 1 -done - -RES=$($CMD query wasm list-contract-by-code "$CODE_ID" --output json) -CONTRACT=$(echo $RES | jq -r '.contracts[0]') - -echo "🚀 Successfully deployed and instantiated contract!" -echo "🔗 Chain ID: ${CHAIN_ID}" -echo "🆔 Code ID: ${CODE_ID}" -echo "📌 Contract Address: ${CONTRACT}" -echo "🔑 Contract Key: ${KEY}" -echo "🔖 Contract Label: ${LABEL}" diff --git a/apps/transfers/contracts/schema/raw/execute.json b/apps/transfers/contracts/schema/raw/execute.json deleted file mode 100644 index acacbcb..0000000 --- a/apps/transfers/contracts/schema/raw/execute.json +++ /dev/null @@ -1,321 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ExecuteMsg", - "oneOf": [ - { - "type": "string", - "enum": [ - "deposit", - "withdraw" - ] - }, - { - "type": "object", - "required": [ - "quartz" - ], - "properties": { - "quartz": { - "$ref": "#/definitions/RawExecute_for_RawEpidAttestation" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "transfer_request" - ], - "properties": { - "transfer_request": { - "$ref": "#/definitions/TransferRequestMsg" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "clear_text_transfer_request" - ], - "properties": { - "clear_text_transfer_request": { - "$ref": "#/definitions/ClearTextTransferRequestMsg" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "update" - ], - "properties": { - "update": { - "$ref": "#/definitions/RawAttested_for_RawUpdateMsg_and_RawEpidAttestation" - } - }, - "additionalProperties": false - } - ], - "definitions": { - "Addr": { - "description": "A human readable address.\n\nIn Cosmos, this is typically bech32 encoded. But for multi-chain smart contracts no assumptions should be made other than being UTF-8 encoded and of reasonable length.\n\nThis type represents a validated address. It can be created in the following ways 1. Use `Addr::unchecked(input)` 2. Use `let checked: Addr = deps.api.addr_validate(input)?` 3. Use `let checked: Addr = deps.api.addr_humanize(canonical_addr)?` 4. Deserialize from JSON. This must only be done from JSON that was validated before such as a contract's state. `Addr` must not be used in messages sent by the user because this would result in unvalidated instances.\n\nThis type is immutable. If you really need to mutate it (Really? Are you sure?), create a mutable copy using `let mut mutable = Addr::to_string()` and operate on that `String` instance.", - "type": "string" - }, - "Binary": { - "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec. See also .", - "type": "string" - }, - "ClearTextTransferRequestMsg": { - "type": "object", - "required": [ - "amount", - "receiver", - "sender" - ], - "properties": { - "amount": { - "$ref": "#/definitions/Uint128" - }, - "receiver": { - "$ref": "#/definitions/Addr" - }, - "sender": { - "$ref": "#/definitions/Addr" - } - }, - "additionalProperties": false - }, - "HexBinary": { - "description": "This is a wrapper around Vec to add hex de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is similar to `cosmwasm_std::Binary` but uses hex. See also .", - "type": "string" - }, - "IASReport": { - "type": "object", - "required": [ - "report", - "reportsig" - ], - "properties": { - "report": { - "$ref": "#/definitions/ReportBody" - }, - "reportsig": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawSessionCreate_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawSessionCreate" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawSessionSetPubKey_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawSessionSetPubKey" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawUpdateMsg_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawUpdateMsg" - } - }, - "additionalProperties": false - }, - "RawEpidAttestation": { - "type": "object", - "required": [ - "report" - ], - "properties": { - "report": { - "$ref": "#/definitions/IASReport" - } - }, - "additionalProperties": false - }, - "RawExecute_for_RawEpidAttestation": { - "oneOf": [ - { - "type": "object", - "required": [ - "session_create" - ], - "properties": { - "session_create": { - "$ref": "#/definitions/RawAttested_for_RawSessionCreate_and_RawEpidAttestation" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "session_set_pub_key" - ], - "properties": { - "session_set_pub_key": { - "$ref": "#/definitions/RawAttested_for_RawSessionSetPubKey_and_RawEpidAttestation" - } - }, - "additionalProperties": false - } - ] - }, - "RawSessionCreate": { - "type": "object", - "required": [ - "nonce" - ], - "properties": { - "nonce": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "RawSessionSetPubKey": { - "type": "object", - "required": [ - "nonce", - "pub_key" - ], - "properties": { - "nonce": { - "$ref": "#/definitions/HexBinary" - }, - "pub_key": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "RawUpdateMsg": { - "type": "object", - "required": [ - "ciphertext", - "quantity", - "withdrawals" - ], - "properties": { - "ciphertext": { - "$ref": "#/definitions/HexBinary" - }, - "quantity": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "withdrawals": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Uint128" - } - } - }, - "additionalProperties": false - }, - "ReportBody": { - "type": "object", - "required": [ - "advisoryIDs", - "advisoryURL", - "epidPseudonym", - "id", - "isvEnclaveQuoteBody", - "isvEnclaveQuoteStatus", - "platformInfoBlob", - "timestamp", - "version" - ], - "properties": { - "advisoryIDs": { - "type": "array", - "items": { - "type": "string" - } - }, - "advisoryURL": { - "type": "string" - }, - "epidPseudonym": { - "$ref": "#/definitions/Binary" - }, - "id": { - "type": "string" - }, - "isvEnclaveQuoteBody": { - "$ref": "#/definitions/Binary" - }, - "isvEnclaveQuoteStatus": { - "type": "string" - }, - "platformInfoBlob": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "version": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - }, - "additionalProperties": false - }, - "TransferRequestMsg": { - "type": "object", - "required": [ - "ciphertext", - "digest" - ], - "properties": { - "ciphertext": { - "$ref": "#/definitions/HexBinary" - }, - "digest": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "Uint128": { - "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```", - "type": "string" - } - } -} diff --git a/apps/transfers/contracts/schema/raw/instantiate.json b/apps/transfers/contracts/schema/raw/instantiate.json deleted file mode 100644 index cb9854a..0000000 --- a/apps/transfers/contracts/schema/raw/instantiate.json +++ /dev/null @@ -1,233 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "InstantiateMsg", - "type": "object", - "required": [ - "denom", - "quartz" - ], - "properties": { - "denom": { - "type": "string" - }, - "quartz": { - "$ref": "#/definitions/RawInstantiate_for_RawEpidAttestation" - } - }, - "additionalProperties": false, - "definitions": { - "Binary": { - "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec. See also .", - "type": "string" - }, - "Duration": { - "type": "object", - "required": [ - "nanos", - "secs" - ], - "properties": { - "nanos": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "secs": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "HexBinary": { - "description": "This is a wrapper around Vec to add hex de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is similar to `cosmwasm_std::Binary` but uses hex. See also .", - "type": "string" - }, - "IASReport": { - "type": "object", - "required": [ - "report", - "reportsig" - ], - "properties": { - "report": { - "$ref": "#/definitions/ReportBody" - }, - "reportsig": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawCoreInstantiate_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawCoreInstantiate" - } - }, - "additionalProperties": false - }, - "RawConfig": { - "type": "object", - "required": [ - "epoch_duration", - "light_client_opts", - "mr_enclave" - ], - "properties": { - "epoch_duration": { - "$ref": "#/definitions/Duration" - }, - "light_client_opts": { - "$ref": "#/definitions/RawLightClientOpts" - }, - "mr_enclave": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "RawCoreInstantiate": { - "type": "object", - "required": [ - "config" - ], - "properties": { - "config": { - "$ref": "#/definitions/RawConfig" - } - }, - "additionalProperties": false - }, - "RawEpidAttestation": { - "type": "object", - "required": [ - "report" - ], - "properties": { - "report": { - "$ref": "#/definitions/IASReport" - } - }, - "additionalProperties": false - }, - "RawInstantiate_for_RawEpidAttestation": { - "$ref": "#/definitions/RawAttested_for_RawCoreInstantiate_and_RawEpidAttestation" - }, - "RawLightClientOpts": { - "type": "object", - "required": [ - "chain_id", - "max_block_lag", - "max_clock_drift", - "trust_threshold", - "trusted_hash", - "trusted_height", - "trusting_period" - ], - "properties": { - "chain_id": { - "type": "string" - }, - "max_block_lag": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "max_clock_drift": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "trust_threshold": { - "type": "array", - "items": [ - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - ], - "maxItems": 2, - "minItems": 2 - }, - "trusted_hash": { - "$ref": "#/definitions/HexBinary" - }, - "trusted_height": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "trusting_period": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - }, - "additionalProperties": false - }, - "ReportBody": { - "type": "object", - "required": [ - "advisoryIDs", - "advisoryURL", - "epidPseudonym", - "id", - "isvEnclaveQuoteBody", - "isvEnclaveQuoteStatus", - "platformInfoBlob", - "timestamp", - "version" - ], - "properties": { - "advisoryIDs": { - "type": "array", - "items": { - "type": "string" - } - }, - "advisoryURL": { - "type": "string" - }, - "epidPseudonym": { - "$ref": "#/definitions/Binary" - }, - "id": { - "type": "string" - }, - "isvEnclaveQuoteBody": { - "$ref": "#/definitions/Binary" - }, - "isvEnclaveQuoteStatus": { - "type": "string" - }, - "platformInfoBlob": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "version": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - }, - "additionalProperties": false - } - } -} diff --git a/apps/transfers/contracts/schema/transfers.json b/apps/transfers/contracts/schema/transfers.json deleted file mode 100644 index 9843e0d..0000000 --- a/apps/transfers/contracts/schema/transfers.json +++ /dev/null @@ -1,563 +0,0 @@ -{ - "contract_name": "transfers", - "contract_version": "0.1.0", - "idl_version": "1.0.0", - "instantiate": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "InstantiateMsg", - "type": "object", - "required": [ - "denom", - "quartz" - ], - "properties": { - "denom": { - "type": "string" - }, - "quartz": { - "$ref": "#/definitions/RawInstantiate_for_RawEpidAttestation" - } - }, - "additionalProperties": false, - "definitions": { - "Binary": { - "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec. See also .", - "type": "string" - }, - "Duration": { - "type": "object", - "required": [ - "nanos", - "secs" - ], - "properties": { - "nanos": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "secs": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - } - }, - "HexBinary": { - "description": "This is a wrapper around Vec to add hex de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is similar to `cosmwasm_std::Binary` but uses hex. See also .", - "type": "string" - }, - "IASReport": { - "type": "object", - "required": [ - "report", - "reportsig" - ], - "properties": { - "report": { - "$ref": "#/definitions/ReportBody" - }, - "reportsig": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawCoreInstantiate_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawCoreInstantiate" - } - }, - "additionalProperties": false - }, - "RawConfig": { - "type": "object", - "required": [ - "epoch_duration", - "light_client_opts", - "mr_enclave" - ], - "properties": { - "epoch_duration": { - "$ref": "#/definitions/Duration" - }, - "light_client_opts": { - "$ref": "#/definitions/RawLightClientOpts" - }, - "mr_enclave": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "RawCoreInstantiate": { - "type": "object", - "required": [ - "config" - ], - "properties": { - "config": { - "$ref": "#/definitions/RawConfig" - } - }, - "additionalProperties": false - }, - "RawEpidAttestation": { - "type": "object", - "required": [ - "report" - ], - "properties": { - "report": { - "$ref": "#/definitions/IASReport" - } - }, - "additionalProperties": false - }, - "RawInstantiate_for_RawEpidAttestation": { - "$ref": "#/definitions/RawAttested_for_RawCoreInstantiate_and_RawEpidAttestation" - }, - "RawLightClientOpts": { - "type": "object", - "required": [ - "chain_id", - "max_block_lag", - "max_clock_drift", - "trust_threshold", - "trusted_hash", - "trusted_height", - "trusting_period" - ], - "properties": { - "chain_id": { - "type": "string" - }, - "max_block_lag": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "max_clock_drift": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "trust_threshold": { - "type": "array", - "items": [ - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - ], - "maxItems": 2, - "minItems": 2 - }, - "trusted_hash": { - "$ref": "#/definitions/HexBinary" - }, - "trusted_height": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - }, - "trusting_period": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - }, - "additionalProperties": false - }, - "ReportBody": { - "type": "object", - "required": [ - "advisoryIDs", - "advisoryURL", - "epidPseudonym", - "id", - "isvEnclaveQuoteBody", - "isvEnclaveQuoteStatus", - "platformInfoBlob", - "timestamp", - "version" - ], - "properties": { - "advisoryIDs": { - "type": "array", - "items": { - "type": "string" - } - }, - "advisoryURL": { - "type": "string" - }, - "epidPseudonym": { - "$ref": "#/definitions/Binary" - }, - "id": { - "type": "string" - }, - "isvEnclaveQuoteBody": { - "$ref": "#/definitions/Binary" - }, - "isvEnclaveQuoteStatus": { - "type": "string" - }, - "platformInfoBlob": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "version": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - }, - "additionalProperties": false - } - } - }, - "execute": { - "$schema": "http://json-schema.org/draft-07/schema#", - "title": "ExecuteMsg", - "oneOf": [ - { - "type": "string", - "enum": [ - "deposit", - "withdraw" - ] - }, - { - "type": "object", - "required": [ - "quartz" - ], - "properties": { - "quartz": { - "$ref": "#/definitions/RawExecute_for_RawEpidAttestation" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "transfer_request" - ], - "properties": { - "transfer_request": { - "$ref": "#/definitions/TransferRequestMsg" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "clear_text_transfer_request" - ], - "properties": { - "clear_text_transfer_request": { - "$ref": "#/definitions/ClearTextTransferRequestMsg" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "update" - ], - "properties": { - "update": { - "$ref": "#/definitions/RawAttested_for_RawUpdateMsg_and_RawEpidAttestation" - } - }, - "additionalProperties": false - } - ], - "definitions": { - "Addr": { - "description": "A human readable address.\n\nIn Cosmos, this is typically bech32 encoded. But for multi-chain smart contracts no assumptions should be made other than being UTF-8 encoded and of reasonable length.\n\nThis type represents a validated address. It can be created in the following ways 1. Use `Addr::unchecked(input)` 2. Use `let checked: Addr = deps.api.addr_validate(input)?` 3. Use `let checked: Addr = deps.api.addr_humanize(canonical_addr)?` 4. Deserialize from JSON. This must only be done from JSON that was validated before such as a contract's state. `Addr` must not be used in messages sent by the user because this would result in unvalidated instances.\n\nThis type is immutable. If you really need to mutate it (Really? Are you sure?), create a mutable copy using `let mut mutable = Addr::to_string()` and operate on that `String` instance.", - "type": "string" - }, - "Binary": { - "description": "Binary is a wrapper around Vec to add base64 de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is only needed as serde-json-{core,wasm} has a horrible encoding for Vec. See also .", - "type": "string" - }, - "ClearTextTransferRequestMsg": { - "type": "object", - "required": [ - "amount", - "receiver", - "sender" - ], - "properties": { - "amount": { - "$ref": "#/definitions/Uint128" - }, - "receiver": { - "$ref": "#/definitions/Addr" - }, - "sender": { - "$ref": "#/definitions/Addr" - } - }, - "additionalProperties": false - }, - "HexBinary": { - "description": "This is a wrapper around Vec to add hex de/serialization with serde. It also adds some helper methods to help encode inline.\n\nThis is similar to `cosmwasm_std::Binary` but uses hex. See also .", - "type": "string" - }, - "IASReport": { - "type": "object", - "required": [ - "report", - "reportsig" - ], - "properties": { - "report": { - "$ref": "#/definitions/ReportBody" - }, - "reportsig": { - "$ref": "#/definitions/Binary" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawSessionCreate_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawSessionCreate" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawSessionSetPubKey_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawSessionSetPubKey" - } - }, - "additionalProperties": false - }, - "RawAttested_for_RawUpdateMsg_and_RawEpidAttestation": { - "type": "object", - "required": [ - "attestation", - "msg" - ], - "properties": { - "attestation": { - "$ref": "#/definitions/RawEpidAttestation" - }, - "msg": { - "$ref": "#/definitions/RawUpdateMsg" - } - }, - "additionalProperties": false - }, - "RawEpidAttestation": { - "type": "object", - "required": [ - "report" - ], - "properties": { - "report": { - "$ref": "#/definitions/IASReport" - } - }, - "additionalProperties": false - }, - "RawExecute_for_RawEpidAttestation": { - "oneOf": [ - { - "type": "object", - "required": [ - "session_create" - ], - "properties": { - "session_create": { - "$ref": "#/definitions/RawAttested_for_RawSessionCreate_and_RawEpidAttestation" - } - }, - "additionalProperties": false - }, - { - "type": "object", - "required": [ - "session_set_pub_key" - ], - "properties": { - "session_set_pub_key": { - "$ref": "#/definitions/RawAttested_for_RawSessionSetPubKey_and_RawEpidAttestation" - } - }, - "additionalProperties": false - } - ] - }, - "RawSessionCreate": { - "type": "object", - "required": [ - "nonce" - ], - "properties": { - "nonce": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "RawSessionSetPubKey": { - "type": "object", - "required": [ - "nonce", - "pub_key" - ], - "properties": { - "nonce": { - "$ref": "#/definitions/HexBinary" - }, - "pub_key": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "RawUpdateMsg": { - "type": "object", - "required": [ - "ciphertext", - "quantity", - "withdrawals" - ], - "properties": { - "ciphertext": { - "$ref": "#/definitions/HexBinary" - }, - "quantity": { - "type": "integer", - "format": "uint32", - "minimum": 0.0 - }, - "withdrawals": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/Uint128" - } - } - }, - "additionalProperties": false - }, - "ReportBody": { - "type": "object", - "required": [ - "advisoryIDs", - "advisoryURL", - "epidPseudonym", - "id", - "isvEnclaveQuoteBody", - "isvEnclaveQuoteStatus", - "platformInfoBlob", - "timestamp", - "version" - ], - "properties": { - "advisoryIDs": { - "type": "array", - "items": { - "type": "string" - } - }, - "advisoryURL": { - "type": "string" - }, - "epidPseudonym": { - "$ref": "#/definitions/Binary" - }, - "id": { - "type": "string" - }, - "isvEnclaveQuoteBody": { - "$ref": "#/definitions/Binary" - }, - "isvEnclaveQuoteStatus": { - "type": "string" - }, - "platformInfoBlob": { - "type": "string" - }, - "timestamp": { - "type": "string" - }, - "version": { - "type": "integer", - "format": "uint64", - "minimum": 0.0 - } - }, - "additionalProperties": false - }, - "TransferRequestMsg": { - "type": "object", - "required": [ - "ciphertext", - "digest" - ], - "properties": { - "ciphertext": { - "$ref": "#/definitions/HexBinary" - }, - "digest": { - "$ref": "#/definitions/HexBinary" - } - }, - "additionalProperties": false - }, - "Uint128": { - "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```", - "type": "string" - } - } - }, - "query": null, - "migrate": null, - "sudo": null, - "responses": null -} diff --git a/apps/transfers/enclave/README.md b/apps/transfers/enclave/README.md deleted file mode 100644 index 59d7565..0000000 --- a/apps/transfers/enclave/README.md +++ /dev/null @@ -1 +0,0 @@ -## MTCS Server \ No newline at end of file diff --git a/apps/transfers/quartz.toml b/apps/transfers/quartz.toml deleted file mode 100644 index e116391..0000000 --- a/apps/transfers/quartz.toml +++ /dev/null @@ -1,9 +0,0 @@ -mock_sgx = false -tx_sender = "admin" -chain_id = "testing" -node_url = "127.0.0.1:26657" -enclave_rpc_addr = "http://127.0.0.1" -enclave_rpc_port = 11090 -trusted_hash = "" -trusted_height = 0 -release = true diff --git a/cosmwasm/.gitignore b/cosmwasm/.gitignore deleted file mode 100644 index 52990d7..0000000 --- a/cosmwasm/.gitignore +++ /dev/null @@ -1,17 +0,0 @@ -# Build results -/artifacts -target/ -schema/ - -# Cargo+Git helper file (https://github.com/rust-lang/cargo/blob/0.44.1/src/cargo/sources/git/utils.rs#L320-L327) -.cargo-ok - -# Text file backups -**/*.rs.bk - -# macOS -.DS_Store - -# IDEs -*.iml -.idea diff --git a/cosmwasm/packages/tcbinfo/.editorconfig b/cosmwasm/packages/tcbinfo/.editorconfig deleted file mode 100644 index 3d36f20..0000000 --- a/cosmwasm/packages/tcbinfo/.editorconfig +++ /dev/null @@ -1,11 +0,0 @@ -root = true - -[*] -indent_style = space -indent_size = 2 -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true - -[*.rs] -indent_size = 4 diff --git a/cli/Cargo.toml b/crates/cli/Cargo.toml similarity index 100% rename from cli/Cargo.toml rename to crates/cli/Cargo.toml diff --git a/cli/README.md b/crates/cli/README.md similarity index 100% rename from cli/README.md rename to crates/cli/README.md diff --git a/cli/scripts/relay.sh b/crates/cli/scripts/relay.sh similarity index 100% rename from cli/scripts/relay.sh rename to crates/cli/scripts/relay.sh diff --git a/cli/src/cache.rs b/crates/cli/src/cache.rs similarity index 100% rename from cli/src/cache.rs rename to crates/cli/src/cache.rs diff --git a/cli/src/cli.rs b/crates/cli/src/cli.rs similarity index 100% rename from cli/src/cli.rs rename to crates/cli/src/cli.rs diff --git a/cli/src/config.rs b/crates/cli/src/config.rs similarity index 100% rename from cli/src/config.rs rename to crates/cli/src/config.rs diff --git a/cli/src/error.rs b/crates/cli/src/error.rs similarity index 100% rename from cli/src/error.rs rename to crates/cli/src/error.rs diff --git a/cli/src/handler.rs b/crates/cli/src/handler.rs similarity index 100% rename from cli/src/handler.rs rename to crates/cli/src/handler.rs diff --git a/cli/src/handler/contract_build.rs b/crates/cli/src/handler/contract_build.rs similarity index 100% rename from cli/src/handler/contract_build.rs rename to crates/cli/src/handler/contract_build.rs diff --git a/cli/src/handler/contract_deploy.rs b/crates/cli/src/handler/contract_deploy.rs similarity index 100% rename from cli/src/handler/contract_deploy.rs rename to crates/cli/src/handler/contract_deploy.rs diff --git a/cli/src/handler/dev.rs b/crates/cli/src/handler/dev.rs similarity index 100% rename from cli/src/handler/dev.rs rename to crates/cli/src/handler/dev.rs diff --git a/cli/src/handler/enclave_build.rs b/crates/cli/src/handler/enclave_build.rs similarity index 100% rename from cli/src/handler/enclave_build.rs rename to crates/cli/src/handler/enclave_build.rs diff --git a/cli/src/handler/enclave_start.rs b/crates/cli/src/handler/enclave_start.rs similarity index 100% rename from cli/src/handler/enclave_start.rs rename to crates/cli/src/handler/enclave_start.rs diff --git a/cli/src/handler/handshake.rs b/crates/cli/src/handler/handshake.rs similarity index 100% rename from cli/src/handler/handshake.rs rename to crates/cli/src/handler/handshake.rs diff --git a/cli/src/handler/init.rs b/crates/cli/src/handler/init.rs similarity index 100% rename from cli/src/handler/init.rs rename to crates/cli/src/handler/init.rs diff --git a/cli/src/handler/utils/helpers.rs b/crates/cli/src/handler/utils/helpers.rs similarity index 100% rename from cli/src/handler/utils/helpers.rs rename to crates/cli/src/handler/utils/helpers.rs diff --git a/cli/src/handler/utils/mod.rs b/crates/cli/src/handler/utils/mod.rs similarity index 100% rename from cli/src/handler/utils/mod.rs rename to crates/cli/src/handler/utils/mod.rs diff --git a/cli/src/handler/utils/relay.rs b/crates/cli/src/handler/utils/relay.rs similarity index 100% rename from cli/src/handler/utils/relay.rs rename to crates/cli/src/handler/utils/relay.rs diff --git a/cli/src/handler/utils/types.rs b/crates/cli/src/handler/utils/types.rs similarity index 100% rename from cli/src/handler/utils/types.rs rename to crates/cli/src/handler/utils/types.rs diff --git a/cli/src/main.rs b/crates/cli/src/main.rs similarity index 100% rename from cli/src/main.rs rename to crates/cli/src/main.rs diff --git a/cli/src/request.rs b/crates/cli/src/request.rs similarity index 100% rename from cli/src/request.rs rename to crates/cli/src/request.rs diff --git a/cli/src/request/contract_build.rs b/crates/cli/src/request/contract_build.rs similarity index 100% rename from cli/src/request/contract_build.rs rename to crates/cli/src/request/contract_build.rs diff --git a/cli/src/request/contract_deploy.rs b/crates/cli/src/request/contract_deploy.rs similarity index 100% rename from cli/src/request/contract_deploy.rs rename to crates/cli/src/request/contract_deploy.rs diff --git a/cli/src/request/dev.rs b/crates/cli/src/request/dev.rs similarity index 100% rename from cli/src/request/dev.rs rename to crates/cli/src/request/dev.rs diff --git a/cli/src/request/enclave_build.rs b/crates/cli/src/request/enclave_build.rs similarity index 100% rename from cli/src/request/enclave_build.rs rename to crates/cli/src/request/enclave_build.rs diff --git a/cli/src/request/enclave_start.rs b/crates/cli/src/request/enclave_start.rs similarity index 100% rename from cli/src/request/enclave_start.rs rename to crates/cli/src/request/enclave_start.rs diff --git a/cli/src/request/handshake.rs b/crates/cli/src/request/handshake.rs similarity index 100% rename from cli/src/request/handshake.rs rename to crates/cli/src/request/handshake.rs diff --git a/cli/src/request/init.rs b/crates/cli/src/request/init.rs similarity index 100% rename from cli/src/request/init.rs rename to crates/cli/src/request/init.rs diff --git a/cli/src/response.rs b/crates/cli/src/response.rs similarity index 100% rename from cli/src/response.rs rename to crates/cli/src/response.rs diff --git a/cli/src/response/contract_build.rs b/crates/cli/src/response/contract_build.rs similarity index 100% rename from cli/src/response/contract_build.rs rename to crates/cli/src/response/contract_build.rs diff --git a/cli/src/response/contract_deploy.rs b/crates/cli/src/response/contract_deploy.rs similarity index 100% rename from cli/src/response/contract_deploy.rs rename to crates/cli/src/response/contract_deploy.rs diff --git a/cli/src/response/dev.rs b/crates/cli/src/response/dev.rs similarity index 100% rename from cli/src/response/dev.rs rename to crates/cli/src/response/dev.rs diff --git a/cli/src/response/enclave_build.rs b/crates/cli/src/response/enclave_build.rs similarity index 100% rename from cli/src/response/enclave_build.rs rename to crates/cli/src/response/enclave_build.rs diff --git a/cli/src/response/enclave_start.rs b/crates/cli/src/response/enclave_start.rs similarity index 100% rename from cli/src/response/enclave_start.rs rename to crates/cli/src/response/enclave_start.rs diff --git a/cli/src/response/handshake.rs b/crates/cli/src/response/handshake.rs similarity index 100% rename from cli/src/response/handshake.rs rename to crates/cli/src/response/handshake.rs diff --git a/cli/src/response/init.rs b/crates/cli/src/response/init.rs similarity index 100% rename from cli/src/response/init.rs rename to crates/cli/src/response/init.rs diff --git a/core/quartz-common/Cargo.toml b/crates/common/Cargo.toml similarity index 100% rename from core/quartz-common/Cargo.toml rename to crates/common/Cargo.toml diff --git a/core/quartz-common/src/lib.rs b/crates/common/src/lib.rs similarity index 100% rename from core/quartz-common/src/lib.rs rename to crates/common/src/lib.rs diff --git a/cosmwasm/README.md b/crates/contracts/README.md similarity index 100% rename from cosmwasm/README.md rename to crates/contracts/README.md diff --git a/core/light-client-proofs/cw-proof/.gitignore b/crates/contracts/cw-proof/.gitignore similarity index 100% rename from core/light-client-proofs/cw-proof/.gitignore rename to crates/contracts/cw-proof/.gitignore diff --git a/core/light-client-proofs/cw-proof/Cargo.toml b/crates/contracts/cw-proof/Cargo.toml similarity index 100% rename from core/light-client-proofs/cw-proof/Cargo.toml rename to crates/contracts/cw-proof/Cargo.toml diff --git a/core/light-client-proofs/cw-proof/src/error.rs b/crates/contracts/cw-proof/src/error.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/error.rs rename to crates/contracts/cw-proof/src/error.rs diff --git a/core/light-client-proofs/cw-proof/src/lib.rs b/crates/contracts/cw-proof/src/lib.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/lib.rs rename to crates/contracts/cw-proof/src/lib.rs diff --git a/core/light-client-proofs/cw-proof/src/proof/cw.rs b/crates/contracts/cw-proof/src/proof/cw.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/proof/cw.rs rename to crates/contracts/cw-proof/src/proof/cw.rs diff --git a/core/light-client-proofs/cw-proof/src/proof/key.rs b/crates/contracts/cw-proof/src/proof/key.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/proof/key.rs rename to crates/contracts/cw-proof/src/proof/key.rs diff --git a/core/light-client-proofs/cw-proof/src/proof/mod.rs b/crates/contracts/cw-proof/src/proof/mod.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/proof/mod.rs rename to crates/contracts/cw-proof/src/proof/mod.rs diff --git a/core/light-client-proofs/cw-proof/src/proof/prefix.rs b/crates/contracts/cw-proof/src/proof/prefix.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/proof/prefix.rs rename to crates/contracts/cw-proof/src/proof/prefix.rs diff --git a/core/light-client-proofs/cw-proof/src/verifier/cw.rs b/crates/contracts/cw-proof/src/verifier/cw.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/verifier/cw.rs rename to crates/contracts/cw-proof/src/verifier/cw.rs diff --git a/core/light-client-proofs/cw-proof/src/verifier/ics23.rs b/crates/contracts/cw-proof/src/verifier/ics23.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/verifier/ics23.rs rename to crates/contracts/cw-proof/src/verifier/ics23.rs diff --git a/core/light-client-proofs/cw-proof/src/verifier/mod.rs b/crates/contracts/cw-proof/src/verifier/mod.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/verifier/mod.rs rename to crates/contracts/cw-proof/src/verifier/mod.rs diff --git a/core/light-client-proofs/cw-proof/src/verifier/multi.rs b/crates/contracts/cw-proof/src/verifier/multi.rs similarity index 100% rename from core/light-client-proofs/cw-proof/src/verifier/multi.rs rename to crates/contracts/cw-proof/src/verifier/multi.rs diff --git a/cosmwasm/packages/quartz-cw/Cargo.toml b/crates/contracts/quartz-cw/Cargo.toml similarity index 100% rename from cosmwasm/packages/quartz-cw/Cargo.toml rename to crates/contracts/quartz-cw/Cargo.toml diff --git a/cosmwasm/packages/quartz-cw/README.md b/crates/contracts/quartz-cw/README.md similarity index 100% rename from cosmwasm/packages/quartz-cw/README.md rename to crates/contracts/quartz-cw/README.md diff --git a/cosmwasm/packages/quartz-cw/SPEC.md b/crates/contracts/quartz-cw/SPEC.md similarity index 100% rename from cosmwasm/packages/quartz-cw/SPEC.md rename to crates/contracts/quartz-cw/SPEC.md diff --git a/cosmwasm/packages/quartz-cw/src/error.rs b/crates/contracts/quartz-cw/src/error.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/error.rs rename to crates/contracts/quartz-cw/src/error.rs diff --git a/cosmwasm/packages/quartz-cw/src/handler.rs b/crates/contracts/quartz-cw/src/handler.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/handler.rs rename to crates/contracts/quartz-cw/src/handler.rs diff --git a/cosmwasm/packages/quartz-cw/src/handler/execute.rs b/crates/contracts/quartz-cw/src/handler/execute.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/handler/execute.rs rename to crates/contracts/quartz-cw/src/handler/execute.rs diff --git a/cosmwasm/packages/quartz-cw/src/handler/execute/attested.rs b/crates/contracts/quartz-cw/src/handler/execute/attested.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/handler/execute/attested.rs rename to crates/contracts/quartz-cw/src/handler/execute/attested.rs diff --git a/cosmwasm/packages/quartz-cw/src/handler/execute/session_create.rs b/crates/contracts/quartz-cw/src/handler/execute/session_create.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/handler/execute/session_create.rs rename to crates/contracts/quartz-cw/src/handler/execute/session_create.rs diff --git a/cosmwasm/packages/quartz-cw/src/handler/execute/session_set_pub_key.rs b/crates/contracts/quartz-cw/src/handler/execute/session_set_pub_key.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/handler/execute/session_set_pub_key.rs rename to crates/contracts/quartz-cw/src/handler/execute/session_set_pub_key.rs diff --git a/cosmwasm/packages/quartz-cw/src/handler/instantiate.rs b/crates/contracts/quartz-cw/src/handler/instantiate.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/handler/instantiate.rs rename to crates/contracts/quartz-cw/src/handler/instantiate.rs diff --git a/cosmwasm/packages/quartz-cw/src/lib.rs b/crates/contracts/quartz-cw/src/lib.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/lib.rs rename to crates/contracts/quartz-cw/src/lib.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg.rs b/crates/contracts/quartz-cw/src/msg.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg.rs rename to crates/contracts/quartz-cw/src/msg.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg/execute.rs b/crates/contracts/quartz-cw/src/msg/execute.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg/execute.rs rename to crates/contracts/quartz-cw/src/msg/execute.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg/execute/attested.rs b/crates/contracts/quartz-cw/src/msg/execute/attested.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg/execute/attested.rs rename to crates/contracts/quartz-cw/src/msg/execute/attested.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg/execute/session_create.rs b/crates/contracts/quartz-cw/src/msg/execute/session_create.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg/execute/session_create.rs rename to crates/contracts/quartz-cw/src/msg/execute/session_create.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg/execute/session_set_pub_key.rs b/crates/contracts/quartz-cw/src/msg/execute/session_set_pub_key.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg/execute/session_set_pub_key.rs rename to crates/contracts/quartz-cw/src/msg/execute/session_set_pub_key.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg/instantiate.rs b/crates/contracts/quartz-cw/src/msg/instantiate.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg/instantiate.rs rename to crates/contracts/quartz-cw/src/msg/instantiate.rs diff --git a/cosmwasm/packages/quartz-cw/src/msg/query.rs b/crates/contracts/quartz-cw/src/msg/query.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/msg/query.rs rename to crates/contracts/quartz-cw/src/msg/query.rs diff --git a/cosmwasm/packages/quartz-cw/src/prelude.rs b/crates/contracts/quartz-cw/src/prelude.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/prelude.rs rename to crates/contracts/quartz-cw/src/prelude.rs diff --git a/cosmwasm/packages/quartz-cw/src/state.rs b/crates/contracts/quartz-cw/src/state.rs similarity index 100% rename from cosmwasm/packages/quartz-cw/src/state.rs rename to crates/contracts/quartz-cw/src/state.rs diff --git a/cosmwasm/packages/quartz-dcap-verifier/Cargo.toml b/crates/contracts/quartz-dcap-verifier/Cargo.toml similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/Cargo.toml rename to crates/contracts/quartz-dcap-verifier/Cargo.toml diff --git a/cosmwasm/packages/quartz-dcap-verifier/README.md b/crates/contracts/quartz-dcap-verifier/README.md similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/README.md rename to crates/contracts/quartz-dcap-verifier/README.md diff --git a/cosmwasm/packages/quartz-dcap-verifier/msgs/Cargo.toml b/crates/contracts/quartz-dcap-verifier/msgs/Cargo.toml similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/msgs/Cargo.toml rename to crates/contracts/quartz-dcap-verifier/msgs/Cargo.toml diff --git a/cosmwasm/packages/quartz-dcap-verifier/msgs/src/lib.rs b/crates/contracts/quartz-dcap-verifier/msgs/src/lib.rs similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/msgs/src/lib.rs rename to crates/contracts/quartz-dcap-verifier/msgs/src/lib.rs diff --git a/cosmwasm/packages/quartz-dcap-verifier/src/bin/dcap_verifier_schema.rs b/crates/contracts/quartz-dcap-verifier/src/bin/dcap_verifier_schema.rs similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/src/bin/dcap_verifier_schema.rs rename to crates/contracts/quartz-dcap-verifier/src/bin/dcap_verifier_schema.rs diff --git a/cosmwasm/packages/quartz-dcap-verifier/src/contract.rs b/crates/contracts/quartz-dcap-verifier/src/contract.rs similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/src/contract.rs rename to crates/contracts/quartz-dcap-verifier/src/contract.rs diff --git a/cosmwasm/packages/quartz-dcap-verifier/src/lib.rs b/crates/contracts/quartz-dcap-verifier/src/lib.rs similarity index 100% rename from cosmwasm/packages/quartz-dcap-verifier/src/lib.rs rename to crates/contracts/quartz-dcap-verifier/src/lib.rs diff --git a/cosmwasm/packages/quartz-tee-ra/Cargo.toml b/crates/contracts/quartz-tee-ra/Cargo.toml similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/Cargo.toml rename to crates/contracts/quartz-tee-ra/Cargo.toml diff --git a/cosmwasm/packages/quartz-tee-ra/README.md b/crates/contracts/quartz-tee-ra/README.md similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/README.md rename to crates/contracts/quartz-tee-ra/README.md diff --git a/cosmwasm/packages/quartz-tee-ra/data/DcapRootCACert.pem b/crates/contracts/quartz-tee-ra/data/DcapRootCACert.pem similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/DcapRootCACert.pem rename to crates/contracts/quartz-tee-ra/data/DcapRootCACert.pem diff --git a/cosmwasm/packages/quartz-tee-ra/data/fmspc_00906ED50000_2023_07_12.json b/crates/contracts/quartz-tee-ra/data/fmspc_00906ED50000_2023_07_12.json similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/fmspc_00906ED50000_2023_07_12.json rename to crates/contracts/quartz-tee-ra/data/fmspc_00906ED50000_2023_07_12.json diff --git a/cosmwasm/packages/quartz-tee-ra/data/hw_quote.dat b/crates/contracts/quartz-tee-ra/data/hw_quote.dat similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/hw_quote.dat rename to crates/contracts/quartz-tee-ra/data/hw_quote.dat diff --git a/cosmwasm/packages/quartz-tee-ra/data/leaf_cert.pem b/crates/contracts/quartz-tee-ra/data/leaf_cert.pem similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/leaf_cert.pem rename to crates/contracts/quartz-tee-ra/data/leaf_cert.pem diff --git a/cosmwasm/packages/quartz-tee-ra/data/processor_ca.pem b/crates/contracts/quartz-tee-ra/data/processor_ca.pem similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/processor_ca.pem rename to crates/contracts/quartz-tee-ra/data/processor_ca.pem diff --git a/cosmwasm/packages/quartz-tee-ra/data/processor_crl.der b/crates/contracts/quartz-tee-ra/data/processor_crl.der similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/processor_crl.der rename to crates/contracts/quartz-tee-ra/data/processor_crl.der diff --git a/cosmwasm/packages/quartz-tee-ra/data/qe_identity.json b/crates/contracts/quartz-tee-ra/data/qe_identity.json similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/qe_identity.json rename to crates/contracts/quartz-tee-ra/data/qe_identity.json diff --git a/cosmwasm/packages/quartz-tee-ra/data/root_ca.pem b/crates/contracts/quartz-tee-ra/data/root_ca.pem similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/root_ca.pem rename to crates/contracts/quartz-tee-ra/data/root_ca.pem diff --git a/cosmwasm/packages/quartz-tee-ra/data/root_crl.der b/crates/contracts/quartz-tee-ra/data/root_crl.der similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/root_crl.der rename to crates/contracts/quartz-tee-ra/data/root_crl.der diff --git a/cosmwasm/packages/quartz-tee-ra/data/tcb_signer.pem b/crates/contracts/quartz-tee-ra/data/tcb_signer.pem similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/data/tcb_signer.pem rename to crates/contracts/quartz-tee-ra/data/tcb_signer.pem diff --git a/cosmwasm/packages/quartz-tee-ra/src/intel_sgx.rs b/crates/contracts/quartz-tee-ra/src/intel_sgx.rs similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/src/intel_sgx.rs rename to crates/contracts/quartz-tee-ra/src/intel_sgx.rs diff --git a/cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap.rs b/crates/contracts/quartz-tee-ra/src/intel_sgx/dcap.rs similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap.rs rename to crates/contracts/quartz-tee-ra/src/intel_sgx/dcap.rs diff --git a/cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap/certificate_chain.rs b/crates/contracts/quartz-tee-ra/src/intel_sgx/dcap/certificate_chain.rs similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap/certificate_chain.rs rename to crates/contracts/quartz-tee-ra/src/intel_sgx/dcap/certificate_chain.rs diff --git a/cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier.rs b/crates/contracts/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier.rs similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier.rs rename to crates/contracts/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier.rs diff --git a/cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier/dcap.rs b/crates/contracts/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier/dcap.rs similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier/dcap.rs rename to crates/contracts/quartz-tee-ra/src/intel_sgx/dcap/mc_attest_verifier/dcap.rs diff --git a/cosmwasm/packages/quartz-tee-ra/src/lib.rs b/crates/contracts/quartz-tee-ra/src/lib.rs similarity index 100% rename from cosmwasm/packages/quartz-tee-ra/src/lib.rs rename to crates/contracts/quartz-tee-ra/src/lib.rs diff --git a/cosmwasm/packages/tcbinfo/.cargo/config.toml b/crates/contracts/tcbinfo/.cargo/config.toml similarity index 100% rename from cosmwasm/packages/tcbinfo/.cargo/config.toml rename to crates/contracts/tcbinfo/.cargo/config.toml diff --git a/cosmwasm/packages/tcbinfo/.gitignore b/crates/contracts/tcbinfo/.gitignore similarity index 100% rename from cosmwasm/packages/tcbinfo/.gitignore rename to crates/contracts/tcbinfo/.gitignore diff --git a/cosmwasm/packages/tcbinfo/Cargo.lock b/crates/contracts/tcbinfo/Cargo.lock similarity index 100% rename from cosmwasm/packages/tcbinfo/Cargo.lock rename to crates/contracts/tcbinfo/Cargo.lock diff --git a/cosmwasm/packages/tcbinfo/Cargo.toml b/crates/contracts/tcbinfo/Cargo.toml similarity index 100% rename from cosmwasm/packages/tcbinfo/Cargo.toml rename to crates/contracts/tcbinfo/Cargo.toml diff --git a/cosmwasm/packages/tcbinfo/README.md b/crates/contracts/tcbinfo/README.md similarity index 100% rename from cosmwasm/packages/tcbinfo/README.md rename to crates/contracts/tcbinfo/README.md diff --git a/cosmwasm/packages/tcbinfo/data/root_ca.pem b/crates/contracts/tcbinfo/data/root_ca.pem similarity index 100% rename from cosmwasm/packages/tcbinfo/data/root_ca.pem rename to crates/contracts/tcbinfo/data/root_ca.pem diff --git a/cosmwasm/packages/tcbinfo/data/tcb_signer.pem b/crates/contracts/tcbinfo/data/tcb_signer.pem similarity index 100% rename from cosmwasm/packages/tcbinfo/data/tcb_signer.pem rename to crates/contracts/tcbinfo/data/tcb_signer.pem diff --git a/cosmwasm/packages/tcbinfo/data/tcbinfo.json b/crates/contracts/tcbinfo/data/tcbinfo.json similarity index 100% rename from cosmwasm/packages/tcbinfo/data/tcbinfo.json rename to crates/contracts/tcbinfo/data/tcbinfo.json diff --git a/cosmwasm/packages/tcbinfo/msgs/Cargo.toml b/crates/contracts/tcbinfo/msgs/Cargo.toml similarity index 100% rename from cosmwasm/packages/tcbinfo/msgs/Cargo.toml rename to crates/contracts/tcbinfo/msgs/Cargo.toml diff --git a/cosmwasm/packages/tcbinfo/msgs/src/lib.rs b/crates/contracts/tcbinfo/msgs/src/lib.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/msgs/src/lib.rs rename to crates/contracts/tcbinfo/msgs/src/lib.rs diff --git a/cosmwasm/packages/tcbinfo/src/bin/tcbinfo_schema.rs b/crates/contracts/tcbinfo/src/bin/tcbinfo_schema.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/bin/tcbinfo_schema.rs rename to crates/contracts/tcbinfo/src/bin/tcbinfo_schema.rs diff --git a/cosmwasm/packages/tcbinfo/src/contract.rs b/crates/contracts/tcbinfo/src/contract.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/contract.rs rename to crates/contracts/tcbinfo/src/contract.rs diff --git a/cosmwasm/packages/tcbinfo/src/error.rs b/crates/contracts/tcbinfo/src/error.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/error.rs rename to crates/contracts/tcbinfo/src/error.rs diff --git a/cosmwasm/packages/tcbinfo/src/helpers.rs b/crates/contracts/tcbinfo/src/helpers.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/helpers.rs rename to crates/contracts/tcbinfo/src/helpers.rs diff --git a/cosmwasm/packages/tcbinfo/src/integration_tests.rs b/crates/contracts/tcbinfo/src/integration_tests.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/integration_tests.rs rename to crates/contracts/tcbinfo/src/integration_tests.rs diff --git a/cosmwasm/packages/tcbinfo/src/lib.rs b/crates/contracts/tcbinfo/src/lib.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/lib.rs rename to crates/contracts/tcbinfo/src/lib.rs diff --git a/cosmwasm/packages/tcbinfo/src/state.rs b/crates/contracts/tcbinfo/src/state.rs similarity index 100% rename from cosmwasm/packages/tcbinfo/src/state.rs rename to crates/contracts/tcbinfo/src/state.rs diff --git a/core/light-client-proofs/tm-stateless-verifier/.gitignore b/crates/contracts/tm-stateless-verifier/.gitignore similarity index 100% rename from core/light-client-proofs/tm-stateless-verifier/.gitignore rename to crates/contracts/tm-stateless-verifier/.gitignore diff --git a/core/light-client-proofs/tm-stateless-verifier/Cargo.toml b/crates/contracts/tm-stateless-verifier/Cargo.toml similarity index 100% rename from core/light-client-proofs/tm-stateless-verifier/Cargo.toml rename to crates/contracts/tm-stateless-verifier/Cargo.toml diff --git a/core/light-client-proofs/tm-stateless-verifier/src/error.rs b/crates/contracts/tm-stateless-verifier/src/error.rs similarity index 100% rename from core/light-client-proofs/tm-stateless-verifier/src/error.rs rename to crates/contracts/tm-stateless-verifier/src/error.rs diff --git a/core/light-client-proofs/tm-stateless-verifier/src/lib.rs b/crates/contracts/tm-stateless-verifier/src/lib.rs similarity index 100% rename from core/light-client-proofs/tm-stateless-verifier/src/lib.rs rename to crates/contracts/tm-stateless-verifier/src/lib.rs diff --git a/core/light-client-proofs/tm-stateless-verifier/src/null_io.rs b/crates/contracts/tm-stateless-verifier/src/null_io.rs similarity index 100% rename from core/light-client-proofs/tm-stateless-verifier/src/null_io.rs rename to crates/contracts/tm-stateless-verifier/src/null_io.rs diff --git a/core/light-client-proofs/tm-stateless-verifier/src/provider.rs b/crates/contracts/tm-stateless-verifier/src/provider.rs similarity index 100% rename from core/light-client-proofs/tm-stateless-verifier/src/provider.rs rename to crates/contracts/tm-stateless-verifier/src/provider.rs diff --git a/core/quartz/.gitignore b/crates/enclave/quartz-enclave/.gitignore similarity index 100% rename from core/quartz/.gitignore rename to crates/enclave/quartz-enclave/.gitignore diff --git a/core/quartz/Cargo.toml b/crates/enclave/quartz-enclave/Cargo.toml similarity index 98% rename from core/quartz/Cargo.toml rename to crates/enclave/quartz-enclave/Cargo.toml index 75ac6f4..e0e3149 100644 --- a/core/quartz/Cargo.toml +++ b/crates/enclave/quartz-enclave/Cargo.toml @@ -45,7 +45,6 @@ tendermint-rpc = { workspace = true, features=["websocket-client", "http-client" # quartz cw-proof.workspace = true -mtcs.workspace = true quartz-cw.workspace = true quartz-proto.workspace = true quartz-tee-ra.workspace = true diff --git a/core/quartz/README.md b/crates/enclave/quartz-enclave/README.md similarity index 100% rename from core/quartz/README.md rename to crates/enclave/quartz-enclave/README.md diff --git a/core/quartz/quartz.manifest.template b/crates/enclave/quartz-enclave/quartz.manifest.template similarity index 100% rename from core/quartz/quartz.manifest.template rename to crates/enclave/quartz-enclave/quartz.manifest.template diff --git a/core/quartz/src/attestor.rs b/crates/enclave/quartz-enclave/src/attestor.rs similarity index 93% rename from core/quartz/src/attestor.rs rename to crates/enclave/quartz-enclave/src/attestor.rs index ffa8815..6150301 100644 --- a/core/quartz/src/attestor.rs +++ b/crates/enclave/quartz-enclave/src/attestor.rs @@ -102,8 +102,7 @@ impl Attestor for DcapAttestor { version.minor_version = 1; let mut root_crl = - include_bytes!("../../../cosmwasm/packages/quartz-tee-ra/data/root_crl.der") - .to_vec(); + include_bytes!("../../../contracts/quartz-tee-ra/data/root_crl.der").to_vec(); root_crl.push(0); sgx_collateral.root_ca_crl = root_crl.as_ptr() as _; sgx_collateral.root_ca_crl_size = root_crl.len() as u32; @@ -118,10 +117,8 @@ impl Attestor for DcapAttestor { sgx_collateral.pck_crl_issuer_chain = pck_crl_issuer_chain.as_ptr() as _; sgx_collateral.pck_crl_issuer_chain_size = pck_crl_issuer_chain.len() as u32; - let root_cert = - include_str!("../../../cosmwasm/packages/quartz-tee-ra/data/root_ca.pem"); - let tcb_cert = - include_str!("../../../cosmwasm/packages/quartz-tee-ra/data/tcb_signer.pem"); + let root_cert = include_str!("../../../contracts/quartz-tee-ra/data/root_ca.pem"); + let tcb_cert = include_str!("../../../contracts/quartz-tee-ra/data/tcb_signer.pem"); let mut tcb_chain = [tcb_cert, root_cert].join("\n").as_bytes().to_vec(); tcb_chain.push(0); sgx_collateral.tcb_info_issuer_chain = tcb_chain.as_ptr() as _; @@ -135,7 +132,7 @@ impl Attestor for DcapAttestor { sgx_collateral.qe_identity_issuer_chain_size = tcb_chain.len() as u32; const QE_IDENTITY_JSON: &str = - include_str!("../../../cosmwasm/packages/quartz-tee-ra/data/qe_identity.json"); + include_str!("../../../contracts/quartz-tee-ra/data/qe_identity.json"); sgx_collateral.qe_identity = QE_IDENTITY_JSON.as_ptr() as _; sgx_collateral.qe_identity_size = QE_IDENTITY_JSON.len() as u32; diff --git a/core/quartz/src/error.rs b/crates/enclave/quartz-enclave/src/error.rs similarity index 100% rename from core/quartz/src/error.rs rename to crates/enclave/quartz-enclave/src/error.rs diff --git a/core/quartz/src/lib.rs b/crates/enclave/quartz-enclave/src/lib.rs similarity index 100% rename from core/quartz/src/lib.rs rename to crates/enclave/quartz-enclave/src/lib.rs diff --git a/core/quartz/src/server.rs b/crates/enclave/quartz-enclave/src/server.rs similarity index 100% rename from core/quartz/src/server.rs rename to crates/enclave/quartz-enclave/src/server.rs diff --git a/core/quartz/src/types.rs b/crates/enclave/quartz-enclave/src/types.rs similarity index 100% rename from core/quartz/src/types.rs rename to crates/enclave/quartz-enclave/src/types.rs diff --git a/core/quartz-proto/Cargo.toml b/crates/enclave/quartz-proto/Cargo.toml similarity index 100% rename from core/quartz-proto/Cargo.toml rename to crates/enclave/quartz-proto/Cargo.toml diff --git a/core/quartz-proto/build.rs b/crates/enclave/quartz-proto/build.rs similarity index 100% rename from core/quartz-proto/build.rs rename to crates/enclave/quartz-proto/build.rs diff --git a/core/quartz-proto/proto/quartz.proto b/crates/enclave/quartz-proto/proto/quartz.proto similarity index 100% rename from core/quartz-proto/proto/quartz.proto rename to crates/enclave/quartz-proto/proto/quartz.proto diff --git a/core/quartz-proto/src/lib.rs b/crates/enclave/quartz-proto/src/lib.rs similarity index 100% rename from core/quartz-proto/src/lib.rs rename to crates/enclave/quartz-proto/src/lib.rs diff --git a/core/quartz-proto/src/prost/quartz.rs b/crates/enclave/quartz-proto/src/prost/quartz.rs similarity index 90% rename from core/quartz-proto/src/prost/quartz.rs rename to crates/enclave/quartz-proto/src/prost/quartz.rs index 1160c83..fe1695b 100644 --- a/core/quartz-proto/src/prost/quartz.rs +++ b/crates/enclave/quartz-proto/src/prost/quartz.rs @@ -1,29 +1,23 @@ // This file is @generated by prost-build. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct InstantiateRequest {} -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct InstantiateResponse { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, Copy, PartialEq, ::prost::Message)] pub struct SessionCreateRequest {} -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SessionCreateResponse { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SessionSetPubKeyRequest { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct SessionSetPubKeyResponse { #[prost(string, tag = "1")] @@ -31,7 +25,13 @@ pub struct SessionSetPubKeyResponse { } /// Generated client implementations. pub mod core_client { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; use tonic::codegen::http::Uri; #[derive(Debug, Clone)] @@ -53,8 +53,8 @@ pub mod core_client { where T: tonic::client::GrpcService, T::Error: Into, - T::ResponseBody: Body + Send + 'static, - ::Error: Into + Send, + T::ResponseBody: Body + std::marker::Send + 'static, + ::Error: Into + std::marker::Send, { pub fn new(inner: T) -> Self { let inner = tonic::client::Grpc::new(inner); @@ -79,7 +79,7 @@ pub mod core_client { >, , - >>::Error: Into + Send + Sync, + >>::Error: Into + std::marker::Send + std::marker::Sync, { CoreClient::new(InterceptedService::new(inner, interceptor)) } @@ -125,8 +125,7 @@ pub mod core_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -147,8 +146,7 @@ pub mod core_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -171,8 +169,7 @@ pub mod core_client { .ready() .await .map_err(|e| { - tonic::Status::new( - tonic::Code::Unknown, + tonic::Status::unknown( format!("Service was not ready: {}", e.into()), ) })?; @@ -189,11 +186,17 @@ pub mod core_client { } /// Generated server implementations. pub mod core_server { - #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)] + #![allow( + unused_variables, + dead_code, + missing_docs, + clippy::wildcard_imports, + clippy::let_unit_value, + )] use tonic::codegen::*; /// Generated trait containing gRPC methods that should be implemented for use with CoreServer. #[async_trait] - pub trait Core: Send + Sync + 'static { + pub trait Core: std::marker::Send + std::marker::Sync + 'static { async fn instantiate( &self, request: tonic::Request, @@ -217,14 +220,14 @@ pub mod core_server { >; } #[derive(Debug)] - pub struct CoreServer { + pub struct CoreServer { inner: Arc, accept_compression_encodings: EnabledCompressionEncodings, send_compression_encodings: EnabledCompressionEncodings, max_decoding_message_size: Option, max_encoding_message_size: Option, } - impl CoreServer { + impl CoreServer { pub fn new(inner: T) -> Self { Self::from_arc(Arc::new(inner)) } @@ -278,8 +281,8 @@ pub mod core_server { impl tonic::codegen::Service> for CoreServer where T: Core, - B: Body + Send + 'static, - B::Error: Into + Send + 'static, + B: Body + std::marker::Send + 'static, + B::Error: Into + std::marker::Send + 'static, { type Response = http::Response; type Error = std::convert::Infallible; @@ -427,23 +430,25 @@ pub mod core_server { } _ => { Box::pin(async move { - Ok( - http::Response::builder() - .status(200) - .header("grpc-status", tonic::Code::Unimplemented as i32) - .header( - http::header::CONTENT_TYPE, - tonic::metadata::GRPC_CONTENT_TYPE, - ) - .body(empty_body()) - .unwrap(), - ) + let mut response = http::Response::new(empty_body()); + let headers = response.headers_mut(); + headers + .insert( + tonic::Status::GRPC_STATUS, + (tonic::Code::Unimplemented as i32).into(), + ); + headers + .insert( + http::header::CONTENT_TYPE, + tonic::metadata::GRPC_CONTENT_TYPE, + ); + Ok(response) }) } } } } - impl Clone for CoreServer { + impl Clone for CoreServer { fn clone(&self) -> Self { let inner = self.inner.clone(); Self { @@ -455,7 +460,9 @@ pub mod core_server { } } } - impl tonic::server::NamedService for CoreServer { - const NAME: &'static str = "quartz.Core"; + /// Generated gRPC service name + pub const SERVICE_NAME: &str = "quartz.Core"; + impl tonic::server::NamedService for CoreServer { + const NAME: &'static str = SERVICE_NAME; } } diff --git a/utils/cw-prover/Cargo.toml b/crates/utils/cw-prover/Cargo.toml similarity index 100% rename from utils/cw-prover/Cargo.toml rename to crates/utils/cw-prover/Cargo.toml diff --git a/utils/cw-prover/README.md b/crates/utils/cw-prover/README.md similarity index 100% rename from utils/cw-prover/README.md rename to crates/utils/cw-prover/README.md diff --git a/utils/cw-prover/src/main.rs b/crates/utils/cw-prover/src/main.rs similarity index 100% rename from utils/cw-prover/src/main.rs rename to crates/utils/cw-prover/src/main.rs diff --git a/utils/print-fmspc/Cargo.toml b/crates/utils/print-fmspc/Cargo.toml similarity index 100% rename from utils/print-fmspc/Cargo.toml rename to crates/utils/print-fmspc/Cargo.toml diff --git a/utils/print-fmspc/src/main.rs b/crates/utils/print-fmspc/src/main.rs similarity index 100% rename from utils/print-fmspc/src/main.rs rename to crates/utils/print-fmspc/src/main.rs diff --git a/utils/tm-prover/Cargo.toml b/crates/utils/tm-prover/Cargo.toml similarity index 100% rename from utils/tm-prover/Cargo.toml rename to crates/utils/tm-prover/Cargo.toml diff --git a/utils/tm-prover/README.md b/crates/utils/tm-prover/README.md similarity index 100% rename from utils/tm-prover/README.md rename to crates/utils/tm-prover/README.md diff --git a/utils/tm-prover/src/config.rs b/crates/utils/tm-prover/src/config.rs similarity index 100% rename from utils/tm-prover/src/config.rs rename to crates/utils/tm-prover/src/config.rs diff --git a/utils/tm-prover/src/lib.rs b/crates/utils/tm-prover/src/lib.rs similarity index 100% rename from utils/tm-prover/src/lib.rs rename to crates/utils/tm-prover/src/lib.rs diff --git a/utils/tm-prover/src/main.rs b/crates/utils/tm-prover/src/main.rs similarity index 100% rename from utils/tm-prover/src/main.rs rename to crates/utils/tm-prover/src/main.rs diff --git a/utils/tm-prover/src/prover.rs b/crates/utils/tm-prover/src/prover.rs similarity index 100% rename from utils/tm-prover/src/prover.rs rename to crates/utils/tm-prover/src/prover.rs diff --git a/cosmwasm/packages/wasmd-client/Cargo.toml b/crates/utils/wasmd-client/Cargo.toml similarity index 100% rename from cosmwasm/packages/wasmd-client/Cargo.toml rename to crates/utils/wasmd-client/Cargo.toml diff --git a/cosmwasm/packages/wasmd-client/README.md b/crates/utils/wasmd-client/README.md similarity index 100% rename from cosmwasm/packages/wasmd-client/README.md rename to crates/utils/wasmd-client/README.md diff --git a/cosmwasm/packages/wasmd-client/src/lib.rs b/crates/utils/wasmd-client/src/lib.rs similarity index 100% rename from cosmwasm/packages/wasmd-client/src/lib.rs rename to crates/utils/wasmd-client/src/lib.rs diff --git a/apps/mtcs/.cargo/config.toml b/examples/transfers/.cargo/config.toml similarity index 100% rename from apps/mtcs/.cargo/config.toml rename to examples/transfers/.cargo/config.toml diff --git a/apps/transfers/README.md b/examples/transfers/README.md similarity index 100% rename from apps/transfers/README.md rename to examples/transfers/README.md diff --git a/apps/transfers/cargo-generate.toml b/examples/transfers/cargo-generate.toml similarity index 100% rename from apps/transfers/cargo-generate.toml rename to examples/transfers/cargo-generate.toml diff --git a/apps/transfers/contracts/.cargo/config.toml b/examples/transfers/contracts/.cargo/config.toml similarity index 85% rename from apps/transfers/contracts/.cargo/config.toml rename to examples/transfers/contracts/.cargo/config.toml index 9354fae..4c12448 100644 --- a/apps/transfers/contracts/.cargo/config.toml +++ b/examples/transfers/contracts/.cargo/config.toml @@ -2,3 +2,4 @@ wasm = "build --target wasm32-unknown-unknown --release --lib" wasm-debug = "build --target wasm32-unknown-unknown --lib" schema = "run schema" +unit-test = "test --lib" diff --git a/apps/transfers/contracts/Cargo.lock b/examples/transfers/contracts/Cargo.lock similarity index 100% rename from apps/transfers/contracts/Cargo.lock rename to examples/transfers/contracts/Cargo.lock diff --git a/apps/transfers/contracts/Cargo.toml b/examples/transfers/contracts/Cargo.toml similarity index 95% rename from apps/transfers/contracts/Cargo.toml rename to examples/transfers/contracts/Cargo.toml index 6a7d322..79ac893 100644 --- a/apps/transfers/contracts/Cargo.toml +++ b/examples/transfers/contracts/Cargo.toml @@ -1,3 +1,5 @@ +[workspace] + [package] name = "transfers-contract" version = "0.1.0" @@ -40,7 +42,8 @@ cw-storage-plus = { version = "2.0.0", default-features = false } cw-utils = { version = "2.0.0", default-features = false } # quartz -quartz-common = { git = "ssh://git@github.com/informalsystems/cycles-quartz.git", features=["contract"]} +quartz-common = { git = "ssh://git@github.com/informalsystems/cycles-quartz.git", features = ["contract"] } + # patch indirect deps getrandom = { version = "0.2.15", features = ["js"] } diff --git a/apps/transfers/contracts/bin/schema.rs b/examples/transfers/contracts/bin/schema.rs similarity index 100% rename from apps/transfers/contracts/bin/schema.rs rename to examples/transfers/contracts/bin/schema.rs diff --git a/apps/transfers/contracts/build.sh b/examples/transfers/contracts/build.sh similarity index 100% rename from apps/transfers/contracts/build.sh rename to examples/transfers/contracts/build.sh diff --git a/apps/transfers/contracts/deploy-contract-Neutrond.sh b/examples/transfers/contracts/deploy-contract-Neutrond.sh similarity index 100% rename from apps/transfers/contracts/deploy-contract-Neutrond.sh rename to examples/transfers/contracts/deploy-contract-Neutrond.sh diff --git a/apps/mtcs/contracts/cw-tee-mtcs/deploy-contract.sh b/examples/transfers/contracts/deploy-contract.sh similarity index 100% rename from apps/mtcs/contracts/cw-tee-mtcs/deploy-contract.sh rename to examples/transfers/contracts/deploy-contract.sh diff --git a/apps/transfers/contracts/src/contract.rs b/examples/transfers/contracts/src/contract.rs similarity index 100% rename from apps/transfers/contracts/src/contract.rs rename to examples/transfers/contracts/src/contract.rs diff --git a/apps/transfers/contracts/src/error.rs b/examples/transfers/contracts/src/error.rs similarity index 100% rename from apps/transfers/contracts/src/error.rs rename to examples/transfers/contracts/src/error.rs diff --git a/apps/transfers/contracts/src/lib.rs b/examples/transfers/contracts/src/lib.rs similarity index 100% rename from apps/transfers/contracts/src/lib.rs rename to examples/transfers/contracts/src/lib.rs diff --git a/apps/transfers/contracts/src/msg.rs b/examples/transfers/contracts/src/msg.rs similarity index 100% rename from apps/transfers/contracts/src/msg.rs rename to examples/transfers/contracts/src/msg.rs diff --git a/apps/transfers/contracts/src/state.rs b/examples/transfers/contracts/src/state.rs similarity index 100% rename from apps/transfers/contracts/src/state.rs rename to examples/transfers/contracts/src/state.rs diff --git a/examples/transfers/enclave/.DS_Store b/examples/transfers/enclave/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5172429f264de2441865cb4700216d4256da9242 GIT binary patch literal 6148 zcmeH~J!%6%427R!7lt%jx}3%b$PET#pTHLgIFQEJ;E>dF^gR7ES*H$5cmnB-G%I%Z zD|S`@Z2$T80!#olbXV*=%*>dt@PRwdU#I)^a=X5>;#J@&VrHyNnC;iLL0pQvfVyTmjO&;ssLc!1UOG})p;=82 zR;?Ceh}WZ?+UmMqI#RP8R>OzYoz15hnq@nzF`-!xQ4j$Um=RcIKKc27r2jVm&svm< zfC&6E0=7P!4tu^-ovjbA=k?dB`g+i*aXG_}p8zI)6mRKa+;6_1_R^8c3Qa!(fk8n8 H{*=HsM+*^= literal 0 HcmV?d00001 diff --git a/apps/transfers/enclave/Cargo.lock b/examples/transfers/enclave/Cargo.lock similarity index 93% rename from apps/transfers/enclave/Cargo.lock rename to examples/transfers/enclave/Cargo.lock index 444fa5a..a2e34a1 100644 --- a/apps/transfers/enclave/Cargo.lock +++ b/examples/transfers/enclave/Cargo.lock @@ -87,9 +87,9 @@ checksum = "1bec1de6f59aedf83baf9ff929c98f2ad654b97c9510f4e70cf6f661d49fd5b1" [[package]] name = "anyhow" -version = "1.0.86" +version = "1.0.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da" +checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6" dependencies = [ "backtrace", ] @@ -217,9 +217,9 @@ dependencies = [ [[package]] name = "arrayref" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" @@ -251,7 +251,7 @@ checksum = "965c2d33e53cb6b267e148a4cb0760bc01f4904c1cd4bb4002a085bb016d1490" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", "synstructure", ] @@ -263,7 +263,7 @@ checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -285,18 +285,18 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] name = "async-trait" -version = "0.1.81" +version = "0.1.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107" +checksum = "721cae7de5c34fbb2acd27e21e6d2cf7b886dce0c27388d46c4e6c47ea4318dd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -324,15 +324,15 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" [[package]] name = "autocfg" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "axum" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf" +checksum = "504e3947307ac8326a5437504c517c4b56716c9d98fac0028c2acc7ca47d70ae" dependencies = [ "async-trait", "axum-core", @@ -350,16 +350,16 @@ dependencies = [ "rustversion", "serde", "sync_wrapper 1.0.1", - "tower 0.4.13", + "tower 0.5.1", "tower-layer", "tower-service", ] [[package]] name = "axum-core" -version = "0.4.3" +version = "0.4.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a15c63fd72d41492dc4f497196f5da1fb04fb7529e631d73630d1b491e47a2e3" +checksum = "09f2bd6146b97ae3359fa0cc6d6b376d9539582c7b4220f041a33ec24c226199" dependencies = [ "async-trait", "bytes", @@ -370,7 +370,7 @@ dependencies = [ "mime", "pin-project-lite", "rustversion", - "sync_wrapper 0.1.2", + "sync_wrapper 1.0.1", "tower-layer", "tower-service", ] @@ -498,18 +498,18 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.7.1" +version = "1.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50" +checksum = "428d9aa8fbc0670b7b8d6030a7fadd0f86151cae55e4dbbece15f3780a3dfaf3" dependencies = [ "serde", ] [[package]] name = "cc" -version = "1.1.15" +version = "1.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57b6a275aa2903740dc87da01c62040406b8812552e97129a63ea8850a17c6e6" +checksum = "3bbb537bb4a30b90362caddba8f360c0a56bc13d3a5570028e7197204cb54a17" dependencies = [ "shlex", ] @@ -569,9 +569,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.16" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed6719fffa43d0d87e5fd8caeab59be1554fb028cd30edc88fc4369b17971019" +checksum = "b0956a43b323ac1afaffc053ed5c4b7c1f1800bacd1683c353aabbb752515dd3" dependencies = [ "clap_builder", "clap_derive", @@ -579,9 +579,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.15" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216aec2b177652e3846684cbfe25c9964d18ec45234f0f5da5157b207ed1aab6" +checksum = "4d72166dd41634086d5803a47eb71ae740e61d84709c36f3c34110173db3961b" dependencies = [ "anstyle", "clap_lex", @@ -589,14 +589,14 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.13" +version = "4.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501d359d5f3dcaf6ecdeee48833ae73ec6e42723a1e52419c79abf9507eec0a0" +checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab" dependencies = [ "heck", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -689,15 +689,15 @@ dependencies = [ [[package]] name = "cosmwasm-core" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d905990ef3afb5753bb709dc7de88e9e370aa32bcc2f31731d4b533b63e82490" +checksum = "5f6ceb8624260d0d3a67c4e1a1d43fc7e9406720afbcb124521501dd138f90aa" [[package]] name = "cosmwasm-crypto" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b2a7bd9c1dd9a377a4dc0f4ad97d24b03c33798cd5a6d7ceb8869b41c5d2f2d" +checksum = "4125381e5fd7fefe9f614640049648088015eca2b60d861465329a5d87dfa538" dependencies = [ "ark-bls12-381", "ark-ec", @@ -718,20 +718,20 @@ dependencies = [ [[package]] name = "cosmwasm-derive" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029910b409398fdf81955d7301b906caf81f2c42b013ea074fbd89720229c424" +checksum = "1b5658b1dc64e10b56ae7a449f678f96932a96f6cfad1769d608d1d1d656480a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] name = "cosmwasm-schema" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc0d4d85e83438ab9a0fea9348446f7268bc016aacfebce37e998559f151294" +checksum = "f86b4d949b6041519c58993a73f4bbfba8083ba14f7001eae704865a09065845" dependencies = [ "cosmwasm-schema-derive", "schemars", @@ -742,20 +742,20 @@ dependencies = [ [[package]] name = "cosmwasm-schema-derive" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edf5c8adac41bb7751c050d7c4c18675be19ee128714454454575e894424eeef" +checksum = "c8ef1b5835a65fcca3ab8b9a02b4f4dacc78e233a5c2f20b270efb9db0666d12" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] name = "cosmwasm-std" -version = "2.1.3" +version = "2.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51dec99a2e478715c0a4277f0dbeadbb8466500eb7dec873d0924edd086e77f1" +checksum = "70eb7ab0c1e99dd6207496963ba2a457c4128ac9ad9c72a83f8d9808542b849b" dependencies = [ "base64 0.22.1", "bech32", @@ -776,9 +776,9 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.13" +version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad" +checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0" dependencies = [ "libc", ] @@ -878,7 +878,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -907,7 +907,7 @@ dependencies = [ "cw-utils", "derivative", "itertools 0.13.0", - "prost 0.13.1", + "prost 0.13.3", "schemars", "serde", "sha2 0.10.8", @@ -917,13 +917,13 @@ dependencies = [ [[package]] name = "cw-proof" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "clap", "cosmrs", "displaydoc", "ics23", - "prost 0.13.1", + "prost 0.13.3", "serde", "serde_with", "tendermint 0.38.1", @@ -975,7 +975,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -986,7 +986,7 @@ checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806" dependencies = [ "darling_core", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -1030,7 +1030,7 @@ checksum = "8034092389675178f570469e6c3b0465d3d30b4505c294a6550db47f3c17ad18" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -1061,7 +1061,7 @@ checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -1081,7 +1081,7 @@ checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", "unicode-xid", ] @@ -1114,7 +1114,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -1371,7 +1371,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -1466,7 +1466,7 @@ dependencies = [ "futures-sink", "futures-util", "http 0.2.12", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -1485,7 +1485,7 @@ dependencies = [ "futures-core", "futures-sink", "http 1.1.0", - "indexmap 2.4.0", + "indexmap 2.5.0", "slab", "tokio", "tokio-util", @@ -1715,7 +1715,7 @@ dependencies = [ "http 1.1.0", "hyper 1.4.1", "hyper-util", - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", "tokio-rustls 0.26.0", @@ -1754,9 +1754,9 @@ dependencies = [ [[package]] name = "hyper-util" -version = "0.1.7" +version = "0.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9" +checksum = "41296eb09f183ac68eec06e03cdbea2e759633d4067b2f6552fc2e009bcad08b" dependencies = [ "bytes", "futures-channel", @@ -1767,7 +1767,6 @@ dependencies = [ "pin-project-lite", "socket2", "tokio", - "tower 0.4.13", "tower-service", "tracing", ] @@ -1783,7 +1782,7 @@ dependencies = [ "blake3", "bytes", "hex", - "prost 0.13.1", + "prost 0.13.3", "ripemd", "sha2 0.10.8", "sha3", @@ -1823,9 +1822,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.4.0" +version = "2.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c" +checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5" dependencies = [ "equivalent", "hashbrown 0.14.5", @@ -1842,9 +1841,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.9.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" +checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4" [[package]] name = "itertools" @@ -1890,9 +1889,9 @@ dependencies = [ [[package]] name = "k256" -version = "0.13.3" +version = "0.13.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "956ff9b67e26e1a6a866cb758f12c6f8746208489e3e4a4b5580802f2f0a587b" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" dependencies = [ "cfg-if", "ecdsa", @@ -1917,9 +1916,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.158" +version = "0.2.159" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439" +checksum = "561d97a539a36e26a9a5fad1ea11a3039a67714694aaa379433e580854bc3dc5" [[package]] name = "libsecp256k1" @@ -2273,9 +2272,12 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.19.0" +version = "1.20.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" +checksum = "82881c4be219ab5faaf2ad5e5e5ecdff8c66bd7402ca3160975c93b24961afd1" +dependencies = [ + "portable-atomic", +] [[package]] name = "opaque-debug" @@ -2306,7 +2308,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -2433,7 +2435,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" dependencies = [ "fixedbitset", - "indexmap 2.4.0", + "indexmap 2.5.0", ] [[package]] @@ -2453,7 +2455,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -2496,6 +2498,12 @@ dependencies = [ "universal-hash", ] +[[package]] +name = "portable-atomic" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc9c68a3f6da06753e9335d63e27f6b9754dd1920d941135b7ea8224f141adb2" + [[package]] name = "powerfmt" version = "0.2.0" @@ -2518,7 +2526,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba" dependencies = [ "proc-macro2", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -2551,19 +2559,19 @@ dependencies = [ [[package]] name = "prost" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e13db3d3fde688c61e2446b4d843bc27a7e8af269a69440c0308021dc92333cc" +checksum = "7b0487d90e047de87f984913713b85c601c05609aad5b0df4b4573fbf69aa13f" dependencies = [ "bytes", - "prost-derive 0.13.1", + "prost-derive 0.13.3", ] [[package]] name = "prost-build" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bb182580f71dd070f88d01ce3de9f4da5021db7115d2e1c3605a754153b77c1" +checksum = "0c1318b19085f08681016926435853bbf7858f9c082d0999b80550ff5d9abe15" dependencies = [ "bytes", "heck", @@ -2573,10 +2581,10 @@ dependencies = [ "once_cell", "petgraph 0.6.5", "prettyplease", - "prost 0.13.1", - "prost-types 0.13.1", + "prost 0.13.3", + "prost-types 0.13.3", "regex", - "syn 2.0.76", + "syn 2.0.79", "tempfile", ] @@ -2590,20 +2598,20 @@ dependencies = [ "itertools 0.12.1", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] name = "prost-derive" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18bec9b0adc4eba778b33684b7ba3e7137789434769ee3ce3930463ef904cfca" +checksum = "e9552f850d5f0964a4e4d0bf306459ac29323ddfbae05e35a7c0d35cb0803cc5" dependencies = [ "anyhow", "itertools 0.13.0", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -2617,11 +2625,11 @@ dependencies = [ [[package]] name = "prost-types" -version = "0.13.1" +version = "0.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cee5168b05f49d4b0ca581206eb14a7b22fafd963efe729ac48eb03266e25cc2" +checksum = "4759aa0d3a6232fb8dbdb97b61de2c20047c68aca932c7ed76da9d788508d670" dependencies = [ - "prost 0.13.1", + "prost 0.13.3", ] [[package]] @@ -2640,9 +2648,9 @@ dependencies = [ "futures-util", "hex", "k256", - "prost 0.13.1", + "prost 0.13.3", "quartz-common", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", "sha2 0.10.8", @@ -2662,7 +2670,7 @@ dependencies = [ [[package]] name = "quartz-common" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "quartz-cw", "quartz-enclave", @@ -2672,7 +2680,7 @@ dependencies = [ [[package]] name = "quartz-cw" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "ciborium", "cosmwasm-schema", @@ -2693,7 +2701,7 @@ dependencies = [ [[package]] name = "quartz-dcap-verifier-msgs" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -2702,7 +2710,7 @@ dependencies = [ [[package]] name = "quartz-enclave" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "anyhow", "async-trait", @@ -2721,7 +2729,7 @@ dependencies = [ "quartz-proto", "quartz-tee-ra", "rand", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", "sha2 0.10.8", @@ -2739,9 +2747,9 @@ dependencies = [ [[package]] name = "quartz-proto" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ - "prost 0.13.1", + "prost 0.13.3", "tonic", "tonic-build", ] @@ -2749,7 +2757,7 @@ dependencies = [ [[package]] name = "quartz-tee-ra" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "cosmwasm-schema", "cosmwasm-std", @@ -2777,7 +2785,7 @@ dependencies = [ "quinn-proto", "quinn-udp", "rustc-hash", - "rustls 0.23.12", + "rustls 0.23.13", "socket2", "thiserror", "tokio", @@ -2794,7 +2802,7 @@ dependencies = [ "rand", "ring", "rustc-hash", - "rustls 0.23.12", + "rustls 0.23.13", "slab", "thiserror", "tinyvec", @@ -2875,23 +2883,23 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.5.3" +version = "0.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4" +checksum = "9b6dfecf2c74bce2466cabf93f6664d6998a69eb21e39f4207930065b27b771f" dependencies = [ "bitflags 2.6.0", ] [[package]] name = "regex" -version = "1.10.6" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619" +checksum = "38200e5ee88914975b69f657f0801b6f6dccafd44fd9326302a4aaeecfacb1d8" dependencies = [ "aho-corasick", "memchr", - "regex-automata 0.4.7", - "regex-syntax 0.8.4", + "regex-automata 0.4.8", + "regex-syntax 0.8.5", ] [[package]] @@ -2905,13 +2913,13 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df" +checksum = "368758f23274712b504848e9d5a6f010445cc8b87a7cdb4d7cbee666c1288da3" dependencies = [ "aho-corasick", "memchr", - "regex-syntax 0.8.4", + "regex-syntax 0.8.5", ] [[package]] @@ -2922,9 +2930,9 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] name = "regex-syntax" -version = "0.8.4" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b" +checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" @@ -2969,9 +2977,9 @@ dependencies = [ [[package]] name = "reqwest" -version = "0.12.7" +version = "0.12.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f4955649ef5c38cc7f9e8aa41761d48fb9677197daea9984dc54f56aad5e63" +checksum = "f713147fbe92361e52392c73b8c9e48c04c6625bce969ef54dc901e58e042a7b" dependencies = [ "base64 0.22.1", "bytes", @@ -2996,8 +3004,8 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.12", - "rustls-pemfile 2.1.3", + "rustls 0.23.13", + "rustls-pemfile 2.2.0", "rustls-pki-types", "serde", "serde_json", @@ -3082,9 +3090,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.35" +version = "0.38.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85d50532239da68e9addb745ba38ff4612a242c1c7ceea689c4bc7c2f43c36f" +checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" dependencies = [ "bitflags 2.6.0", "errno", @@ -3114,21 +3122,21 @@ dependencies = [ "log", "ring", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] [[package]] name = "rustls" -version = "0.23.12" +version = "0.23.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044" +checksum = "f2dabaac7466917e566adb06783a81ca48944c6898a1b08b9374106dd671f4c8" dependencies = [ "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.102.7", + "rustls-webpki 0.102.8", "subtle", "zeroize", ] @@ -3152,7 +3160,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5" dependencies = [ "openssl-probe", - "rustls-pemfile 2.1.3", + "rustls-pemfile 2.2.0", "rustls-pki-types", "schannel", "security-framework", @@ -3169,19 +3177,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "2.1.3" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425" +checksum = "dce314e5fee3f39953d46bb63bb8a46d40c2f8fb7cc5a3b6cab2bde9721d6e50" dependencies = [ - "base64 0.22.1", "rustls-pki-types", ] [[package]] name = "rustls-pki-types" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0" +checksum = "0e696e35370c65c9c541198af4543ccd580cf17fc25d8e05c5a242b202488c55" [[package]] name = "rustls-webpki" @@ -3195,9 +3202,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.102.7" +version = "0.102.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84678086bd54edf2b415183ed7a94d0efb049f1b646a33e22a36f3794be6ae56" +checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9" dependencies = [ "ring", "rustls-pki-types", @@ -3227,11 +3234,11 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.59.0", ] [[package]] @@ -3255,7 +3262,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -3303,9 +3310,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.11.1" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf" +checksum = "ea4a292869320c0272d7bc55a5a6aafaff59b4f63404a003887b679a2e05b4b6" dependencies = [ "core-foundation-sys", "libc", @@ -3319,9 +3326,9 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b" [[package]] name = "serde" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99fce0ffe7310761ca6bf9faf5115afbc19688edd00171d81b1bb1b116c63e09" +checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a" dependencies = [ "serde_derive", ] @@ -3356,13 +3363,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.209" +version = "1.0.210" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5831b979fd7b5439637af1752d535ff49f4860c0f341d1baeb6faf0f4242170" +checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -3373,14 +3380,14 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] name = "serde_json" -version = "1.0.127" +version = "1.0.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8043c06d9f82bd7271361ed64f415fe5e12a77fdb52e573e7f06a516dea329ad" +checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8" dependencies = [ "itoa", "memchr", @@ -3396,14 +3403,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] name = "serde_spanned" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d" +checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" dependencies = [ "serde", ] @@ -3445,7 +3452,7 @@ dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -3605,9 +3612,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.76" +version = "2.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578e081a14e0cefc3279b0472138c513f37b41a08d5a3cca9b6e4e8ceb6cd525" +checksum = "89132cd0bf050864e1d38dc3bbc07a0eb8e7530af26344d3d2bbbef83499f590" dependencies = [ "proc-macro2", "quote", @@ -3637,7 +3644,7 @@ checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -3685,16 +3692,16 @@ dependencies = [ [[package]] name = "tcbinfo-msgs" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "cosmwasm-schema", ] [[package]] name = "tempfile" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64" +checksum = "f0f2c9fc62d0beef6951ccffd757e241266a2c833136efbe35af6cd2567dca5b" dependencies = [ "cfg-if", "fastrand", @@ -3748,8 +3755,8 @@ dependencies = [ "futures", "num-traits", "once_cell", - "prost 0.13.1", - "prost-types 0.13.1", + "prost 0.13.3", + "prost-types 0.13.3", "serde", "serde_bytes", "serde_json", @@ -3862,8 +3869,8 @@ checksum = "8ed14abe3b0502a3afe21ca74ca5cdd6c7e8d326d982c26f98a394445eb31d6e" dependencies = [ "bytes", "flex-error", - "prost 0.13.1", - "prost-types 0.13.1", + "prost 0.13.3", + "prost-types 0.13.3", "serde", "serde_bytes", "subtle-encoding", @@ -3906,22 +3913,22 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724" +checksum = "d50af8abc119fb8bb6dbabcfa89656f46f84aa0ac7688088608076ad2b459a84" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.63" +version = "1.0.64" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261" +checksum = "08904e7672f5eb876eaaf87e0ce17857500934f4981c4a0ab2b4aa98baac7fc3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -3983,7 +3990,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tm-prover" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "clap", "color-eyre", @@ -4004,7 +4011,7 @@ dependencies = [ [[package]] name = "tm-stateless-verifier" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "displaydoc", "tendermint 0.38.1", @@ -4035,7 +4042,7 @@ checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -4075,16 +4082,16 @@ version = "0.26.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c7bc40d0e5a97695bb96e27995cd3a08538541b0a846f65bba7a359f36700d4" dependencies = [ - "rustls 0.23.12", + "rustls 0.23.13", "rustls-pki-types", "tokio", ] [[package]] name = "tokio-stream" -version = "0.1.15" +version = "0.1.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af" +checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1" dependencies = [ "futures-core", "pin-project-lite", @@ -4093,9 +4100,9 @@ dependencies = [ [[package]] name = "tokio-util" -version = "0.7.11" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1" +checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a" dependencies = [ "bytes", "futures-core", @@ -4127,11 +4134,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.22.20" +version = "0.22.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d" +checksum = "4ae48d6208a266e853d946088ed816055e556cc6028c5e8e2b84d9fa5dd7c7f5" dependencies = [ - "indexmap 2.4.0", + "indexmap 2.5.0", "serde", "serde_spanned", "toml_datetime", @@ -4158,7 +4165,7 @@ dependencies = [ "hyper-util", "percent-encoding", "pin-project", - "prost 0.13.1", + "prost 0.13.3", "socket2", "tokio", "tokio-stream", @@ -4178,7 +4185,7 @@ dependencies = [ "proc-macro2", "prost-build", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -4207,6 +4214,10 @@ version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2873938d487c3cfb9aed7546dc9f2711d867c9f90c46b889989a2cb84eba6b4f" dependencies = [ + "futures-core", + "futures-util", + "pin-project-lite", + "sync_wrapper 0.1.2", "tower-layer", "tower-service", ] @@ -4242,7 +4253,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -4325,24 +4336,24 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" [[package]] name = "unicode-ident" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe" [[package]] name = "unicode-normalization" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5" +checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" dependencies = [ "tinyvec", ] [[package]] name = "unicode-xid" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" [[package]] name = "universal-hash" @@ -4448,7 +4459,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", "wasm-bindgen-shared", ] @@ -4482,7 +4493,7 @@ checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4496,12 +4507,12 @@ checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484" [[package]] name = "wasmd-client" version = "0.1.0" -source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#391b7bc84a3edef153620d84d1daa69d19532dd6" +source = "git+ssh://git@github.com/informalsystems/cycles-quartz.git#e853c2ed1d7b9a720c1c39e822f701e9f71f13bb" dependencies = [ "anyhow", "cosmrs", "hex", - "reqwest 0.12.7", + "reqwest 0.12.8", "serde", "serde_json", ] @@ -4518,9 +4529,9 @@ dependencies = [ [[package]] name = "webpki-roots" -version = "0.26.5" +version = "0.26.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bd24728e5af82c6c4ec1b66ac4844bdf8156257fccda846ec58b42cd0cdbe6a" +checksum = "841c67bff177718f1d4dfefde8d8f0e78f9b6589319ba88312f567fc5841a958" dependencies = [ "rustls-pki-types", ] @@ -4714,9 +4725,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.6.18" +version = "0.6.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f" +checksum = "36c1fec1a2bb5866f07c25f68c26e565c4c200aebb96d7e55710c19d3e8ac49b" dependencies = [ "memchr", ] @@ -4778,7 +4789,7 @@ checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] [[package]] @@ -4798,5 +4809,5 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn 2.0.76", + "syn 2.0.79", ] diff --git a/apps/transfers/enclave/Cargo.toml b/examples/transfers/enclave/Cargo.toml similarity index 81% rename from apps/transfers/enclave/Cargo.toml rename to examples/transfers/enclave/Cargo.toml index 1527f83..0e7de3a 100644 --- a/apps/transfers/enclave/Cargo.toml +++ b/examples/transfers/enclave/Cargo.toml @@ -1,3 +1,5 @@ +[workspace] + [package] name = "quartz-app-transfers-enclave" version = "0.1.0" @@ -23,19 +25,19 @@ color-eyre = { version = "0.6.2", default-features = false } ecies = { version = "0.2.3", default-features = false, features = ["pure"] } hex = { version = "0.4.3", default-features = false } k256 = { version = "0.13.2", default-features = false, features = ["ecdsa", "alloc"] } -prost = { version = "=0.13.1", default-features = false } +prost = { version = "0.13.1", default-features = false } serde = { version = "1.0.203", default-features = false, features = ["derive"] } serde_json = { version = "1.0.94", default-features = false, features = ["alloc"] } sha2 = { version = "0.10.8", default-features = false } reqwest = "0.12.7" thiserror = { version = "1.0.49", default-features = false } -tokio = { version = "=1.39.2", default-features = false, features = ["macros", "rt"] } -tonic = { version = "=0.12.1", default-features = false, features = ["codegen", "prost", "transport"] } +tokio = { version = "1.39.2", default-features = false, features = ["macros", "rt"] } +tonic = { version = "0.12.1", default-features = false, features = ["codegen", "prost", "transport"] } tracing = "0.1.39" futures-util = "0.3.30" # cosmos -cosmrs = { version = "=0.17.0", default-features = false } +cosmrs = { version = "0.17.0", default-features = false } cosmwasm-std = { version = "2.1.1", default-features = false, features = ["std"] } tendermint = { version = "=0.38.1", default-features = false } tendermint-rpc = { version = "=0.38.1", default-features = false } @@ -52,4 +54,4 @@ tm-prover = { git = "ssh://git@github.com/informalsystems/cycles-quartz.git" } cw-multi-test = "2.1.0" [build-dependencies] -tonic-build = { version = "=0.12.1", default-features = false, features = ["prost", "transport"] } +tonic-build = { version = "0.12.1", default-features = false, features = ["prost", "transport"] } diff --git a/examples/transfers/enclave/README.md b/examples/transfers/enclave/README.md new file mode 100644 index 0000000..c1f5bfa --- /dev/null +++ b/examples/transfers/enclave/README.md @@ -0,0 +1 @@ +## Transfers app enclave diff --git a/apps/transfers/enclave/bin/encrypt.rs b/examples/transfers/enclave/bin/encrypt.rs similarity index 100% rename from apps/transfers/enclave/bin/encrypt.rs rename to examples/transfers/enclave/bin/encrypt.rs diff --git a/apps/transfers/enclave/build.rs b/examples/transfers/enclave/build.rs similarity index 100% rename from apps/transfers/enclave/build.rs rename to examples/transfers/enclave/build.rs diff --git a/apps/transfers/enclave/proto/transfers.proto b/examples/transfers/enclave/proto/transfers.proto similarity index 100% rename from apps/transfers/enclave/proto/transfers.proto rename to examples/transfers/enclave/proto/transfers.proto diff --git a/apps/transfers/enclave/quartz.manifest.template b/examples/transfers/enclave/quartz.manifest.template similarity index 100% rename from apps/transfers/enclave/quartz.manifest.template rename to examples/transfers/enclave/quartz.manifest.template diff --git a/apps/transfers/enclave/src/cli.rs b/examples/transfers/enclave/src/cli.rs similarity index 100% rename from apps/transfers/enclave/src/cli.rs rename to examples/transfers/enclave/src/cli.rs diff --git a/apps/transfers/enclave/src/main.rs b/examples/transfers/enclave/src/main.rs similarity index 100% rename from apps/transfers/enclave/src/main.rs rename to examples/transfers/enclave/src/main.rs diff --git a/apps/transfers/enclave/src/prost/transfers.rs b/examples/transfers/enclave/src/prost/transfers.rs similarity index 98% rename from apps/transfers/enclave/src/prost/transfers.rs rename to examples/transfers/enclave/src/prost/transfers.rs index 5f31588..f978a7c 100644 --- a/apps/transfers/enclave/src/prost/transfers.rs +++ b/examples/transfers/enclave/src/prost/transfers.rs @@ -1,23 +1,19 @@ // This file is @generated by prost-build. -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UpdateRequest { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct UpdateResponse { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryRequest { #[prost(string, tag = "1")] pub message: ::prost::alloc::string::String, } -#[allow(clippy::derive_partial_eq_without_eq)] #[derive(Clone, PartialEq, ::prost::Message)] pub struct QueryResponse { #[prost(string, tag = "1")] diff --git a/apps/transfers/enclave/src/proto.rs b/examples/transfers/enclave/src/proto.rs similarity index 100% rename from apps/transfers/enclave/src/proto.rs rename to examples/transfers/enclave/src/proto.rs diff --git a/apps/transfers/enclave/src/state.rs b/examples/transfers/enclave/src/state.rs similarity index 100% rename from apps/transfers/enclave/src/state.rs rename to examples/transfers/enclave/src/state.rs diff --git a/apps/transfers/enclave/src/transfers_server.rs b/examples/transfers/enclave/src/transfers_server.rs similarity index 100% rename from apps/transfers/enclave/src/transfers_server.rs rename to examples/transfers/enclave/src/transfers_server.rs diff --git a/apps/transfers/enclave/src/wslistener.rs b/examples/transfers/enclave/src/wslistener.rs similarity index 100% rename from apps/transfers/enclave/src/wslistener.rs rename to examples/transfers/enclave/src/wslistener.rs diff --git a/apps/transfers/frontend/.env.example b/examples/transfers/frontend/.env.example similarity index 100% rename from apps/transfers/frontend/.env.example rename to examples/transfers/frontend/.env.example diff --git a/apps/transfers/frontend/.eslintrc.json b/examples/transfers/frontend/.eslintrc.json similarity index 100% rename from apps/transfers/frontend/.eslintrc.json rename to examples/transfers/frontend/.eslintrc.json diff --git a/apps/transfers/frontend/.gitignore b/examples/transfers/frontend/.gitignore similarity index 100% rename from apps/transfers/frontend/.gitignore rename to examples/transfers/frontend/.gitignore diff --git a/apps/transfers/frontend/.prettierrc b/examples/transfers/frontend/.prettierrc similarity index 100% rename from apps/transfers/frontend/.prettierrc rename to examples/transfers/frontend/.prettierrc diff --git a/apps/transfers/frontend/README.md b/examples/transfers/frontend/README.md similarity index 100% rename from apps/transfers/frontend/README.md rename to examples/transfers/frontend/README.md diff --git a/apps/transfers/frontend/env.d.ts b/examples/transfers/frontend/env.d.ts similarity index 100% rename from apps/transfers/frontend/env.d.ts rename to examples/transfers/frontend/env.d.ts diff --git a/apps/transfers/frontend/next.config.mjs b/examples/transfers/frontend/next.config.mjs similarity index 100% rename from apps/transfers/frontend/next.config.mjs rename to examples/transfers/frontend/next.config.mjs diff --git a/apps/transfers/frontend/package-lock.json b/examples/transfers/frontend/package-lock.json similarity index 100% rename from apps/transfers/frontend/package-lock.json rename to examples/transfers/frontend/package-lock.json diff --git a/apps/transfers/frontend/package.json b/examples/transfers/frontend/package.json similarity index 100% rename from apps/transfers/frontend/package.json rename to examples/transfers/frontend/package.json diff --git a/apps/transfers/frontend/playwright.config.ts b/examples/transfers/frontend/playwright.config.ts similarity index 100% rename from apps/transfers/frontend/playwright.config.ts rename to examples/transfers/frontend/playwright.config.ts diff --git a/apps/transfers/frontend/postcss.config.mjs b/examples/transfers/frontend/postcss.config.mjs similarity index 100% rename from apps/transfers/frontend/postcss.config.mjs rename to examples/transfers/frontend/postcss.config.mjs diff --git a/apps/transfers/frontend/public/favicon.png b/examples/transfers/frontend/public/favicon.png similarity index 100% rename from apps/transfers/frontend/public/favicon.png rename to examples/transfers/frontend/public/favicon.png diff --git a/apps/transfers/frontend/src/app/(anon)/page.tsx b/examples/transfers/frontend/src/app/(anon)/page.tsx similarity index 100% rename from apps/transfers/frontend/src/app/(anon)/page.tsx rename to examples/transfers/frontend/src/app/(anon)/page.tsx diff --git a/apps/transfers/frontend/src/app/(anon)/set-seed/page.tsx b/examples/transfers/frontend/src/app/(anon)/set-seed/page.tsx similarity index 100% rename from apps/transfers/frontend/src/app/(anon)/set-seed/page.tsx rename to examples/transfers/frontend/src/app/(anon)/set-seed/page.tsx diff --git a/apps/transfers/frontend/src/app/(protected)/dashboard/page.tsx b/examples/transfers/frontend/src/app/(protected)/dashboard/page.tsx similarity index 100% rename from apps/transfers/frontend/src/app/(protected)/dashboard/page.tsx rename to examples/transfers/frontend/src/app/(protected)/dashboard/page.tsx diff --git a/apps/transfers/frontend/src/app/globals.css b/examples/transfers/frontend/src/app/globals.css similarity index 100% rename from apps/transfers/frontend/src/app/globals.css rename to examples/transfers/frontend/src/app/globals.css diff --git a/apps/transfers/frontend/src/app/layout.tsx b/examples/transfers/frontend/src/app/layout.tsx similarity index 100% rename from apps/transfers/frontend/src/app/layout.tsx rename to examples/transfers/frontend/src/app/layout.tsx diff --git a/apps/transfers/frontend/src/app/not-found.tsx b/examples/transfers/frontend/src/app/not-found.tsx similarity index 100% rename from apps/transfers/frontend/src/app/not-found.tsx rename to examples/transfers/frontend/src/app/not-found.tsx diff --git a/apps/transfers/frontend/src/components/DepositModalWindow.tsx b/examples/transfers/frontend/src/components/DepositModalWindow.tsx similarity index 100% rename from apps/transfers/frontend/src/components/DepositModalWindow.tsx rename to examples/transfers/frontend/src/components/DepositModalWindow.tsx diff --git a/apps/transfers/frontend/src/components/EnterSeedModal.tsx b/examples/transfers/frontend/src/components/EnterSeedModal.tsx similarity index 100% rename from apps/transfers/frontend/src/components/EnterSeedModal.tsx rename to examples/transfers/frontend/src/components/EnterSeedModal.tsx diff --git a/apps/transfers/frontend/src/components/Icon/Icon.tsx b/examples/transfers/frontend/src/components/Icon/Icon.tsx similarity index 100% rename from apps/transfers/frontend/src/components/Icon/Icon.tsx rename to examples/transfers/frontend/src/components/Icon/Icon.tsx diff --git a/apps/transfers/frontend/src/components/Icon/index.ts b/examples/transfers/frontend/src/components/Icon/index.ts similarity index 100% rename from apps/transfers/frontend/src/components/Icon/index.ts rename to examples/transfers/frontend/src/components/Icon/index.ts diff --git a/apps/transfers/frontend/src/components/Icon/types.ts b/examples/transfers/frontend/src/components/Icon/types.ts similarity index 100% rename from apps/transfers/frontend/src/components/Icon/types.ts rename to examples/transfers/frontend/src/components/Icon/types.ts diff --git a/apps/transfers/frontend/src/components/LoadingSpinner.tsx b/examples/transfers/frontend/src/components/LoadingSpinner.tsx similarity index 100% rename from apps/transfers/frontend/src/components/LoadingSpinner.tsx rename to examples/transfers/frontend/src/components/LoadingSpinner.tsx diff --git a/apps/transfers/frontend/src/components/ModalWindow/ModalWindow.tsx b/examples/transfers/frontend/src/components/ModalWindow/ModalWindow.tsx similarity index 100% rename from apps/transfers/frontend/src/components/ModalWindow/ModalWindow.tsx rename to examples/transfers/frontend/src/components/ModalWindow/ModalWindow.tsx diff --git a/apps/transfers/frontend/src/components/ModalWindow/classNames.ts b/examples/transfers/frontend/src/components/ModalWindow/classNames.ts similarity index 100% rename from apps/transfers/frontend/src/components/ModalWindow/classNames.ts rename to examples/transfers/frontend/src/components/ModalWindow/classNames.ts diff --git a/apps/transfers/frontend/src/components/ModalWindow/index.ts b/examples/transfers/frontend/src/components/ModalWindow/index.ts similarity index 100% rename from apps/transfers/frontend/src/components/ModalWindow/index.ts rename to examples/transfers/frontend/src/components/ModalWindow/index.ts diff --git a/apps/transfers/frontend/src/components/Root/App.tsx b/examples/transfers/frontend/src/components/Root/App.tsx similarity index 100% rename from apps/transfers/frontend/src/components/Root/App.tsx rename to examples/transfers/frontend/src/components/Root/App.tsx diff --git a/apps/transfers/frontend/src/components/Root/GrazWrapper.tsx b/examples/transfers/frontend/src/components/Root/GrazWrapper.tsx similarity index 100% rename from apps/transfers/frontend/src/components/Root/GrazWrapper.tsx rename to examples/transfers/frontend/src/components/Root/GrazWrapper.tsx diff --git a/apps/transfers/frontend/src/components/Root/LoadingWrapper.tsx b/examples/transfers/frontend/src/components/Root/LoadingWrapper.tsx similarity index 100% rename from apps/transfers/frontend/src/components/Root/LoadingWrapper.tsx rename to examples/transfers/frontend/src/components/Root/LoadingWrapper.tsx diff --git a/apps/transfers/frontend/src/components/Root/Middleware.tsx b/examples/transfers/frontend/src/components/Root/Middleware.tsx similarity index 100% rename from apps/transfers/frontend/src/components/Root/Middleware.tsx rename to examples/transfers/frontend/src/components/Root/Middleware.tsx diff --git a/apps/transfers/frontend/src/components/Root/index.tsx b/examples/transfers/frontend/src/components/Root/index.tsx similarity index 100% rename from apps/transfers/frontend/src/components/Root/index.tsx rename to examples/transfers/frontend/src/components/Root/index.tsx diff --git a/apps/transfers/frontend/src/components/StyledBox/StyledBox.tsx b/examples/transfers/frontend/src/components/StyledBox/StyledBox.tsx similarity index 100% rename from apps/transfers/frontend/src/components/StyledBox/StyledBox.tsx rename to examples/transfers/frontend/src/components/StyledBox/StyledBox.tsx diff --git a/apps/transfers/frontend/src/components/StyledBox/classNames.ts b/examples/transfers/frontend/src/components/StyledBox/classNames.ts similarity index 100% rename from apps/transfers/frontend/src/components/StyledBox/classNames.ts rename to examples/transfers/frontend/src/components/StyledBox/classNames.ts diff --git a/apps/transfers/frontend/src/components/StyledBox/index.ts b/examples/transfers/frontend/src/components/StyledBox/index.ts similarity index 100% rename from apps/transfers/frontend/src/components/StyledBox/index.ts rename to examples/transfers/frontend/src/components/StyledBox/index.ts diff --git a/apps/transfers/frontend/src/components/StyledText/StyledText.tsx b/examples/transfers/frontend/src/components/StyledText/StyledText.tsx similarity index 100% rename from apps/transfers/frontend/src/components/StyledText/StyledText.tsx rename to examples/transfers/frontend/src/components/StyledText/StyledText.tsx diff --git a/apps/transfers/frontend/src/components/StyledText/classNames.tsx b/examples/transfers/frontend/src/components/StyledText/classNames.tsx similarity index 100% rename from apps/transfers/frontend/src/components/StyledText/classNames.tsx rename to examples/transfers/frontend/src/components/StyledText/classNames.tsx diff --git a/apps/transfers/frontend/src/components/StyledText/index.ts b/examples/transfers/frontend/src/components/StyledText/index.ts similarity index 100% rename from apps/transfers/frontend/src/components/StyledText/index.ts rename to examples/transfers/frontend/src/components/StyledText/index.ts diff --git a/apps/transfers/frontend/src/components/TransferModalWindow.tsx b/examples/transfers/frontend/src/components/TransferModalWindow.tsx similarity index 100% rename from apps/transfers/frontend/src/components/TransferModalWindow.tsx rename to examples/transfers/frontend/src/components/TransferModalWindow.tsx diff --git a/apps/transfers/frontend/src/components/WithdrawModalWindow.tsx b/examples/transfers/frontend/src/components/WithdrawModalWindow.tsx similarity index 100% rename from apps/transfers/frontend/src/components/WithdrawModalWindow.tsx rename to examples/transfers/frontend/src/components/WithdrawModalWindow.tsx diff --git a/apps/transfers/frontend/src/config/chain.ts b/examples/transfers/frontend/src/config/chain.ts similarity index 100% rename from apps/transfers/frontend/src/config/chain.ts rename to examples/transfers/frontend/src/config/chain.ts diff --git a/apps/transfers/frontend/src/config/chains/localNeutron.ts b/examples/transfers/frontend/src/config/chains/localNeutron.ts similarity index 100% rename from apps/transfers/frontend/src/config/chains/localNeutron.ts rename to examples/transfers/frontend/src/config/chains/localNeutron.ts diff --git a/apps/transfers/frontend/src/config/chains/localWasm.ts b/examples/transfers/frontend/src/config/chains/localWasm.ts similarity index 100% rename from apps/transfers/frontend/src/config/chains/localWasm.ts rename to examples/transfers/frontend/src/config/chains/localWasm.ts diff --git a/apps/transfers/frontend/src/config/routes.ts b/examples/transfers/frontend/src/config/routes.ts similarity index 100% rename from apps/transfers/frontend/src/config/routes.ts rename to examples/transfers/frontend/src/config/routes.ts diff --git a/apps/transfers/frontend/src/instrumentation.ts b/examples/transfers/frontend/src/instrumentation.ts similarity index 100% rename from apps/transfers/frontend/src/instrumentation.ts rename to examples/transfers/frontend/src/instrumentation.ts diff --git a/apps/transfers/frontend/src/lib/contractMessageBuilders.ts b/examples/transfers/frontend/src/lib/contractMessageBuilders.ts similarity index 100% rename from apps/transfers/frontend/src/lib/contractMessageBuilders.ts rename to examples/transfers/frontend/src/lib/contractMessageBuilders.ts diff --git a/apps/transfers/frontend/src/lib/ephemeralKeypair.ts b/examples/transfers/frontend/src/lib/ephemeralKeypair.ts similarity index 100% rename from apps/transfers/frontend/src/lib/ephemeralKeypair.ts rename to examples/transfers/frontend/src/lib/ephemeralKeypair.ts diff --git a/apps/transfers/frontend/src/lib/isValidAddress.ts b/examples/transfers/frontend/src/lib/isValidAddress.ts similarity index 100% rename from apps/transfers/frontend/src/lib/isValidAddress.ts rename to examples/transfers/frontend/src/lib/isValidAddress.ts diff --git a/apps/transfers/frontend/src/lib/notifications.tsx b/examples/transfers/frontend/src/lib/notifications.tsx similarity index 100% rename from apps/transfers/frontend/src/lib/notifications.tsx rename to examples/transfers/frontend/src/lib/notifications.tsx diff --git a/apps/transfers/frontend/src/lib/tw.ts b/examples/transfers/frontend/src/lib/tw.ts similarity index 100% rename from apps/transfers/frontend/src/lib/tw.ts rename to examples/transfers/frontend/src/lib/tw.ts diff --git a/apps/transfers/frontend/src/lib/wasmEventHandler.ts b/examples/transfers/frontend/src/lib/wasmEventHandler.ts similarity index 100% rename from apps/transfers/frontend/src/lib/wasmEventHandler.ts rename to examples/transfers/frontend/src/lib/wasmEventHandler.ts diff --git a/apps/transfers/frontend/src/state/useGlobalState.ts b/examples/transfers/frontend/src/state/useGlobalState.ts similarity index 100% rename from apps/transfers/frontend/src/state/useGlobalState.ts rename to examples/transfers/frontend/src/state/useGlobalState.ts diff --git a/apps/transfers/frontend/tailwind.config.ts b/examples/transfers/frontend/tailwind.config.ts similarity index 100% rename from apps/transfers/frontend/tailwind.config.ts rename to examples/transfers/frontend/tailwind.config.ts diff --git a/apps/transfers/frontend/tests/e2e/auth.spec.ts b/examples/transfers/frontend/tests/e2e/auth.spec.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/auth.spec.ts rename to examples/transfers/frontend/tests/e2e/auth.spec.ts diff --git a/apps/transfers/frontend/tests/e2e/extensions/.gitkeep b/examples/transfers/frontend/tests/e2e/extensions/.gitkeep similarity index 100% rename from apps/transfers/frontend/tests/e2e/extensions/.gitkeep rename to examples/transfers/frontend/tests/e2e/extensions/.gitkeep diff --git a/apps/transfers/frontend/tests/e2e/fixtures.ts b/examples/transfers/frontend/tests/e2e/fixtures.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/fixtures.ts rename to examples/transfers/frontend/tests/e2e/fixtures.ts diff --git a/apps/transfers/frontend/tests/e2e/helpers/connectWalet.ts b/examples/transfers/frontend/tests/e2e/helpers/connectWalet.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/helpers/connectWalet.ts rename to examples/transfers/frontend/tests/e2e/helpers/connectWalet.ts diff --git a/apps/transfers/frontend/tests/e2e/helpers/getBalance.ts b/examples/transfers/frontend/tests/e2e/helpers/getBalance.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/helpers/getBalance.ts rename to examples/transfers/frontend/tests/e2e/helpers/getBalance.ts diff --git a/apps/transfers/frontend/tests/e2e/helpers/importWallet.ts b/examples/transfers/frontend/tests/e2e/helpers/importWallet.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/helpers/importWallet.ts rename to examples/transfers/frontend/tests/e2e/helpers/importWallet.ts diff --git a/apps/transfers/frontend/tests/e2e/helpers/setSeedPhrase.ts b/examples/transfers/frontend/tests/e2e/helpers/setSeedPhrase.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/helpers/setSeedPhrase.ts rename to examples/transfers/frontend/tests/e2e/helpers/setSeedPhrase.ts diff --git a/apps/transfers/frontend/tests/e2e/helpers/signTx.ts b/examples/transfers/frontend/tests/e2e/helpers/signTx.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/helpers/signTx.ts rename to examples/transfers/frontend/tests/e2e/helpers/signTx.ts diff --git a/apps/transfers/frontend/tests/e2e/helpers/swapWallet.ts b/examples/transfers/frontend/tests/e2e/helpers/swapWallet.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/helpers/swapWallet.ts rename to examples/transfers/frontend/tests/e2e/helpers/swapWallet.ts diff --git a/apps/transfers/frontend/tests/e2e/seed-phrase.spec.ts b/examples/transfers/frontend/tests/e2e/seed-phrase.spec.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/seed-phrase.spec.ts rename to examples/transfers/frontend/tests/e2e/seed-phrase.spec.ts diff --git a/apps/transfers/frontend/tests/e2e/transfers.spec.ts b/examples/transfers/frontend/tests/e2e/transfers.spec.ts similarity index 100% rename from apps/transfers/frontend/tests/e2e/transfers.spec.ts rename to examples/transfers/frontend/tests/e2e/transfers.spec.ts diff --git a/apps/transfers/frontend/tests/global.setup.ts b/examples/transfers/frontend/tests/global.setup.ts similarity index 100% rename from apps/transfers/frontend/tests/global.setup.ts rename to examples/transfers/frontend/tests/global.setup.ts diff --git a/apps/transfers/frontend/tsconfig.json b/examples/transfers/frontend/tsconfig.json similarity index 100% rename from apps/transfers/frontend/tsconfig.json rename to examples/transfers/frontend/tsconfig.json diff --git a/apps/mtcs/quartz.toml b/examples/transfers/quartz.toml similarity index 100% rename from apps/mtcs/quartz.toml rename to examples/transfers/quartz.toml diff --git a/utils/cycles-sync/Cargo.toml b/utils/cycles-sync/Cargo.toml deleted file mode 100644 index 8347a90..0000000 --- a/utils/cycles-sync/Cargo.toml +++ /dev/null @@ -1,41 +0,0 @@ -[package] -name = "cycles-sync" -version.workspace = true -authors.workspace = true -edition.workspace = true -rust-version.workspace = true -license.workspace = true -repository.workspace = true -keywords = ["blockchain", "cosmos", "tendermint", "cycles", "quartz"] -readme = "README.md" - -[dependencies] -# external -async-trait.workspace = true -bip32.workspace = true -clap.workspace = true -displaydoc.workspace = true -ecies.workspace = true -hex.workspace = true -reqwest.workspace = true -serde.workspace = true -serde_json.workspace = true -subtle-encoding.workspace = true -thiserror.workspace = true -tokio.workspace = true -tracing.workspace = true -tracing-subscriber.workspace = true -uuid.workspace = true -anyhow = { version = "*" } - -# cosmos -cosmrs.workspace = true -cosmwasm-std.workspace = true - -# quartz -cw-tee-mtcs = { path = "../../apps/mtcs/contracts/cw-tee-mtcs/" } -wasmd-client.workspace = true -mtcs-enclave.workspace = true - -[dev-dependencies] -rand_core.workspace = true diff --git a/utils/cycles-sync/src/main.rs b/utils/cycles-sync/src/main.rs deleted file mode 100644 index 77e2ce7..0000000 --- a/utils/cycles-sync/src/main.rs +++ /dev/null @@ -1,173 +0,0 @@ -use std::str::FromStr; - -use anyhow::anyhow; -use bip32::secp256k1::{ - ecdsa::VerifyingKey, - sha2::{Digest, Sha256}, -}; -use clap::Parser; -use cosmrs::{tendermint::chain::Id as TmChainId, AccountId}; -use cosmwasm_std::{Addr, HexBinary}; -use cw_tee_mtcs::state::{LiquiditySource, LiquiditySourceType}; -use mtcs_enclave::types::{ - ContractObligation, RawEncryptedObligation, RawSetOff, SubmitObligationsMsg, - SubmitObligationsMsgInner, -}; -use reqwest::Url; -use serde::{Deserialize, Serialize}; -use subtle_encoding::bech32::decode as bech32_decode; -use wasmd_client::{CliWasmdClient, WasmdClient}; - -// const MNEMONIC_PHRASE: &str = "clutch debate vintage foster barely primary clown leader sell manual leopard ladder wet must embody story oyster imitate cable alien six square rice wedding"; - -const ADDRESS_PREFIX: &str = "wasm"; - -type Sha256Digest = [u8; 32]; - -#[derive(Clone, Debug, Serialize, Deserialize)] -struct QueryAllSetoffsResponse { - setoffs: Vec<(HexBinary, RawSetOff)>, -} - -#[derive(Clone, Debug, Parser)] -#[command(version, about, long_about = None)] -struct Cli { - #[arg(short, long, value_parser = wasmaddr_to_id)] - mtcs: AccountId, - - #[arg(short, long)] - epoch_pk: String, - - #[arg(short, long)] - overdraft: String, - - #[clap(long)] - flip: bool, - - #[arg( - short, - long, - default_value = "wasm14qdftsfk6fwn40l0xmruga08xlczl4g05npy70" - )] - admin: String, -} - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - let cli = Cli::parse(); - - let mut alice = Addr::unchecked("wasm124tuy67a9dcvfgcr4gjmz60syd8ddaugl33v0n"); - let mut bob = Addr::unchecked("wasm1ctkqmg45u85jnf5ur9796h7ze4hj6ep5y7m7l6"); - let overdraft = Addr::unchecked(cli.overdraft); - - if cli.flip { - let temp = alice.clone(); - alice = bob; - bob = temp; - } - - let alice_to_bob: ContractObligation = ContractObligation { - debtor: alice.clone(), - creditor: bob.clone(), - amount: 10, - salt: HexBinary::from([0; 64]), - }; - - let bob_acceptance: ContractObligation = ContractObligation { - debtor: bob.clone(), - creditor: overdraft.clone(), - amount: 10, - salt: HexBinary::from([0; 64]), - }; - - let alice_tender: ContractObligation = ContractObligation { - debtor: overdraft.clone(), - creditor: alice.clone(), - amount: 10, - salt: HexBinary::from([0; 64]), - }; - - let intents = vec![alice_to_bob, bob_acceptance, alice_tender]; - let epoch_pk = VerifyingKey::from_sec1_bytes(&hex::decode(cli.epoch_pk).unwrap()).unwrap(); - - let intents_enc = encrypt_overdraft_intents(intents, &epoch_pk); - - let liquidity_sources: Vec = vec![LiquiditySource { - address: overdraft, - source_type: LiquiditySourceType::Overdraft, - }]; - - let msg = create_wasm_msg(intents_enc, liquidity_sources)?; - - let node_url = Url::parse("http://143.244.186.205:26657")?; - let chain_id = TmChainId::from_str("testing")?; - - let wasmd_client = CliWasmdClient::new(node_url); - - wasmd_client.tx_execute(&cli.mtcs, &chain_id, 3000000, &cli.admin.to_string(), msg)?; - - Ok(()) -} - -pub struct OverdraftObligation { - pub debtor: Addr, - pub creditor: Addr, - pub amount: u64, -} - -fn encrypt_overdraft_intents( - intents: Vec, - epoch_pk: &VerifyingKey, -) -> Vec<(Sha256Digest, Vec)> { - let mut intents_enc = vec![]; - - for i in intents { - // serialize intent - let i_ser = serde_json::to_string(&i).unwrap(); - - // encrypt intent - let i_cipher = ecies::encrypt(&epoch_pk.to_sec1_bytes(), i_ser.as_bytes()).unwrap(); - - // hash intent - let i_digest: Sha256Digest = { - let mut hasher = Sha256::new(); - hasher.update(i_ser); - hasher.finalize().into() - }; - - intents_enc.push((i_digest, i_cipher)); - } - - intents_enc -} - -fn create_wasm_msg( - obligations_enc: Vec<(Sha256Digest, Vec)>, - liquidity_sources: Vec, -) -> anyhow::Result { - let obligations_enc: Vec<_> = obligations_enc - .into_iter() - .map(|(digest, ciphertext)| { - let digest = HexBinary::from(digest); - let ciphertext = HexBinary::from(ciphertext); - RawEncryptedObligation { digest, ciphertext } - }) - .collect(); - - let msg = SubmitObligationsMsg { - submit_obligations: SubmitObligationsMsgInner { - obligations: obligations_enc, - liquidity_sources, - }, - }; - serde_json::to_value(msg).map_err(Into::into) -} - -fn wasmaddr_to_id(address_str: &str) -> anyhow::Result { - let (hr, _) = bech32_decode(address_str).map_err(|e| anyhow!(e))?; - if hr != ADDRESS_PREFIX { - return Err(anyhow!(hr)); - } - - Ok(address_str.parse().unwrap()) -}