From a8772b6b840358f7a75cbd83afaf8677a22e2827 Mon Sep 17 00:00:00 2001 From: brenzi Date: Wed, 24 Jun 2020 14:26:09 +0200 Subject: [PATCH] update Block number in state and apply demurrage in client (#17) * updating block number in stf state * fix #9. apply demurrage in client * bump version to 0.6.8 --- Cargo.lock | 171 ++++++++------------------ client/Cargo.toml | 10 +- client/bootstrap_demo_currency.sh | 6 +- enclave/Cargo.lock | 91 +++++++------- enclave/Cargo.toml | 2 +- enclave/chain_relay/Cargo.toml | 2 +- enclave/src/lib.rs | 4 + stf/Cargo.toml | 25 +++- stf/src/cli.rs | 101 ++++++--------- stf/src/sgx.rs | 18 ++- substratee-node-primitives/Cargo.toml | 2 +- worker/Cargo.toml | 2 +- worker/worker-api/Cargo.toml | 2 +- 13 files changed, 183 insertions(+), 253 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6841262296..a094cb1bdb 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -563,7 +563,7 @@ checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3" [[package]] name = "encointer-client-teeproxy" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "base58", "blake2-rfc", @@ -578,10 +578,10 @@ dependencies = [ "json", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", "pallet-balances", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-scheduler 0.3.1", + "pallet-encointer-balances", + "pallet-encointer-ceremonies", + "pallet-encointer-currencies", + "pallet-encointer-scheduler", "parity-scale-codec", "primitive-types 0.6.2", "sc-keystore", @@ -600,8 +600,8 @@ dependencies = [ [[package]] name = "encointer-node-teeproxy-runtime" -version = "0.3.2" -source = "git+https://github.com/encointer/encointer-node?branch=sgx-master#59ef144fa0b5d44c9c0ef003086facd848ad9b17" +version = "0.3.3" +source = "git+https://github.com/encointer/encointer-node?branch=sgx-master#156b90a0fc5e8b8af46ea48dc3b9c611688b94ab" dependencies = [ "frame-executive", "frame-support", @@ -609,10 +609,10 @@ dependencies = [ "frame-system-rpc-runtime-api", "pallet-aura", "pallet-balances", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-scheduler 0.3.1", + "pallet-encointer-balances", + "pallet-encointer-ceremonies", + "pallet-encointer-currencies", + "pallet-encointer-scheduler", "pallet-grandpa", "pallet-randomness-collective-flip", "pallet-substratee-registry", @@ -640,7 +640,7 @@ dependencies = [ [[package]] name = "encointer-worker" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "base58", "cid", @@ -1159,7 +1159,7 @@ dependencies = [ [[package]] name = "hashbrown_tstd" version = "0.7.1" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "autocfg 1.0.0", ] @@ -2037,33 +2037,14 @@ dependencies = [ [[package]] name = "pallet-encointer-balances" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" -dependencies = [ - "frame-support", - "frame-system", - "impl-trait-for-tuples", - "num-traits", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "parity-scale-codec", - "safe-mix", - "serde", - "sp-io 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime", - "sp-std", - "substrate-fixed", -] - -[[package]] -name = "pallet-encointer-balances" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.1#21f1fba74f66052564764d93c119a712d27d0aa3" +version = "0.3.2" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "num-traits", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", + "pallet-encointer-currencies", "parity-scale-codec", "safe-mix", "serde", @@ -2076,34 +2057,14 @@ dependencies = [ [[package]] name = "pallet-encointer-ceremonies" version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" -dependencies = [ - "frame-support", - "frame-system", - "pallet-balances", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-scheduler 0.3.0", - "pallet-timestamp", - "parity-scale-codec", - "serde", - "sp-core", - "sp-io 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "pallet-encointer-ceremonies" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.1#21f1fba74f66052564764d93c119a712d27d0aa3" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support", "frame-system", "pallet-balances", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.1)", - "pallet-encointer-scheduler 0.3.1", + "pallet-encointer-balances", + "pallet-encointer-currencies", + "pallet-encointer-scheduler", "pallet-timestamp", "parity-scale-codec", "serde", @@ -2116,24 +2077,7 @@ dependencies = [ [[package]] name = "pallet-encointer-currencies" version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" -dependencies = [ - "frame-support", - "frame-system", - "pallet-balances", - "parity-scale-codec", - "serde", - "sp-core", - "sp-io 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime", - "sp-std", - "substrate-fixed", -] - -[[package]] -name = "pallet-encointer-currencies" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.1#21f1fba74f66052564764d93c119a712d27d0aa3" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support", "frame-system", @@ -2147,27 +2091,10 @@ dependencies = [ "substrate-fixed", ] -[[package]] -name = "pallet-encointer-scheduler" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" -dependencies = [ - "frame-support", - "frame-system", - "pallet-timestamp", - "parity-scale-codec", - "serde", - "sp-core", - "sp-io 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", - "sp-runtime", - "sp-std", - "sp-timestamp", -] - [[package]] name = "pallet-encointer-scheduler" version = "0.3.1" -source = "git+https://github.com/encointer/pallets?tag=v0.3.1#21f1fba74f66052564764d93c119a712d27d0aa3" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support", "frame-system", @@ -2284,7 +2211,7 @@ dependencies = [ [[package]] name = "pallet-template" version = "2.0.0-alpha.7" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "frame-support", "frame-system", @@ -3234,7 +3161,7 @@ dependencies = [ [[package]] name = "sgx-externalities" version = "0.2.0" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "environmental", "log 0.4.8 (git+https://github.com/mesalock-linux/log-sgx)", @@ -3246,17 +3173,17 @@ dependencies = [ [[package]] name = "sgx-runtime" version = "2.0.0-alpha.7" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "frame-executive", "frame-support", "frame-system", "pallet-aura", "pallet-balances", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-scheduler 0.3.0", + "pallet-encointer-balances", + "pallet-encointer-ceremonies", + "pallet-encointer-currencies", + "pallet-encointer-scheduler", "pallet-grandpa", "pallet-randomness-collective-flip", "pallet-sudo", @@ -3283,12 +3210,12 @@ dependencies = [ [[package]] name = "sgx_alloc" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_backtrace_sys" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "cc", "sgx_build_helper", @@ -3298,7 +3225,7 @@ dependencies = [ [[package]] name = "sgx_build_helper" version = "0.1.3" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_crypto_helper" @@ -3317,12 +3244,12 @@ dependencies = [ [[package]] name = "sgx_demangle" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_libc" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_types", ] @@ -3330,7 +3257,7 @@ dependencies = [ [[package]] name = "sgx_serialize" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_tstd", ] @@ -3338,7 +3265,7 @@ dependencies = [ [[package]] name = "sgx_tprotected_fs" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_trts", "sgx_types", @@ -3347,7 +3274,7 @@ dependencies = [ [[package]] name = "sgx_trts" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_libc", "sgx_types", @@ -3356,7 +3283,7 @@ dependencies = [ [[package]] name = "sgx_tstd" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "hashbrown_tstd", "sgx_alloc", @@ -3372,7 +3299,7 @@ dependencies = [ [[package]] name = "sgx_types" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_ucrypto" @@ -3388,7 +3315,7 @@ dependencies = [ [[package]] name = "sgx_unwind" version = "0.1.1" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_build_helper", ] @@ -3660,7 +3587,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.0-alpha.7" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "environmental", "hash-db", @@ -4069,7 +3996,7 @@ checksum = "d2a965994514ab35d3893e9260245f2947fd1981cdd4fffd2c6e6d1a9ce02e6a" [[package]] name = "substratee-node-primitives" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "base58", "encointer-node-teeproxy-runtime", @@ -4084,22 +4011,23 @@ dependencies = [ [[package]] name = "substratee-stf" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "base58", "clap", "clap-nested", "derive_more", + "encointer-node-teeproxy-runtime", "env_logger 0.7.1 (git+https://github.com/mesalock-linux/env_logger-sgx)", "frame-metadata", "frame-system", "hex 0.3.2", "log 0.4.8 (git+https://github.com/mesalock-linux/log-sgx)", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-scheduler 0.3.0", + "pallet-encointer-balances", + "pallet-encointer-ceremonies", + "pallet-encointer-currencies", + "pallet-encointer-scheduler", "parity-scale-codec", "sc-keystore", "sgx-runtime", @@ -4110,11 +4038,12 @@ dependencies = [ "sp-keyring", "sp-runtime", "substrate-api-client", + "substrate-fixed", ] [[package]] name = "substratee-worker-api" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "hex 0.4.2", "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/client/Cargo.toml b/client/Cargo.toml index dfec139d63..9323a47efb 100644 --- a/client/Cargo.toml +++ b/client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "encointer-client-teeproxy" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["Supercomputing Systems AG "] edition = "2018" @@ -23,25 +23,25 @@ geojson = "0.17" [dependencies.encointer-scheduler] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.1" +tag = "v0.3.2" package = "pallet-encointer-scheduler" [dependencies.encointer-ceremonies] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.1" +tag = "v0.3.2" package = "pallet-encointer-ceremonies" [dependencies.encointer-currencies] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.1" +tag = "v0.3.2" package = "pallet-encointer-currencies" [dependencies.encointer-balances] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.1" +tag = "v0.3.2" package = "pallet-encointer-balances" [dependencies.substrate-api-client] diff --git a/client/bootstrap_demo_currency.sh b/client/bootstrap_demo_currency.sh index 42f129f1a7..3e5d31924e 100755 --- a/client/bootstrap_demo_currency.sh +++ b/client/bootstrap_demo_currency.sh @@ -49,9 +49,9 @@ $CLIENT list-currencies wait_for_phase REGISTERING -#read MRENCLAVE <<< $($CLIENT list-workers | awk '/ MRENCLAVE: / { print $2 }') +read MRENCLAVE <<< $($CLIENT list-workers | awk '/ MRENCLAVE: / { print $2 }') #cid=7eLSZLSMShw4ju9GvuMmoVgeZxZimtvsGTSvLEdvcRqQ -MRENCLAVE=6AkpQeSLGSwESvKMiygJzDTLHXvnwBG9c8Q8FV9LiDuN +#MRENCLAVE=6AkpQeSLGSwESvKMiygJzDTLHXvnwBG9c8Q8FV9LiDuN echo " MRENCLAVE = ${MRENCLAVE}" @@ -128,4 +128,4 @@ $CLIENT trusted balance $account1 --mrenclave $MRENCLAVE --shard $cid $CLIENT trusted balance $account2 --mrenclave $MRENCLAVE --shard $cid $CLIENT trusted balance $account3 --mrenclave $MRENCLAVE --shard $cid echo "total issuance (publicly readable)" -$CLIENT trusted total-issuance --mrenclave $MRENCLAVE --shard $cid \ No newline at end of file +$CLIENT trusted total-issuance --mrenclave $MRENCLAVE --shard $cid diff --git a/enclave/Cargo.lock b/enclave/Cargo.lock index b8c3580e0e..e2f5fed431 100644 --- a/enclave/Cargo.lock +++ b/enclave/Cargo.lock @@ -172,7 +172,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "chain-relay" -version = "0.6.5-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", "finality-grandpa 0.11.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -568,7 +568,7 @@ dependencies = [ [[package]] name = "hashbrown_tstd" version = "0.7.1" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ] @@ -887,14 +887,14 @@ dependencies = [ [[package]] name = "pallet-encointer-balances" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" +version = "0.3.2" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "impl-trait-for-tuples 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", + "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)", "parity-scale-codec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "safe-mix 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "sp-io 2.0.0-alpha.7 (git+https://github.com/encointer/sgx-runtime)", @@ -906,14 +906,14 @@ dependencies = [ [[package]] name = "pallet-encointer-ceremonies" version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "pallet-balances 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-scheduler 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", + "pallet-encointer-balances 0.3.2 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-scheduler 0.3.1 (git+https://github.com/encointer/pallets?tag=v0.3.2)", "pallet-timestamp 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "parity-scale-codec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "sp-core 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -925,7 +925,7 @@ dependencies = [ [[package]] name = "pallet-encointer-currencies" version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -940,8 +940,8 @@ dependencies = [ [[package]] name = "pallet-encointer-scheduler" -version = "0.3.0" -source = "git+https://github.com/encointer/pallets?tag=v0.3.0#f60169a908675bb90ae54cfa8b9000fc08ca45e7" +version = "0.3.1" +source = "git+https://github.com/encointer/pallets?tag=v0.3.2#9765159a7fa55dd69f1bc164d0b8d560d0413f0d" dependencies = [ "frame-support 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1032,7 +1032,7 @@ dependencies = [ [[package]] name = "pallet-template" version = "2.0.0-alpha.7" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "frame-support 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1502,7 +1502,7 @@ dependencies = [ [[package]] name = "sgx-externalities" version = "0.2.0" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "environmental 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (git+https://github.com/mesalock-linux/log-sgx)", @@ -1514,17 +1514,17 @@ dependencies = [ [[package]] name = "sgx-runtime" version = "2.0.0-alpha.7" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "frame-executive 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-support 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "pallet-aura 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "pallet-balances 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-scheduler 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", + "pallet-encointer-balances 0.3.2 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-scheduler 0.3.1 (git+https://github.com/encointer/pallets?tag=v0.3.2)", "pallet-grandpa 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "pallet-randomness-collective-flip 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "pallet-sudo 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", @@ -1551,12 +1551,12 @@ dependencies = [ [[package]] name = "sgx_alloc" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_backtrace_sys" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "cc 1.0.52 (registry+https://github.com/rust-lang/crates.io-index)", "sgx_build_helper 0.1.3 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", @@ -1566,7 +1566,7 @@ dependencies = [ [[package]] name = "sgx_build_helper" version = "0.1.3" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_crypto_helper" @@ -1585,12 +1585,12 @@ dependencies = [ [[package]] name = "sgx_demangle" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_libc" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_types 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", ] @@ -1608,7 +1608,7 @@ dependencies = [ [[package]] name = "sgx_serialize" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_tstd 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", ] @@ -1650,7 +1650,7 @@ dependencies = [ [[package]] name = "sgx_tprotected_fs" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_trts 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", "sgx_types 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", @@ -1659,7 +1659,7 @@ dependencies = [ [[package]] name = "sgx_trts" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_libc 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", "sgx_types 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", @@ -1687,7 +1687,7 @@ dependencies = [ [[package]] name = "sgx_tstd" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "hashbrown_tstd 0.7.1 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", "sgx_alloc 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", @@ -1711,12 +1711,12 @@ dependencies = [ [[package]] name = "sgx_types" version = "1.1.2" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" [[package]] name = "sgx_unwind" version = "0.1.1" -source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#253b3ac982b2d09d32f5fa5a2011e3c36bcbed1e" +source = "git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2#fdc2ea93caecaa7f69a3edc9cf840607d0628ff3" dependencies = [ "sgx_build_helper 0.1.3 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", ] @@ -1891,7 +1891,7 @@ dependencies = [ [[package]] name = "sp-io" version = "2.0.0-alpha.7" -source = "git+https://github.com/encointer/sgx-runtime#e206ce2f185fb22c513c0e52f591576418a817d6" +source = "git+https://github.com/encointer/sgx-runtime#d28c480652130b65084b1bd0e0204f87026f1c24" dependencies = [ "environmental 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)", "hash-db 0.15.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2120,7 +2120,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "substratee-node-primitives" -version = "0.6.5-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "parity-scale-codec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "primitive-types 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2130,17 +2130,17 @@ dependencies = [ [[package]] name = "substratee-stf" -version = "0.6.5-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "derive_more 0.99.5 (registry+https://github.com/rust-lang/crates.io-index)", "env_logger 0.7.1 (git+https://github.com/mesalock-linux/env_logger-sgx)", "frame-metadata 11.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "frame-system 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "log 0.4.8 (git+https://github.com/mesalock-linux/log-sgx)", - "pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", - "pallet-encointer-scheduler 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)", + "pallet-encointer-balances 0.3.2 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)", + "pallet-encointer-scheduler 0.3.1 (git+https://github.com/encointer/pallets?tag=v0.3.2)", "parity-scale-codec 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "sgx-runtime 2.0.0-alpha.7 (git+https://github.com/encointer/sgx-runtime)", "sgx_tstd 1.1.2 (git+https://github.com/apache/teaclave-sgx-sdk.git?rev=v1.1.2)", @@ -2148,16 +2148,17 @@ dependencies = [ "sp-core 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "sp-io 2.0.0-alpha.7 (git+https://github.com/encointer/sgx-runtime)", "sp-runtime 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", + "substrate-fixed 0.5.4 (git+https://github.com/encointer/substrate-fixed?tag=v0.5.4+sub_v0.1)", ] [[package]] name = "substratee-worker-enclave" -version = "0.6.6-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" dependencies = [ "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "base64 0.10.1 (git+https://github.com/mesalock-linux/rust-base64-sgx)", "bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", - "chain-relay 0.6.5-sub2.0.0-alpha.7", + "chain-relay 0.6.8-sub2.0.0-alpha.7", "chrono 0.4.11 (git+https://github.com/mesalock-linux/chrono-sgx)", "env_logger 0.7.1 (git+https://github.com/mesalock-linux/env_logger-sgx)", "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", @@ -2191,8 +2192,8 @@ dependencies = [ "sp-runtime 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "sp-std 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)", "substrate-api-client 0.4.6-sub2.0.0-alpha.7 (git+https://github.com/scs/substrate-api-client?tag=v0.4.6-sub2.0.0-alpha.7)", - "substratee-node-primitives 0.6.5-sub2.0.0-alpha.7", - "substratee-stf 0.6.5-sub2.0.0-alpha.7", + "substratee-node-primitives 0.6.8-sub2.0.0-alpha.7", + "substratee-stf 0.6.8-sub2.0.0-alpha.7", "webpki 0.21.2 (git+https://github.com/mesalock-linux/webpki?branch=mesalock_sgx)", "webpki-roots 0.19.0 (git+https://github.com/mesalock-linux/webpki-roots?branch=mesalock_sgx)", "yasna 0.3.1 (git+https://github.com/mesalock-linux/yasna.rs-sgx?rev=sgx_1.1.2)", @@ -2535,10 +2536,10 @@ dependencies = [ "checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" "checksum pallet-aura 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)" = "84bfe377cb99f04a51ef30521bd3236acdf57ae76187d6ae8f0b1896fae1ba1d" "checksum pallet-balances 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5933eed290294f48ae9c6ca9b83c48f73c0e50eb2d86532a388d2076806f9d37" -"checksum pallet-encointer-balances 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)" = "" -"checksum pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)" = "" -"checksum pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)" = "" -"checksum pallet-encointer-scheduler 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.0)" = "" +"checksum pallet-encointer-balances 0.3.2 (git+https://github.com/encointer/pallets?tag=v0.3.2)" = "" +"checksum pallet-encointer-ceremonies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)" = "" +"checksum pallet-encointer-currencies 0.3.0 (git+https://github.com/encointer/pallets?tag=v0.3.2)" = "" +"checksum pallet-encointer-scheduler 0.3.1 (git+https://github.com/encointer/pallets?tag=v0.3.2)" = "" "checksum pallet-finality-tracker 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)" = "99b6aaf467788f82d9f18c940f57b6773e6114988120c63630ec1a30ef6af73d" "checksum pallet-grandpa 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0be9854b7b21a8ab2d14bc323d08b18b6d57d1bbdba1657f37169a02ac198162" "checksum pallet-randomness-collective-flip 2.0.0-alpha.7 (registry+https://github.com/rust-lang/crates.io-index)" = "e6f06234e000e7b7554d75d62280e953f902981196d6dcde0d084ad5c7df4809" diff --git a/enclave/Cargo.toml b/enclave/Cargo.toml index 48e055648e..4d05bde011 100644 --- a/enclave/Cargo.toml +++ b/enclave/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substratee-worker-enclave" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["Supercomputing Systems AG "] edition = "2018" diff --git a/enclave/chain_relay/Cargo.toml b/enclave/chain_relay/Cargo.toml index e0f67cf86a..f54f39ebde 100644 --- a/enclave/chain_relay/Cargo.toml +++ b/enclave/chain_relay/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "chain-relay" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["Supercomputing Systems AG "] edition = "2018" diff --git a/enclave/src/lib.rs b/enclave/src/lib.rs index 5c51d7b682..c9f347c876 100644 --- a/enclave/src/lib.rs +++ b/enclave/src/lib.rs @@ -414,6 +414,10 @@ pub fn update_states(header: Header) -> SgxResult<()> { let mut state = state::load(&s)?; Stf::update_storage(&mut state, &per_shard_update_map); Stf::update_storage(&mut state, &update_map); + + // block number is purged from the substrate state so it can't be read like other storage values + Stf::update_block_number(&mut state, header.number); + state::write(state, &s)?; } } diff --git a/stf/Cargo.toml b/stf/Cargo.toml index 3151314864..01fc61ae23 100644 --- a/stf/Cargo.toml +++ b/stf/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substratee-stf" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["Supercomputing Systems AG "] edition = "2018" @@ -25,7 +25,8 @@ std = [ "sp-core/std", "encointer-ceremonies/std", "hex", - "substrate-api-client" + "substrate-api-client", + "my-node-runtime" ] [dependencies] @@ -53,27 +54,39 @@ features = ["derive"] [dependencies.encointer-scheduler] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.0" +tag = "v0.3.2" package = "pallet-encointer-scheduler" [dependencies.encointer-ceremonies] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.0" +tag = "v0.3.2" package = "pallet-encointer-ceremonies" [dependencies.encointer-currencies] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.0" +tag = "v0.3.2" package = "pallet-encointer-currencies" [dependencies.encointer-balances] default-features = false git = "https://github.com/encointer/pallets" -tag = "v0.3.0" +tag = "v0.3.2" package = "pallet-encointer-balances" +[dependencies.fixed] +default-features = false +git = "https://github.com/encointer/substrate-fixed" +tag = "v0.5.4+sub_v0.1" +package = "substrate-fixed" + +[dependencies.my-node-runtime] +git = "https://github.com/encointer/encointer-node" +branch = "sgx-master" +package = "encointer-node-teeproxy-runtime" +optional = true + [dependencies.system] default-features = false package = 'frame-system' diff --git a/stf/src/cli.rs b/stf/src/cli.rs index 1a69317644..42c921d772 100644 --- a/stf/src/cli.rs +++ b/stf/src/cli.rs @@ -26,8 +26,11 @@ use sp_application_crypto::{ed25519, sr25519}; use sp_core::{crypto::Ss58Codec, sr25519 as sr25519_core, Pair}; use sp_runtime::traits::IdentifyAccount; use std::path::PathBuf; -use encointer_balances::BalanceType; -use encointer_currencies::Location; +use fixed::traits::LossyInto; +use fixed::transcendental::exp; +use my_node_runtime::{BlockNumber, Header}; +use encointer_balances::{BalanceType, BalanceEntry}; +use encointer_currencies::{Location, CurrencyIdentifier, CurrencyPropertiesType}; use encointer_ceremonies::{MeetupIndexType, ClaimOfAttendance, ParticipantIndexType}; use hex; use substrate_api_client::Api; @@ -187,8 +190,12 @@ pub fn cmd<'a>( .into(); let res = perform_operation(matches, &top); let bal = if let Some(v) = res { - if let Ok(vd) = ::decode(&mut v.as_slice()) { - vd + if let Ok(vd) = >::decode(&mut v.as_slice()) { + let api = get_chain_api(matches); + let bn = get_block_number(&api); + let dr = get_demurrage_per_block(&api, shard); + debug!("will apply demurrage to {:?}. blocknumber {}, demurrage rate {}", vd, bn, dr); + apply_demurrage(vd, bn, dr) } else { info!("could not decode value. maybe hasn't been set? {:x?}", v); BalanceType::from_num(0) @@ -209,8 +216,12 @@ pub fn cmd<'a>( .into(); let res = perform_operation(matches, &top); let bal = if let Some(v) = res { - if let Ok(vd) = ::decode(&mut v.as_slice()) { - vd + if let Ok(vd) = >::decode(&mut v.as_slice()) { + let api = get_chain_api(matches); + let bn = get_block_number(&api); + let dr = get_demurrage_per_block(&api, shard); + debug!("will apply demurrage to {:?}. blocknumber {}, demurrage rate {}", vd, bn, dr); + apply_demurrage(vd, bn, dr) } else { info!("could not decode value. maybe hasn't been set? {:x?}", v); BalanceType::from_num(0) @@ -492,64 +503,28 @@ fn get_chain_api(matches: &ArgMatches<'_>) -> Api { Api::::new(url) } -/* -pub fn call_trusted_stf( - api: &Api

, - call: TrustedCallSigned, - rsa_pubkey: Rsa3072PubKey, - shard: &ShardIdentifier, -) where - MultiSignature: From, -{ - let call_encoded = call.encode(); - let mut call_encrypted: Vec = Vec::new(); - rsa_pubkey - .encrypt_buffer(&call_encoded, &mut call_encrypted) - .unwrap(); - let request = Request { - shard: shard.clone(), - cyphertext: call_encrypted.clone(), - }; - - let xt = compose_extrinsic!(api.clone(), "SubstraTEERegistry", "call_worker", request); +fn get_block_number(api: &Api) -> BlockNumber { + let hdr: Header = api.get_header(None).unwrap(); + debug!("decoded: {:?}", hdr); + //let hdr: Header= Decode::decode(&mut .as_bytes()).unwrap(); + hdr.number +} - // send and watch extrinsic until finalized - let tx_hash = api.send_extrinsic(xt.hex_encode()).unwrap(); - info!("stf call extrinsic got finalized. Hash: {:?}", tx_hash); - info!("waiting for confirmation of stf call"); - let act_hash = subscribe_to_call_confirmed(api.clone()); - info!("callConfirmed event received"); - debug!( - "Expected stf call Hash: {:?}", - blake2s(32, &[0; 32], &call_encrypted).as_bytes() - ); - debug!("confirmation stf call Hash: {:?}", act_hash); +fn get_demurrage_per_block(api: &Api, cid: CurrencyIdentifier) -> BalanceType { + let cp: CurrencyPropertiesType = api + .get_storage_map("EncointerCurrencies", "CurrencyProperties", cid, None) + .unwrap(); + debug!("CurrencyProperties are {:?}", cp); + cp.demurrage_per_block } -pub fn get_trusted_stf_state( - workerapi: &WorkerApi, - getter: TrustedGetterSigned, - shard: &ShardIdentifier, -) { - //TODO: #91 - // encrypt getter - // decrypt response and verify signature - debug!("calling workerapi to get value"); - let ret = workerapi - .get_stf_state(getter, shard) - .expect("getting value failed"); - let ret_cropped = &ret[..9 * 2]; - debug!( - "got getter response from worker: {:?}\ncropping to {:?}", - ret, ret_cropped - ); - let valopt: Option> = Decode::decode(&mut &ret_cropped[..]).unwrap(); - match valopt { - Some(v) => { - let value = U256::from_little_endian(&v); - println!(" value = {}", value); - } - _ => error!("error getting value"), - }; +fn apply_demurrage(entry: BalanceEntry, current_block: BlockNumber, demurrage_per_block: BalanceType) -> BalanceType { + let elapsed_time_block_number = current_block.checked_sub(entry.last_update).unwrap(); + let elapsed_time_u32: u32 = elapsed_time_block_number.into(); + let elapsed_time = BalanceType::from_num(elapsed_time_u32); + let exponent : BalanceType = -demurrage_per_block * elapsed_time; + debug!("demurrage per block {}, current_block {}, last {}, elapsed_blocks {}", demurrage_per_block, current_block, entry.last_update, elapsed_time); + let exp_result : BalanceType = exp(exponent).unwrap(); + entry.principal.checked_mul(exp_result).unwrap() } -*/ + diff --git a/stf/src/sgx.rs b/stf/src/sgx.rs index 1dd1360636..c5b8037ce3 100644 --- a/stf/src/sgx.rs +++ b/stf/src/sgx.rs @@ -6,17 +6,17 @@ use codec::{Decode, Encode}; use derive_more::Display; use log_sgx::*; use metadata::StorageHasher; -use sgx_runtime::Runtime; +use sgx_runtime::{Runtime, BlockNumber}; use sp_core::crypto::AccountId32; use sp_io::SgxExternalitiesTrait; use sp_runtime::traits::Dispatchable; use encointer_scheduler::{CeremonyPhaseType, OnCeremonyPhaseChange}; -use encointer_balances::BalanceType; +use encointer_balances::{BalanceType, BalanceEntry}; use encointer_currencies::{CurrencyIdentifier, Location}; use encointer_ceremonies::{ParticipantIndexType, MeetupIndexType}; use sgx_runtime::Moment; -use crate::{AccountId, State, Stf, TrustedCall, TrustedCallSigned, Getter, PublicGetter, TrustedGetter, TrustedGetterSigned, ShardIdentifier}; +use crate::{AccountId, State, Stf, TrustedCall, TrustedCallSigned, Getter, PublicGetter, TrustedGetter, ShardIdentifier}; /// Simple blob that holds a call in encoded format #[derive(Clone, Debug)] @@ -86,6 +86,14 @@ impl Stf { }); } + pub fn update_block_number(ext: &mut State, number: BlockNumber) { + ext.execute_with(|| { + let key = storage_value_key("System", "Number"); + sp_io::storage::set(&key, &number.encode()); + }); + } + + pub fn execute( ext: &mut State, call: TrustedCallSigned, @@ -134,7 +142,7 @@ impl Stf { match getter { Getter::trusted(g) => match g.getter { TrustedGetter::balance(who, cid) => { - let balance: BalanceType = encointer_balances::Module::::balance(cid, &who.into()); + let balance: BalanceEntry = encointer_balances::Module::::balance_entry(cid, AccountId32::from(who)); Some(balance.encode()) }, TrustedGetter::registration(who, cid) => { @@ -160,7 +168,7 @@ impl Stf { Getter::public(g) => match g { PublicGetter::total_issuance(cid) => { let c_index = encointer_scheduler::Module::::current_ceremony_index(); - let balance: BalanceType = encointer_balances::Module::::total_issuance(cid); + let balance: BalanceEntry = encointer_balances::Module::::total_issuance_entry(cid); Some(balance.encode()) } } diff --git a/substratee-node-primitives/Cargo.toml b/substratee-node-primitives/Cargo.toml index 63e85a05f5..288dc1774d 100644 --- a/substratee-node-primitives/Cargo.toml +++ b/substratee-node-primitives/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substratee-node-primitives" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["clangenbacher "] edition = "2018" diff --git a/worker/Cargo.toml b/worker/Cargo.toml index 8f592d380c..f89b6fee43 100644 --- a/worker/Cargo.toml +++ b/worker/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "encointer-worker" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["Supercomputing Systems AG "] build = "build.rs" edition = "2018" diff --git a/worker/worker-api/Cargo.toml b/worker/worker-api/Cargo.toml index 1b6c124df9..3843c1e640 100644 --- a/worker/worker-api/Cargo.toml +++ b/worker/worker-api/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "substratee-worker-api" -version = "0.6.7-sub2.0.0-alpha.7" +version = "0.6.8-sub2.0.0-alpha.7" authors = ["Supercomputing Systems AG "] edition = "2018"