From ad6a608cad3fd3a836d48c5813b8788d1cde4830 Mon Sep 17 00:00:00 2001 From: Vladas Zakrevskis <146100@gmail.com> Date: Mon, 27 Nov 2023 16:36:25 +0200 Subject: [PATCH 01/11] moved contract --- .gitignore | 18 +- Cargo.lock | 3329 -------------------- Cargo.toml => contract/Cargo.toml | 0 {src => contract/src}/callbacks.rs | 0 {src => contract/src}/draft.rs | 0 {src => contract/src}/event.rs | 0 {src => contract/src}/ft_token_receiver.rs | 0 {src => contract/src}/internal.rs | 0 {src => contract/src}/lib.rs | 0 {src => contract/src}/lockup.rs | 0 {src => contract/src}/schedule.rs | 0 {src => contract/src}/termination.rs | 0 {src => contract/src}/util.rs | 0 {src => contract/src}/view.rs | 0 14 files changed, 17 insertions(+), 3330 deletions(-) delete mode 100644 Cargo.lock rename Cargo.toml => contract/Cargo.toml (100%) rename {src => contract/src}/callbacks.rs (100%) rename {src => contract/src}/draft.rs (100%) rename {src => contract/src}/event.rs (100%) rename {src => contract/src}/ft_token_receiver.rs (100%) rename {src => contract/src}/internal.rs (100%) rename {src => contract/src}/lib.rs (100%) rename {src => contract/src}/lockup.rs (100%) rename {src => contract/src}/schedule.rs (100%) rename {src => contract/src}/termination.rs (100%) rename {src => contract/src}/util.rs (100%) rename {src => contract/src}/view.rs (100%) diff --git a/.gitignore b/.gitignore index 7dfd0f1..c5d676f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,20 @@ +# Generated by Cargo +# will have compiled files and executables +debug/ target/ -neardev/ +# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries +# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html +Cargo.lock +# These are backup files generated by rustfmt +**/*.rs.bk + +# MSVC Windows builds of rustc generate these, which store debugging information +*.pdb + +res/contract_name.wasm + +.idea + +.DS_Store diff --git a/Cargo.lock b/Cargo.lock deleted file mode 100644 index e40c631..0000000 --- a/Cargo.lock +++ /dev/null @@ -1,3329 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "addr2line" -version = "0.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7" -dependencies = [ - "gimli 0.23.0", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "ahash" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" - -[[package]] -name = "aho-corasick" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7404febffaa47dac81aa44dba71523c9d069b1bdc50a77db41195149e17f68e5" -dependencies = [ - "memchr", -] - -[[package]] -name = "anyhow" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" - -[[package]] -name = "arrayref" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a2f58b0bb10c380af2b26e57212856b8c9a59e0925b4c20f4a174a49734eaf7" - -[[package]] -name = "async-mutex" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479db852db25d9dbf6204e6cb6253698f175c15726470f78af0d918e99d6156e" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-trait" -version = "0.1.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3a45e77e34375a7923b1e8febb049bb011f064714a8e17a1a616fef01da13d" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "autocfg" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a" - -[[package]] -name = "backtrace" -version = "0.3.58" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88fb5a785d6b44fd9d6700935608639af1b8356de1e55d5f7c2740f4faa15d82" -dependencies = [ - "addr2line", - "cc", - "cfg-if 1.0.0", - "libc", - "miniz_oxide", - "object 0.23.0", - "rustc-demangle", -] - -[[package]] -name = "base64" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde", -] - -[[package]] -name = "bindgen" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd4865004a46a0aafb2a0a5eb19d3c9fc46ee5f063a6cfc605c69ac9ecf5263d" -dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "lazy_static", - "lazycell", - "peeking_take_while", - "proc-macro2", - "quote", - "regex", - "rustc-hash", - "shlex", -] - -[[package]] -name = "bitflags" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - -[[package]] -name = "bitvec" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10a5720225ef5daecf08657f23791354e1685a8c91a4c60c7f3d3b2892f978f4" -dependencies = [ - "crypto-mac", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "blake3" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ff35b701f3914bdb8fad3368d822c766ef2858b2583198e41639b936f09d3f" -dependencies = [ - "arrayref", - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "constant_time_eq", - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding", - "generic-array 0.14.4", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "borsh" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09a7111f797cc721407885a323fb071636aee57f750b1a4ddc27397eba168a74" -dependencies = [ - "borsh-derive", - "hashbrown", -] - -[[package]] -name = "borsh-derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307f3740906bac2c118a8122fe22681232b244f1369273e45f1156b45c43d2dd" -dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", - "proc-macro-crate", - "proc-macro2", - "syn", -] - -[[package]] -name = "borsh-derive-internal" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2104c73179359431cc98e016998f2f23bc7a05bc53e79741bcba705f30047bc" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "borsh-schema-derive-internal" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae29eb8418fcd46f723f8691a2ac06857d31179d33d2f2d91eb13967de97c728" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" - -[[package]] -name = "byte-slice-cast" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65c1bf4a04a88c54f589125563643d773f3254b5c38571395e2b591c693bbc81" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040" - -[[package]] -name = "c2-chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb6b83fa00a7c53f420893670940c8fdfaa89f9dd9adb52062cca39482a31ab6" -dependencies = [ - "cipher", - "ppv-lite86", -] - -[[package]] -name = "cached" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e2afe73808fbaac302e39c9754bfc3c4b4d0f99c9c240b9f4e4efc841ad1b74" -dependencies = [ - "async-mutex", - "async-trait", - "cached_proc_macro", - "cached_proc_macro_types", - "futures", - "hashbrown", - "once_cell", -] - -[[package]] -name = "cached_proc_macro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf857ae42d910aede5c5186e62684b0d7a597ce2fe3bd14448ab8f7ef439848c" -dependencies = [ - "async-mutex", - "cached_proc_macro_types", - "darling 0.10.2", - "quote", - "syn", -] - -[[package]] -name = "cached_proc_macro_types" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" - -[[package]] -name = "cc" -version = "1.0.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cexpr" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" -dependencies = [ - "nom", -] - -[[package]] -name = "cfg-if" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" - -[[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.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73" -dependencies = [ - "libc", - "num-integer", - "num-traits", - "serde", - "time", - "winapi", -] - -[[package]] -name = "cipher" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" -dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "clang-sys" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "853eda514c284c2287f4bf20ae614f8781f40a81d32ecda6e91449304dfe077c" -dependencies = [ - "glob", - "libc", - "libloading 0.7.0", -] - -[[package]] -name = "cloudabi" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" -dependencies = [ - "bitflags", -] - -[[package]] -name = "concat-with" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e05b2e0bc9f34da5b073abb9fab94dd47d2a79479244c99145893a5ae28fed" - -[[package]] -name = "constant_time_eq" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "cpuid-bool" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634" - -[[package]] -name = "cranelift-bforest" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f065f6889758f817f61a230220d1811ba99a9762af2fb69ae23048314f75ff2" -dependencies = [ - "cranelift-entity 0.67.0", -] - -[[package]] -name = "cranelift-bforest" -version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9221545c0507dc08a62b2d8b5ffe8e17ac580b0a74d1813b496b8d70b070fbd0" -dependencies = [ - "cranelift-entity 0.68.0", -] - -[[package]] -name = "cranelift-codegen" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "510aa2ab4307644100682b94e449940a0ea15c5887f1d4b9678b8dd5ef31e736" -dependencies = [ - "byteorder", - "cranelift-bforest 0.67.0", - "cranelift-codegen-meta 0.67.0", - "cranelift-codegen-shared 0.67.0", - "cranelift-entity 0.67.0", - "gimli 0.21.0", - "log", - "regalloc 0.0.30", - "serde", - "smallvec", - "target-lexicon 0.11.2", - "thiserror", -] - -[[package]] -name = "cranelift-codegen" -version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e9936ea608b6cd176f107037f6adbb4deac933466fc7231154f96598b2d3ab1" -dependencies = [ - "byteorder", - "cranelift-bforest 0.68.0", - "cranelift-codegen-meta 0.68.0", - "cranelift-codegen-shared 0.68.0", - "cranelift-entity 0.68.0", - "gimli 0.22.0", - "log", - "regalloc 0.0.31", - "smallvec", - "target-lexicon 0.11.2", - "thiserror", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4cb0c7e87c60d63b35f9670c15479ee4a5e557dd127efab88b2f9b2ca83c9a0" -dependencies = [ - "cranelift-codegen-shared 0.67.0", - "cranelift-entity 0.67.0", -] - -[[package]] -name = "cranelift-codegen-meta" -version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ef2b2768568306540f4c8db3acce9105534d34c4a1e440529c1e702d7f8c8d7" -dependencies = [ - "cranelift-codegen-shared 0.68.0", - "cranelift-entity 0.68.0", -] - -[[package]] -name = "cranelift-codegen-shared" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60636227098693e06de8d6d88beea2a7d32ecf8a8030dacdb57c68e06f381826" - -[[package]] -name = "cranelift-codegen-shared" -version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6759012d6d19c4caec95793f052613e9d4113e925e7f14154defbac0f1d4c938" - -[[package]] -name = "cranelift-entity" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6156db73e0c9f65f80c512988d63ec736be0dee3dd66bf951e3e28aed9dc02d3" -dependencies = [ - "serde", -] - -[[package]] -name = "cranelift-entity" -version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86badbce14e15f52a45b666b38abe47b204969dd7f8fb7488cb55dd46b361fa6" -dependencies = [ - "serde", -] - -[[package]] -name = "cranelift-frontend" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e09cd158c9a820a4cc14a34076811da225cce1d31dc6d03c5ef85b91aef560b9" -dependencies = [ - "cranelift-codegen 0.67.0", - "log", - "smallvec", - "target-lexicon 0.11.2", -] - -[[package]] -name = "cranelift-frontend" -version = "0.68.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b608bb7656c554d0a4cf8f50c7a10b857e80306f6ff829ad6d468a7e2323c8d8" -dependencies = [ - "cranelift-codegen 0.68.0", - "log", - "smallvec", - "target-lexicon 0.11.2", -] - -[[package]] -name = "cranelift-native" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7054533ae1fc2048c1a6110bdf8f4314b77c60329ec6a7df79d2cfb84e3dcc1c" -dependencies = [ - "cranelift-codegen 0.67.0", - "raw-cpuid", - "target-lexicon 0.11.2", -] - -[[package]] -name = "cranelift-wasm" -version = "0.67.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aee0e0b68eba99f99a4923212d97aca9e44655ca8246f07fffe11236109b0d0" -dependencies = [ - "cranelift-codegen 0.67.0", - "cranelift-entity 0.67.0", - "cranelift-frontend 0.67.0", - "log", - "serde", - "thiserror", - "wasmparser 0.59.0", -] - -[[package]] -name = "crc32fast" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ed27e177f16d65f0f0c22a213e17c696ace5dd64b14258b52f9417ccb52db4" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94af6efb46fef72616855b036a624cf27ba656ffc9be1b9a3c931cfc7749a9a9" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2584f639eb95fea8c798496315b297cf81b9b58b6d30ab066a75455333cf4b12" -dependencies = [ - "cfg-if 1.0.0", - "crossbeam-utils", - "lazy_static", - "memoffset 0.6.3", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7e9d99fa91428effe99c5c6d4634cdeba32b8cf784fc428a2a687f61a952c49" -dependencies = [ - "autocfg", - "cfg-if 1.0.0", - "lazy_static", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-mac" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" -dependencies = [ - "generic-array 0.14.4", - "subtle", -] - -[[package]] -name = "curve25519-dalek" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "639891fde0dbea823fc3d798a0fdf9d2f9440a42d64a78ab3488b0ca025117b3" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.5.1", - "subtle", - "zeroize", -] - -[[package]] -name = "darling" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d706e75d87e35569db781a9b5e2416cff1236a47ed380831f959382ccd5f858" -dependencies = [ - "darling_core 0.10.2", - "darling_macro 0.10.2", -] - -[[package]] -name = "darling" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f2c43f534ea4b0b049015d00269734195e6d3f0f6635cb692251aca6f9f8b3c" -dependencies = [ - "darling_core 0.12.4", - "darling_macro 0.12.4", -] - -[[package]] -name = "darling_core" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0c960ae2da4de88a91b2d920c2a7233b400bc33cb28453a2987822d8392519b" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.9.3", - "syn", -] - -[[package]] -name = "darling_core" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e91455b86830a1c21799d94524df0845183fa55bafd9aa137b01c7d1065fa36" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2", - "quote", - "strsim 0.10.0", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b5a2f4ac4969822c62224815d069952656cadc7084fdca9751e6d959189b72" -dependencies = [ - "darling_core 0.10.2", - "quote", - "syn", -] - -[[package]] -name = "darling_macro" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29b5acf0dea37a7f66f7b25d2c5e93fd46f8f6968b1a5d7a3e02e97768afc95a" -dependencies = [ - "darling_core 0.12.4", - "quote", - "syn", -] - -[[package]] -name = "derive_more" -version = "0.99.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f82b1b72f1263f214c0f823371768776c4f5841b942c9883aa8e5ec584fd0ba6" -dependencies = [ - "convert_case", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "digest" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" -dependencies = [ - "generic-array 0.12.4", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array 0.14.4", -] - -[[package]] -name = "dynasm" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d7d1242462849390bb2ad38aeed769499f1afc7383affa2ab0c1baa894c0200" -dependencies = [ - "bitflags", - "byteorder", - "lazy_static", - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "dynasmrt" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1dd4d1d5ca12258cef339a57a7643e8b233a42dea9bb849630ddd9dd7726aa9" -dependencies = [ - "byteorder", - "dynasm", - "memmap2", -] - -[[package]] -name = "easy-ext" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62473f23f4a15690bd64ea37269266ba7b273e7c26b302aef68d3968ae9262a0" -dependencies = [ - "quote", - "syn", -] - -[[package]] -name = "ed25519" -version = "1.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37c66a534cbb46ab4ea03477eae19d5c22c01da8258030280b7bd9d8433fb6ef" -dependencies = [ - "signature", -] - -[[package]] -name = "ed25519-dalek" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d" -dependencies = [ - "curve25519-dalek", - "ed25519", - "rand 0.7.3", - "serde", - "sha2", - "zeroize", -] - -[[package]] -name = "either" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" - -[[package]] -name = "elastic-array" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d63720ea2bc2e1b79f7aa044d9dc0b825f9ccb6930b32120f8fb9e873aa84bc" -dependencies = [ - "heapsize", -] - -[[package]] -name = "enumset" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbd795df6708a599abf1ee10eacc72efd052b7a5f70fdf0715e4d5151a6db9c3" -dependencies = [ - "enumset_derive", -] - -[[package]] -name = "enumset_derive" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e19c52f9ec503c8a68dc04daf71a04b07e690c32ab1a8b68e33897f255269d47" -dependencies = [ - "darling 0.12.4", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "errno" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa68f2fb9cae9d37c9b2b3584aba698a2e97f72d7aef7b9f7aa71d8b54ce46fe" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14ca354e36190500e1e1fb267c647932382b54053c50b14970856c0b00a35067" -dependencies = [ - "gcc", - "libc", -] - -[[package]] -name = "ethbloom" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "779864b9c7f7ead1f092972c3257496c6a84b46dba2ce131dd8a282cb2cc5972" -dependencies = [ - "crunchy", - "fixed-hash", - "impl-rlp", - "impl-serde", - "tiny-keccak", -] - -[[package]] -name = "ethereum-types" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f64b5df66a228d85e4b17e5d6c6aa43b0310898ffe8a85988c4c032357aaabfd" -dependencies = [ - "ethbloom", - "fixed-hash", - "impl-rlp", - "impl-serde", - "primitive-types", - "uint", -] - -[[package]] -name = "event-listener" -version = "2.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7531096570974c3a9dcf9e4b8e1cede1ec26cf5046219fb3b9d897503b9be59" - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fixed-hash" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" -dependencies = [ - "byteorder", - "rand 0.8.3", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fc25a87fa4fd2094bffb06925852034d90a17f0d1e05197d4956d3555752191" -dependencies = [ - "matches", - "percent-encoding", -] - -[[package]] -name = "fs_extra" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" - -[[package]] -name = "ft-lockup" -version = "1.0.0" -dependencies = [ - "near-contract-standards", - "near-sdk", - "near-sdk-sim", - "uint", -] - -[[package]] -name = "funty" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" - -[[package]] -name = "futures" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d5813545e459ad3ca1bff9915e9ad7f1a47dc6a91b627ce321d5863b7dd253" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce79c6a52a299137a6013061e0cf0e688fce5d7f1bc60125f520912fdb29ec25" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "098cd1c6dda6ca01650f1a37a794245eb73181d0d4d4e955e2f3c37db7af1815" - -[[package]] -name = "futures-executor" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10f6cb7042eda00f0049b1d2080aa4b93442997ee507eb3828e8bd7577f94c9d" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "365a1a1fb30ea1c03a830fdb2158f5236833ac81fa0ad12fe35b29cddc35cb04" - -[[package]] -name = "futures-macro" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "668c6733a182cd7deb4f1de7ba3bf2120823835b3bcfbeacf7d2c4a773c1bb8b" -dependencies = [ - "proc-macro-hack", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "futures-sink" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5629433c555de3d82861a7a4e3794a4c40040390907cfbfd7143a92a426c23" - -[[package]] -name = "futures-task" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba7aa51095076f3ba6d9a1f702f74bd05ec65f555d70d2033d55ba8d69f581bc" - -[[package]] -name = "futures-util" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c144ad54d60f23927f0a6b6d816e4271278b64f005ad65e4e35291d2de9c025" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "proc-macro-hack", - "proc-macro-nested", - "slab", -] - -[[package]] -name = "gcc" -version = "0.3.55" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" - -[[package]] -name = "generic-array" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffdf9f34f1447443d37393cc6c2b8313aebddcd96906caf34e54c68d8e57d7bd" -dependencies = [ - "typenum", -] - -[[package]] -name = "generic-array" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501466ecc8a30d1d3b7fc9229b122b2ce8ed6e9d9223f1138d4babb253e51817" -dependencies = [ - "typenum", - "version_check", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9495705279e7140bf035dde1f6e750c162df8b625267cd52cc44e0b156732c8" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "wasi 0.10.2+wasi-snapshot-preview1", -] - -[[package]] -name = "gimli" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - -[[package]] -name = "gimli" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724" -dependencies = [ - "fallible-iterator", - "indexmap", - "stable_deref_trait", -] - -[[package]] -name = "gimli" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce" - -[[package]] -name = "glob" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" - -[[package]] -name = "hashbrown" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" -dependencies = [ - "ahash", -] - -[[package]] -name = "heapsize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1679e6ea370dee694f91f1dc469bf94cf8f52051d147aec3e1f9497c6fc22461" -dependencies = [ - "winapi", -] - -[[package]] -name = "heck" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cbf45460356b7deeb5e3415b5563308c0a9b057c85e12b06ad551f98d0a6ac" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "hermit-abi" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" -dependencies = [ - "libc", -] - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8" -dependencies = [ - "matches", - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "impl-codec" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df170efa359aebdd5cb7fe78edcc67107748e4737bdca8a8fb40d15ea7a877ed" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-rlp" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" -dependencies = [ - "rlp", -] - -[[package]] -name = "impl-serde" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b47ca4d2b6931707a55fce5cf66aff80e2178c8b63bbb4ecb5695cbc870ddf6f" -dependencies = [ - "serde", -] - -[[package]] -name = "indexmap" -version = "1.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "824845a0bf897a9042383849b02c1bc219c2383772efcd5c6f9766fa4b81aef3" -dependencies = [ - "autocfg", - "hashbrown", - "serde", -] - -[[package]] -name = "instant" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61124eeebbd69b8190558df225adf7e4caafce0d743919e5d6b19652314ec5ec" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "itoa" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" - -[[package]] -name = "jemalloc-sys" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d3b9f3f5c9b31aa0f5ed3260385ac205db665baa41d49bb8338008ae94ede45" -dependencies = [ - "cc", - "fs_extra", - "libc", -] - -[[package]] -name = "jemallocator" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43ae63fcfc45e99ab3d1b29a46782ad679e98436c3169d15a167a1108a724b69" -dependencies = [ - "jemalloc-sys", - "libc", -] - -[[package]] -name = "jobserver" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "972f5ae5d1cb9c6ae417789196c803205313edde988685da5e3aae0827b9e7fd" -dependencies = [ - "libc", -] - -[[package]] -name = "keccak" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c21572b4949434e4fc1e1978b99c5f77064153c59d998bf13ecd96fb5ecba7" - -[[package]] -name = "lazy-static-include" -version = "3.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c8cc0286c6d5fc53b3726f9763cc6468b4694f1ea8d78bd01e6600d117f73c" -dependencies = [ - "lazy_static", - "slash-formatter", - "syn", -] - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "leb128" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a" - -[[package]] -name = "libc" -version = "0.2.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - -[[package]] -name = "libloading" -version = "0.6.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" -dependencies = [ - "cfg-if 1.0.0", - "winapi", -] - -[[package]] -name = "libloading" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f84d96438c15fcd6c3f244c8fce01d1e2b9c6b5623e9c711dc9286d8fc92d6a" -dependencies = [ - "cfg-if 1.0.0", - "winapi", -] - -[[package]] -name = "librocksdb-sys" -version = "6.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5da125e1c0f22c7cae785982115523a0738728498547f415c9054cb17c7e89f9" -dependencies = [ - "bindgen", - "cc", - "glob", - "libc", -] - -[[package]] -name = "lock_api" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "lock_api" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3c91c24eae6777794bb1997ad98bbb87daf92890acab859f7eaa4320333176" -dependencies = [ - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" -dependencies = [ - "cfg-if 1.0.0", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "matches" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" - -[[package]] -name = "memchr" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee1c47aaa256ecabcaea351eae4a9b01ef39ed810004e298d2511ed284b1525" - -[[package]] -name = "memmap" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "memmap2" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397d1a6d6d0563c0f5462bbdae662cf6c784edf5e828e40c7257f85d82bf56dd" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83fb6581e8ed1f85fd45c116db8405483899489e38406156c25eb743554361d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memory_units" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8452105ba047068f40ff7093dd1d9da90898e63dd61736462e9cdda6a90ad3c3" - -[[package]] -name = "miniz_oxide" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92518e98c078586bc6c934028adcca4c92a53d6a958196de835170a01d84e4b" -dependencies = [ - "adler", - "autocfg", -] - -[[package]] -name = "more-asserts" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238" - -[[package]] -name = "near-contract-standards" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5837ffd278eeedc4f97104586b3851ed9e7c32449de8b54e8d752f22498588e" -dependencies = [ - "near-sdk", -] - -[[package]] -name = "near-crypto" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb14bec070cfd808438712cda5d54703001b9cf1196c8afaeadc9514e06d00a3" -dependencies = [ - "arrayref", - "blake2", - "borsh", - "bs58", - "c2-chacha", - "curve25519-dalek", - "derive_more", - "ed25519-dalek", - "lazy_static", - "libc", - "parity-secp256k1", - "rand 0.7.3", - "rand_core 0.5.1", - "serde", - "serde_json", - "subtle", - "thiserror", -] - -[[package]] -name = "near-metrics" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7b9dcbc960db15fcec85bcb29a78b57e4005b7b1a0afc70a26a97453862528e" -dependencies = [ - "lazy_static", - "log", - "prometheus", -] - -[[package]] -name = "near-pool" -version = "0.1.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bde79472f7cfc0675733b65f79f9e50c20bfbb9806298ab2872916869a45dccd" -dependencies = [ - "borsh", - "near-crypto", - "near-primitives", - "rand 0.7.3", -] - -[[package]] -name = "near-primitives" -version = "0.1.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75ed2263518ca67a3c158c144813832fd96f48ab239494bb9d7793d315f31417" -dependencies = [ - "base64", - "borsh", - "bs58", - "byteorder", - "chrono", - "derive_more", - "easy-ext", - "hex", - "jemallocator", - "lazy_static", - "near-crypto", - "near-primitives-core", - "near-rpc-error-macro", - "near-vm-errors", - "num-rational", - "primitive-types", - "rand 0.7.3", - "reed-solomon-erasure", - "regex", - "serde", - "serde_json", - "sha2", - "smart-default", - "validator", -] - -[[package]] -name = "near-primitives-core" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2b3fb5acf3a494aed4e848446ef2d6ebb47dbe91c681105d4d1786c2ee63e52" -dependencies = [ - "base64", - "borsh", - "bs58", - "derive_more", - "hex", - "lazy_static", - "num-rational", - "serde", - "serde_json", - "sha2", -] - -[[package]] -name = "near-rpc-error-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffa8dbf8437a28ac40fcb85859ab0d0b8385013935b000c7a51ae79631dd74d9" -dependencies = [ - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn", -] - -[[package]] -name = "near-rpc-error-macro" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6111d713e90c7c551dee937f4a06cb9ea2672243455a4454cc7566387ba2d9" -dependencies = [ - "near-rpc-error-core", - "proc-macro2", - "quote", - "serde", - "serde_json", - "syn", -] - -[[package]] -name = "near-runtime" -version = "4.0.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e4c0a4cd2ee5ccbc1fd5d492180ebf33ac1159d721b2e0c58c11953131fb449" -dependencies = [ - "borsh", - "byteorder", - "ethereum-types", - "hex", - "lazy_static", - "log", - "near-crypto", - "near-metrics", - "near-primitives", - "near-runtime-utils", - "near-store", - "near-vm-errors", - "near-vm-logic", - "near-vm-runner", - "num-bigint", - "num-rational", - "num-traits", - "rand 0.7.3", - "serde", - "serde_json", -] - -[[package]] -name = "near-runtime-utils" -version = "4.0.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48d80c4ca1d4cf99bc16490e1e3d49826c150dfc4410ac498918e45c7d98e07" -dependencies = [ - "lazy_static", - "regex", -] - -[[package]] -name = "near-sdk" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7383e242d3e07bf0951e8589d6eebd7f18bb1c1fc5fbec3fad796041a6aebd1" -dependencies = [ - "base64", - "borsh", - "bs58", - "near-primitives-core", - "near-sdk-macros", - "near-vm-logic", - "serde", - "serde_json", - "wee_alloc", -] - -[[package]] -name = "near-sdk-core" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "284a78d9eb8eda58330462fa0023a6d7014c941df1f0387095e7dfd1dc0f2bce" -dependencies = [ - "Inflector", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "near-sdk-macros" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2037337438f97d1ce5f7c896cf229dc56dacd5c01142d1ef95a7d778cde6ce7d" -dependencies = [ - "near-sdk-core", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "near-sdk-sim" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f9be539455733f5cff63febaee07dcdc48c0a9940856257a1989e84a5552d7a" -dependencies = [ - "funty", - "lazy-static-include", - "near-crypto", - "near-pool", - "near-primitives", - "near-runtime", - "near-sdk", - "near-store", - "near-vm-logic", -] - -[[package]] -name = "near-store" -version = "0.1.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07e880d1d9a4ca5a1ca1ea0366fd80e295465f90cd0c1209f45d6d0b7a443ed4" -dependencies = [ - "borsh", - "byteorder", - "cached", - "derive_more", - "elastic-array", - "lazy_static", - "near-crypto", - "near-primitives", - "num_cpus", - "rand 0.7.3", - "rocksdb", - "serde", - "serde_json", - "strum", -] - -[[package]] -name = "near-vm-errors" -version = "4.0.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e281d8730ed8cb0e3e69fb689acee6b93cdb43824cd69a8ffd7e1bfcbd1177d7" -dependencies = [ - "borsh", - "hex", - "near-rpc-error-macro", - "serde", -] - -[[package]] -name = "near-vm-logic" -version = "4.0.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11cb28a2d07f37680efdaf860f4c9802828c44fc50c08009e7884de75d982c5" -dependencies = [ - "base64", - "borsh", - "bs58", - "byteorder", - "near-primitives-core", - "near-runtime-utils", - "near-vm-errors", - "serde", - "sha2", - "sha3", -] - -[[package]] -name = "near-vm-runner" -version = "4.0.0-pre.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93a66e94e12ec66a29674cc4efa975c280415aa0c944d7294cedbdb0c3858b48" -dependencies = [ - "anyhow", - "borsh", - "cached", - "log", - "near-primitives", - "near-vm-errors", - "near-vm-logic", - "parity-wasm", - "pwasm-utils", - "tracing", - "wasmer", - "wasmer-compiler-singlepass", - "wasmer-runtime-core-near", - "wasmer-runtime-near", - "wasmer-types", - "wasmtime", -] - -[[package]] -name = "nix" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b2e0b4f3320ed72aaedb9a5ac838690a8047c7b275da22711fddff4f8a14229" -dependencies = [ - "bitflags", - "cc", - "cfg-if 0.1.10", - "libc", - "void", -] - -[[package]] -name = "nom" -version = "5.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" -dependencies = [ - "memchr", - "version_check", -] - -[[package]] -name = "num-bigint" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d0a3d5e207573f948a9e5376662aa743a2ea13f7c50a554d7af443a73fbfeba" -dependencies = [ - "autocfg", - "num-integer", - "num-traits", -] - -[[package]] -name = "num-integer" -version = "0.1.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" -dependencies = [ - "autocfg", - "num-traits", -] - -[[package]] -name = "num-rational" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits", - "serde", -] - -[[package]] -name = "num-traits" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290" -dependencies = [ - "autocfg", -] - -[[package]] -name = "num_cpus" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" -dependencies = [ - "hermit-abi", - "libc", -] - -[[package]] -name = "object" -version = "0.21.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693" -dependencies = [ - "crc32fast", - "indexmap", - "wasmparser 0.57.0", -] - -[[package]] -name = "object" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397" -dependencies = [ - "crc32fast", - "indexmap", -] - -[[package]] -name = "object" -version = "0.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4" - -[[package]] -name = "once_cell" -version = "1.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8b08b04175473088b46763e51ee54da5f9a164bc162f615b91bc179dbf15a3" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "page_size" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eebde548fbbf1ea81a99b128872779c437752fb99f217c45245e1a61dcd9edcd" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "parity-scale-codec" -version = "2.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f518afaa5a47d0d6386229b0a6e01e86427291d643aa4cabb4992219f504f8" -dependencies = [ - "arrayvec 0.7.0", - "bitvec", - "byte-slice-cast", - "serde", -] - -[[package]] -name = "parity-secp256k1" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fca4f82fccae37e8bbdaeb949a4a218a1bbc485d11598f193d2a908042e5fc1" -dependencies = [ - "arrayvec 0.5.2", - "cc", - "cfg-if 0.1.10", - "rand 0.7.3", -] - -[[package]] -name = "parity-wasm" -version = "0.41.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc878dac00da22f8f61e7af3157988424567ab01d9920b962ef7dcbd7cd865" - -[[package]] -name = "parking_lot" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e" -dependencies = [ - "lock_api 0.3.4", - "parking_lot_core 0.7.2", -] - -[[package]] -name = "parking_lot" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d7744ac029df22dca6284efe4e898991d28e3085c706c972bcd7da4a27a15eb" -dependencies = [ - "instant", - "lock_api 0.4.3", - "parking_lot_core 0.8.3", -] - -[[package]] -name = "parking_lot_core" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3" -dependencies = [ - "cfg-if 0.1.10", - "cloudabi", - "libc", - "redox_syscall 0.1.57", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7a782938e745763fe6907fc6ba86946d72f49fe7e21de074e08128a99fb018" -dependencies = [ - "cfg-if 1.0.0", - "instant", - "libc", - "redox_syscall 0.2.7", - "smallvec", - "winapi", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "percent-encoding" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" - -[[package]] -name = "pin-project-lite" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc0e1f259c92177c30a4c9d177246edd0a3568b25756a977d0632cf8fa37e905" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "ppv-lite86" -version = "0.2.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac74c624d6b2d21f425f752262f42188365d7b8ff1aff74c82e45136510a4857" - -[[package]] -name = "primitive-types" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2415937401cb030a2a0a4d922483f945fa068f52a7dbb22ce0fe5f2b6f6adace" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-rlp", - "impl-serde", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" -dependencies = [ - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2", - "quote", - "syn", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2", - "quote", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5" - -[[package]] -name = "proc-macro-nested" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc881b2c22681370c6a780e47af9840ef841837bc98118431d4e1868bd0c1086" - -[[package]] -name = "proc-macro2" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" -dependencies = [ - "unicode-xid", -] - -[[package]] -name = "prometheus" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8425533e7122f0c3cc7a37e6244b16ad3a2cc32ae7ac6276e2a75da0d9c200d" -dependencies = [ - "cfg-if 1.0.0", - "fnv", - "lazy_static", - "parking_lot 0.11.1", - "protobuf", - "regex", - "thiserror", -] - -[[package]] -name = "protobuf" -version = "2.23.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45604fc7a88158e7d514d8e22e14ac746081e7a70d7690074dd0029ee37458d6" - -[[package]] -name = "pwasm-utils" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f7a12f176deee919f4ba55326ee17491c8b707d0987aed822682c821b660192" -dependencies = [ - "byteorder", - "log", - "parity-wasm", -] - -[[package]] -name = "quote" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" -dependencies = [ - "proc-macro2", -] - -[[package]] -name = "radium" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc 0.2.0", -] - -[[package]] -name = "rand" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ef9e7e66b4468674bfcb0c81af8b7fa0bb154fa9f28eb840da5c447baeb8d7e" -dependencies = [ - "libc", - "rand_chacha 0.3.0", - "rand_core 0.6.2", - "rand_hc 0.3.0", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e12735cf05c9e10bf21534da50a147b924d555dc7a547c42e6bb2d5b6017ae0d" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.2", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34cf66eb183df1c5876e2dcf6b13d57340741e8dc255b48e40a26de954d06ae7" -dependencies = [ - "getrandom 0.2.2", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_hc" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3190ef7066a446f2e7f42e239d161e905420ccab01eb967c9eb27d21b2322a73" -dependencies = [ - "rand_core 0.6.2", -] - -[[package]] -name = "raw-cpuid" -version = "7.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41" -dependencies = [ - "bitflags", - "cc", - "rustc_version", -] - -[[package]] -name = "rayon" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b0d8e0819fadc20c74ea8373106ead0600e3a67ef1fe8da56e39b9ae7275674" -dependencies = [ - "autocfg", - "crossbeam-deque", - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ab346ac5921dc62ffa9f89b7a773907511cdfa5490c572ae9be1be33e8afa4a" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "lazy_static", - "num_cpus", -] - -[[package]] -name = "redox_syscall" -version = "0.1.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" - -[[package]] -name = "redox_syscall" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85dd92e586f7355c633911e11f77f3d12f04b1b1bd76a198bd34ae3af8341ef2" -dependencies = [ - "bitflags", -] - -[[package]] -name = "reed-solomon-erasure" -version = "4.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a415a013dd7c5d4221382329a5a3482566da675737494935cbbbcdec04662f9d" -dependencies = [ - "smallvec", -] - -[[package]] -name = "regalloc" -version = "0.0.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2041c2d34f6ff346d6f428974f03d8bf12679b0c816bb640dc5eb1d48848d8d1" -dependencies = [ - "log", - "rustc-hash", - "smallvec", -] - -[[package]] -name = "regalloc" -version = "0.0.31" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5" -dependencies = [ - "log", - "rustc-hash", - "smallvec", -] - -[[package]] -name = "regex" -version = "1.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "957056ecddbeba1b26965114e191d2e8589ce74db242b6ea25fc4062427a5c19" -dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -] - -[[package]] -name = "regex-syntax" -version = "0.6.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" - -[[package]] -name = "region" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877e54ea2adcd70d80e9179344c97f93ef0dffd6b03e1f4529e6e83ab2fa9ae0" -dependencies = [ - "bitflags", - "libc", - "mach", - "winapi", -] - -[[package]] -name = "remove_dir_all" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" -dependencies = [ - "winapi", -] - -[[package]] -name = "rlp" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e54369147e3e7796c9b885c7304db87ca3d09a0a98f72843d532868675bbfba8" -dependencies = [ - "bytes", - "rustc-hex", -] - -[[package]] -name = "rocksdb" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d83c02c429044d58474eaf5ae31e062d0de894e21125b47437ec0edc1397e6" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3bad0ee36814ca07d7968269dd4b7ec89ec2da10c4bb613928d3077083c232" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" -dependencies = [ - "semver", -] - -[[package]] -name = "ryu" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "semver" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver-parser" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" - -[[package]] -name = "serde" -version = "1.0.118" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-bench" -version = "0.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d733da87e79faaac25616e33d26299a41143fd4cd42746cbb0e91d8feea243fd" -dependencies = [ - "byteorder", - "serde", -] - -[[package]] -name = "serde_bytes" -version = "0.11.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" -dependencies = [ - "serde", -] - -[[package]] -name = "serde_derive" -version = "1.0.118" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "serde_json" -version = "1.0.64" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799e97dc9fdae36a5c8b8f2cae9ce2ee9fdce2058c57a93e6099d919fd982f79" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde", -] - -[[package]] -name = "sha2" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa827a14b29ab7f44778d14a88d3cb76e949c45083f7dbfa507d0cb699dc12de" -dependencies = [ - "block-buffer", - "cfg-if 1.0.0", - "cpuid-bool", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer", - "digest 0.9.0", - "keccak", - "opaque-debug", -] - -[[package]] -name = "shlex" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" - -[[package]] -name = "signature" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f0242b8e50dd9accdd56170e94ca1ebd223b098eb9c83539a6e367d0f36ae68" - -[[package]] -name = "slab" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f173ac3d1a7e3b28003f40de0b5ce7fe2710f9b9dc3fc38664cebee46b3b6527" - -[[package]] -name = "slash-formatter" -version = "3.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8be5f0374e00ae49a7b6883830d98b24df8d5df6f217d546637a3a159c29a201" -dependencies = [ - "concat-with", -] - -[[package]] -name = "smallvec" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe0f37c9e8f3c5a4a66ad655a93c74daac4ad00c441533bf5c6e7990bb42604e" - -[[package]] -name = "smart-default" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "133659a15339456eeeb07572eb02a91c91e9815e9cbc89566944d2c8d3efdbf6" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[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.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "strum" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7318c509b5ba57f18533982607f24070a55d353e90d4cae30c467cdb2ad5ac5c" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8bc6b87a5112aeeab1f4a9f7ab634fe6cbefc4850006df31267f4cfb9e3149" -dependencies = [ - "heck", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "subtle" -version = "2.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e81da0851ada1f3e9d4312c704aa4f8806f0f9d69faaf8df2f3464b4a9437c2" - -[[package]] -name = "syn" -version = "1.0.57" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6" -dependencies = [ - "proc-macro2", - "quote", - "unicode-xid", -] - -[[package]] -name = "synstructure" -version = "0.12.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "unicode-xid", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "target-lexicon" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab0e7238dcc7b40a7be719a25365910f6807bd864f4cce6b2e6b873658e2b19d" - -[[package]] -name = "target-lexicon" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "422045212ea98508ae3d28025bc5aaa2bd4a9cdaecd442a08da2ee620ee9ea95" - -[[package]] -name = "tempfile" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dac1c663cfc93810f88aed9b8941d48cabf856a1b111c29a40439018d870eb22" -dependencies = [ - "cfg-if 1.0.0", - "libc", - "rand 0.8.3", - "redox_syscall 0.2.7", - "remove_dir_all", - "winapi", -] - -[[package]] -name = "thiserror" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "time" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "tiny-keccak" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" -dependencies = [ - "crunchy", -] - -[[package]] -name = "tinyvec" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b5220f05bb7de7f3f53c7c065e1199b3172696fe2db9f9c4d8ad9b4ee74c342" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" - -[[package]] -name = "toml" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" -dependencies = [ - "serde", -] - -[[package]] -name = "tracing" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01ebdc2bb4498ab1ab5f5b73c5803825e60199229ccba0698170e3be0e7f959f" -dependencies = [ - "cfg-if 1.0.0", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c42e6fa53307c8a17e4ccd4dc81cf5ec38db9209f59b222210375b54ee40d1e2" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "tracing-core" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f50de3927f93d202783f4513cda820ab47ef17f624b03c096e86ef00c67e6b5f" -dependencies = [ - "lazy_static", -] - -[[package]] -name = "typenum" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "879f6906492a7cd215bfa4cf595b600146ccfac0c79bcbd1f3000162af5e8b06" - -[[package]] -name = "uint" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11fe9a9348741cf134085ad57c249508345fe16411b3d7fb4ff2da2f1d6382e" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb8be209bb1c96b7c177c7420d26e04eccacb0eeae6b980e35fcb74678107e0" -dependencies = [ - "matches", -] - -[[package]] -name = "unicode-normalization" -version = "0.1.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07fbfce1c8a97d547e8b5334978438d9d6ec8c20e38f56d4a4374d181493eaef" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0d2e7be6ae3a5fa87eed5fb451aff96f2573d2694942e40543ae0bbe19c796" - -[[package]] -name = "unicode-xid" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - -[[package]] -name = "url" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ccd964113622c8e9322cfac19eb1004a07e636c545f325da085d5cdde6f1f8b" -dependencies = [ - "form_urlencoded", - "idna", - "matches", - "percent-encoding", -] - -[[package]] -name = "validator" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d6937c33ec6039d8071bcf72933146b5bbe378d645d8fa59bdadabfc2a249" -dependencies = [ - "idna", - "lazy_static", - "regex", - "serde", - "serde_derive", - "serde_json", - "url", - "validator_types", -] - -[[package]] -name = "validator_types" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9680608df133af2c1ddd5eaf1ddce91d60d61b6bc51494ef326458365a470a" - -[[package]] -name = "version_check" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5fecdca9a5291cc2b8dcf7dc02453fee791a280f3743cb0905f8822ae463b3fe" - -[[package]] -name = "void" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.2+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6" - -[[package]] -name = "wasmer" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a70cfae554988d904d64ca17ab0e7cd652ee5c8a0807094819c1ea93eb9d6866" -dependencies = [ - "cfg-if 0.1.10", - "indexmap", - "more-asserts", - "target-lexicon 0.11.2", - "thiserror", - "wasmer-compiler", - "wasmer-compiler-cranelift", - "wasmer-derive", - "wasmer-engine", - "wasmer-engine-jit", - "wasmer-engine-native", - "wasmer-types", - "wasmer-vm", - "wat", - "winapi", -] - -[[package]] -name = "wasmer-compiler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7732a9cab472bd921d5a0c422f45b3d03f62fa2c40a89e0770cef6d47e383e" -dependencies = [ - "enumset", - "serde", - "serde_bytes", - "smallvec", - "target-lexicon 0.11.2", - "thiserror", - "wasmer-types", - "wasmer-vm", - "wasmparser 0.65.0", -] - -[[package]] -name = "wasmer-compiler-cranelift" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48cb9395f094e1d81534f4c5e330ed4cdb424e8df870d29ad585620284f5fddb" -dependencies = [ - "cranelift-codegen 0.68.0", - "cranelift-frontend 0.68.0", - "gimli 0.22.0", - "more-asserts", - "rayon", - "serde", - "smallvec", - "tracing", - "wasmer-compiler", - "wasmer-types", - "wasmer-vm", -] - -[[package]] -name = "wasmer-compiler-singlepass" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426ae6ef0f606ca815510f3e2ef6f520e217514bfb7a664defe180b9a9e75d07" -dependencies = [ - "byteorder", - "dynasm", - "dynasmrt", - "lazy_static", - "more-asserts", - "rayon", - "serde", - "smallvec", - "wasmer-compiler", - "wasmer-types", - "wasmer-vm", -] - -[[package]] -name = "wasmer-derive" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8b86dcd2c3efdb8390728a2b56f762db07789aaa5aa872a9dc776ba3a7912ed" -dependencies = [ - "proc-macro-error", - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "wasmer-engine" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efe4667d6bd888f26ae8062a63a9379fa697415b4b4e380f33832e8418fd71b5" -dependencies = [ - "backtrace", - "bincode", - "lazy_static", - "memmap2", - "more-asserts", - "rustc-demangle", - "serde", - "serde_bytes", - "target-lexicon 0.11.2", - "thiserror", - "wasmer-compiler", - "wasmer-types", - "wasmer-vm", -] - -[[package]] -name = "wasmer-engine-jit" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26770be802888011b4a3072f2a282fc2faa68aa48c71b3db6252a3937a85f3da" -dependencies = [ - "bincode", - "cfg-if 0.1.10", - "region", - "serde", - "serde_bytes", - "wasmer-compiler", - "wasmer-engine", - "wasmer-types", - "wasmer-vm", - "winapi", -] - -[[package]] -name = "wasmer-engine-native" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bb4083a6c69f2cd4b000b82a80717f37c6cc2e536aee3a8ffe9af3edc276a8b" -dependencies = [ - "bincode", - "cfg-if 0.1.10", - "leb128", - "libloading 0.6.7", - "serde", - "tempfile", - "tracing", - "wasmer-compiler", - "wasmer-engine", - "wasmer-object", - "wasmer-types", - "wasmer-vm", - "which", -] - -[[package]] -name = "wasmer-object" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abf8e0c12b82ff81ebecd30d7e118be5fec871d6de885a90eeb105df0a769a7b" -dependencies = [ - "object 0.22.0", - "thiserror", - "wasmer-compiler", - "wasmer-types", -] - -[[package]] -name = "wasmer-runtime-core-near" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2390b0b8cf58615c2f8b454d9535e1aed1d14c510cc1ce1af806a1992ad53300" -dependencies = [ - "bincode", - "blake3", - "cc", - "digest 0.8.1", - "errno", - "hex", - "indexmap", - "lazy_static", - "libc", - "nix", - "page_size", - "parking_lot 0.10.2", - "rustc_version", - "serde", - "serde-bench", - "serde_bytes", - "serde_derive", - "smallvec", - "target-lexicon 0.10.0", - "wasmparser 0.51.4", - "winapi", -] - -[[package]] -name = "wasmer-runtime-near" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6660e86bc7697fa29bab902214d5b33d394a990826c401b10816bcd285f938f" -dependencies = [ - "lazy_static", - "memmap", - "serde", - "serde_derive", - "wasmer-runtime-core-near", - "wasmer-singlepass-backend-near", -] - -[[package]] -name = "wasmer-singlepass-backend-near" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f23543ef8f59667be4945c22eb4b1a50a79ff340555f6f23354223d2695541" -dependencies = [ - "bincode", - "byteorder", - "dynasm", - "dynasmrt", - "lazy_static", - "libc", - "nix", - "serde", - "serde_derive", - "smallvec", - "wasmer-runtime-core-near", -] - -[[package]] -name = "wasmer-types" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7f4ac28c2951cd792c18332f03da523ed06b170f5cf6bb5b1bdd7e36c2a8218" -dependencies = [ - "cranelift-entity 0.68.0", - "serde", - "thiserror", -] - -[[package]] -name = "wasmer-vm" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7635ba0b6d2fd325f588d69a950ad9fa04dddbf6ad08b6b2a183146319bf6ae" -dependencies = [ - "backtrace", - "cc", - "cfg-if 0.1.10", - "indexmap", - "libc", - "memoffset 0.6.3", - "more-asserts", - "region", - "serde", - "thiserror", - "wasmer-types", - "winapi", -] - -[[package]] -name = "wasmparser" -version = "0.51.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aeb1956b19469d1c5e63e459d29e7b5aa0f558d9f16fcef09736f8a265e6c10a" - -[[package]] -name = "wasmparser" -version = "0.57.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32fddd575d477c6e9702484139cf9f23dcd554b06d185ed0f56c857dd3a47aa6" - -[[package]] -name = "wasmparser" -version = "0.59.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9" - -[[package]] -name = "wasmparser" -version = "0.65.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc2fe6350834b4e528ba0901e7aa405d78b89dc1fa3145359eb4de0e323fcf" - -[[package]] -name = "wasmtime" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b87ebd6721f4121e28eeaaa41943548c48bcca04ac9bb063004207e5e7d70" -dependencies = [ - "anyhow", - "backtrace", - "bincode", - "cfg-if 0.1.10", - "lazy_static", - "libc", - "log", - "region", - "rustc-demangle", - "serde", - "smallvec", - "target-lexicon 0.11.2", - "wasmparser 0.59.0", - "wasmtime-environ", - "wasmtime-jit", - "wasmtime-profiling", - "wasmtime-runtime", - "winapi", -] - -[[package]] -name = "wasmtime-cranelift" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40c01df908e54d40bed80326ade122825d464888991beafd950d186f1be309c2" -dependencies = [ - "cranelift-codegen 0.67.0", - "cranelift-entity 0.67.0", - "cranelift-frontend 0.67.0", - "cranelift-wasm", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-debug" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28962772f96fadb79dc7be5ade135ca55d2b0017a012f4869e2476a03abbe733" -dependencies = [ - "anyhow", - "gimli 0.21.0", - "more-asserts", - "object 0.21.1", - "target-lexicon 0.11.2", - "thiserror", - "wasmparser 0.59.0", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-environ" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c0d7401bf253b7b1f426afd70d285bb23ea9a1c7605d6af788c95db5084edf5" -dependencies = [ - "anyhow", - "cfg-if 0.1.10", - "cranelift-codegen 0.67.0", - "cranelift-entity 0.67.0", - "cranelift-wasm", - "gimli 0.21.0", - "indexmap", - "log", - "more-asserts", - "serde", - "thiserror", - "wasmparser 0.59.0", -] - -[[package]] -name = "wasmtime-jit" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c838a108318e7c5a2201addb3d3b27a6ef3d142f0eb0addc815b9c2541e5db5" -dependencies = [ - "anyhow", - "cfg-if 0.1.10", - "cranelift-codegen 0.67.0", - "cranelift-entity 0.67.0", - "cranelift-frontend 0.67.0", - "cranelift-native", - "cranelift-wasm", - "gimli 0.21.0", - "log", - "more-asserts", - "object 0.21.1", - "region", - "serde", - "target-lexicon 0.11.2", - "thiserror", - "wasmparser 0.59.0", - "wasmtime-cranelift", - "wasmtime-debug", - "wasmtime-environ", - "wasmtime-obj", - "wasmtime-profiling", - "wasmtime-runtime", - "winapi", -] - -[[package]] -name = "wasmtime-obj" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc8422b0acce519b74c3ae5db59167c611ea92220e5c334ad406e977277e0f23" -dependencies = [ - "anyhow", - "more-asserts", - "object 0.21.1", - "target-lexicon 0.11.2", - "wasmtime-debug", - "wasmtime-environ", -] - -[[package]] -name = "wasmtime-profiling" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33f2689bf523f843555e57e24d59abf0c5013007366b866081d73a15e510b4b2" -dependencies = [ - "anyhow", - "cfg-if 0.1.10", - "lazy_static", - "libc", - "serde", - "target-lexicon 0.11.2", - "wasmtime-environ", - "wasmtime-runtime", -] - -[[package]] -name = "wasmtime-runtime" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7353f5e79390048128e44b5ceda7255723b2066de4026df9a168b0b2593df71" -dependencies = [ - "backtrace", - "cc", - "cfg-if 0.1.10", - "indexmap", - "lazy_static", - "libc", - "log", - "memoffset 0.5.6", - "more-asserts", - "region", - "thiserror", - "wasmtime-environ", - "winapi", -] - -[[package]] -name = "wast" -version = "35.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" -dependencies = [ - "leb128", -] - -[[package]] -name = "wat" -version = "1.0.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ec280a739b69173e0ffd12c1658507996836ba4e992ed9bc1e5385a0bd72a02" -dependencies = [ - "wast", -] - -[[package]] -name = "wee_alloc" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbb3b5a6b2bb17cb6ad44a2e68a43e8d2722c997da10e928665c72ec6c0a0b8e" -dependencies = [ - "cfg-if 0.1.10", - "libc", - "memory_units", - "winapi", -] - -[[package]] -name = "which" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b55551e42cbdf2ce2bedd2203d0cc08dba002c27510f86dab6d0ce304cba3dfe" -dependencies = [ - "either", - "libc", -] - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - -[[package]] -name = "zeroize" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2c1e130bebaeab2f23886bf9acbaca14b092408c452543c857f66399cd6dab1" -dependencies = [ - "proc-macro2", - "quote", - "syn", - "synstructure", -] diff --git a/Cargo.toml b/contract/Cargo.toml similarity index 100% rename from Cargo.toml rename to contract/Cargo.toml diff --git a/src/callbacks.rs b/contract/src/callbacks.rs similarity index 100% rename from src/callbacks.rs rename to contract/src/callbacks.rs diff --git a/src/draft.rs b/contract/src/draft.rs similarity index 100% rename from src/draft.rs rename to contract/src/draft.rs diff --git a/src/event.rs b/contract/src/event.rs similarity index 100% rename from src/event.rs rename to contract/src/event.rs diff --git a/src/ft_token_receiver.rs b/contract/src/ft_token_receiver.rs similarity index 100% rename from src/ft_token_receiver.rs rename to contract/src/ft_token_receiver.rs diff --git a/src/internal.rs b/contract/src/internal.rs similarity index 100% rename from src/internal.rs rename to contract/src/internal.rs diff --git a/src/lib.rs b/contract/src/lib.rs similarity index 100% rename from src/lib.rs rename to contract/src/lib.rs diff --git a/src/lockup.rs b/contract/src/lockup.rs similarity index 100% rename from src/lockup.rs rename to contract/src/lockup.rs diff --git a/src/schedule.rs b/contract/src/schedule.rs similarity index 100% rename from src/schedule.rs rename to contract/src/schedule.rs diff --git a/src/termination.rs b/contract/src/termination.rs similarity index 100% rename from src/termination.rs rename to contract/src/termination.rs diff --git a/src/util.rs b/contract/src/util.rs similarity index 100% rename from src/util.rs rename to contract/src/util.rs diff --git a/src/view.rs b/contract/src/view.rs similarity index 100% rename from src/view.rs rename to contract/src/view.rs From 8d0195880c73cffde2f34a746e44e248b086248b Mon Sep 17 00:00:00 2001 From: Vladas Zakrevskis <146100@gmail.com> Date: Mon, 27 Nov 2023 16:40:48 +0200 Subject: [PATCH 02/11] added project structure --- .cargo/config | 12 ++ .env | 2 + .github/workflows/push.yml | 52 ++++++ .github/workflows/test.yml | 52 ++++++ .rustfmt.toml | 3 + Cargo.toml | 27 +++ Makefile | 45 +++++ README.md | 6 +- contract/Cargo.toml | 34 ++-- integration-tests/Cargo.toml | 30 ++++ integration-tests/src/context.rs | 43 +++++ integration-tests/src/happy_flow.rs | 12 ++ integration-tests/src/lib.rs | 3 + integration-tests/src/lockup_interface.rs | 198 ++++++++++++++++++++ model/Cargo.toml | 17 ++ model/src/draft.rs | 122 +++++++++++++ model/src/lib.rs | 22 +++ model/src/lockup.rs | 208 ++++++++++++++++++++++ model/src/lockup_api.rs | 49 +++++ model/src/schedule.rs | 185 +++++++++++++++++++ model/src/termination.rs | 57 ++++++ model/src/util.rs | 29 +++ model/src/view_api.rs | 61 +++++++ res/.gitkeep | 0 res/ft_lockup.wasm | Bin 348641 -> 0 bytes res/fungible_token.wasm | Bin 224084 -> 0 bytes res/hodl_lockup.wasm | Bin 0 -> 336492 bytes rust-toolchain.toml | 2 + scripts/build-in-docker.sh | 12 ++ scripts/build-integration.sh | 9 + scripts/build.sh | 9 + scripts/deploy.sh | 14 ++ scripts/lint.sh | 19 ++ scripts/measure.sh | 12 ++ scripts/mutation.sh | 7 + 35 files changed, 1334 insertions(+), 19 deletions(-) create mode 100644 .cargo/config create mode 100644 .env create mode 100644 .github/workflows/push.yml create mode 100644 .github/workflows/test.yml create mode 100644 .rustfmt.toml create mode 100644 Cargo.toml create mode 100644 Makefile create mode 100644 integration-tests/Cargo.toml create mode 100644 integration-tests/src/context.rs create mode 100644 integration-tests/src/happy_flow.rs create mode 100644 integration-tests/src/lib.rs create mode 100644 integration-tests/src/lockup_interface.rs create mode 100644 model/Cargo.toml create mode 100644 model/src/draft.rs create mode 100644 model/src/lib.rs create mode 100644 model/src/lockup.rs create mode 100644 model/src/lockup_api.rs create mode 100644 model/src/schedule.rs create mode 100644 model/src/termination.rs create mode 100644 model/src/util.rs create mode 100644 model/src/view_api.rs create mode 100644 res/.gitkeep delete mode 100755 res/ft_lockup.wasm delete mode 100644 res/fungible_token.wasm create mode 100755 res/hodl_lockup.wasm create mode 100644 rust-toolchain.toml create mode 100755 scripts/build-in-docker.sh create mode 100755 scripts/build-integration.sh create mode 100755 scripts/build.sh create mode 100755 scripts/deploy.sh create mode 100755 scripts/lint.sh create mode 100755 scripts/measure.sh create mode 100755 scripts/mutation.sh diff --git a/.cargo/config b/.cargo/config new file mode 100644 index 0000000..af616d8 --- /dev/null +++ b/.cargo/config @@ -0,0 +1,12 @@ +[profile.contract] +inherits = "release" +strip = true +codegen-units = 1 +opt-level = "z" + +#helloo + +lto = true +debug = false +panic = "abort" +overflow-checks = true diff --git a/.env b/.env new file mode 100644 index 0000000..75759ac --- /dev/null +++ b/.env @@ -0,0 +1,2 @@ + +export CONTRACT_NAME=contract_name diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 0000000..5579353 --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,52 @@ +name: Push + +on: + push: + branches: [ main ] + +env: + CARGO_TERM_COLOR: always + +jobs: + + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Build + run: make build-in-docker + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Lint + run: make lint + + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Unit tests + run: make test + + integration-tests: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Integration tests + run: make integration diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..1f6b0ef --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,52 @@ +name: Test + +on: + pull_request: + branches: [ main ] + +env: + CARGO_TERM_COLOR: always + +jobs: + + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Build + run: make build + + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Lint + run: make lint + + unit-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Unit tests + run: make test + + integration-tests: + runs-on: macos-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Integration tests + run: make integration diff --git a/.rustfmt.toml b/.rustfmt.toml new file mode 100644 index 0000000..1a25d9c --- /dev/null +++ b/.rustfmt.toml @@ -0,0 +1,3 @@ +group_imports = "StdExternalCrate" +imports_granularity = "Crate" +max_width = 120 diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 0000000..2e1a5bc --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,27 @@ +[workspace] + +resolver = "2" + +default-members = ["contract"] +members = ["model", "contract", "integration-tests"] + +[workspace.dependencies] +anyhow = "1.0.75" +async-trait = "0.1.73" +fake = "2.8.0" +rand = "0.8.5" +futures = "0.3.28" +itertools = "0.12.0" +base64 = "0.21.3" +sha256 = "1.3.0" +tokio = { version = "1.28" } +uint = "0.9.5" + +near-workspaces = "0.9.0" + +near-sdk = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } +near-contract-standards = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } + +integration-trait = { git = "https://github.com/sweatco/integration-trait.git", rev = "8dd8b63cef5e60448629a8903ea43b642bbf9f45" } +integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "0b3c2faf0db31cdb3481be4d35dbb48b62a98618" } +model = { path = "model" } diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..47e7391 --- /dev/null +++ b/Makefile @@ -0,0 +1,45 @@ +help: ##@Miscellaneous Show this help + @echo "Usage: make [target] ...\n" + @perl -e '$(HELP_FUN)' $(MAKEFILE_LIST) + +install: ##@Miscellaneous Install dependencies + @npm i near-cli + @cargo build + +build: ##@Build Build the contract locally. + ./scripts/build.sh + +build-in-docker: ##@Build Build reproducible artifact in Docker. + ./scripts/build-in-docker.sh + +build-integration: ##@Build Build the contract for integration tests. + ./scripts/build-integration.sh + +dock: build-in-docker ##@Build Shorthand for `build-in-docker` + +deploy: ##@Deploy Deploy the contract to dev account on Testnet. + ./scripts/deploy.sh + +cov: ##@Testing Run unit tests with coverage. + ./scripts/coverage.sh + +test: ##@Testing Run unit tests. + cargo test --package model && \ + cargo test --package hodl-lockup + +integration: ##@Testing Run integration tests. + cargo test --package integration-tests + +int: integration ##@Testing Shorthand for `integration` + +fmt: ##@Chores Format the code using rustfmt nightly. + cargo +nightly fmt --all + +lint: ##@Chores Run lint checks with Clippy. + ./scripts/lint.sh + +HELP_FUN = \ + %help; while(<>){push@{$$help{$$2//'options'}},[$$1,$$3] \ + if/^([\w-_]+)\s*:.*\#\#(?:@(\w+))?\s(.*)$$/}; \ + print"$$_:\n", map" $$_->[0]".(" "x(20-length($$_->[0])))."$$_->[1]\n",\ + @{$$help{$$_}},"\n" for keys %help; \ diff --git a/README.md b/README.md index e90a9a9..bcbbcf1 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,9 @@ - Lockup schedule can be set as a list of checkpoints with time and balance. - Supports multiple lockups per account ID. - Ability to create a lockup that can be terminated - - A single lockup can be only terminated by a specific account ID. - - Supports custom vesting schedule that should be ahead of the lockup schedule - - The vesting schedule can be hidden behind a hash, so it only needs to be revealed in case of termnation. + - A single lockup can be only terminated by a specific account ID. + - Supports custom vesting schedule that should be ahead of the lockup schedule + - The vesting schedule can be hidden behind a hash, so it only needs to be revealed in case of termnation. - Automatic rollbacks if a FT transfer fails. - Claiming all account's lockups in a single transaction. - Ability to add new lockups. diff --git a/contract/Cargo.toml b/contract/Cargo.toml index e5fe05d..ff20ef6 100644 --- a/contract/Cargo.toml +++ b/contract/Cargo.toml @@ -1,24 +1,26 @@ [package] -name = "ft-lockup" +name = "hodl-lockup" version = "1.0.0" -authors = ["Eugene The Dream "] -edition = "2018" +authors = ["Sweat Economy"] +edition = "2021" [lib] -crate-type = ["cdylib", "rlib"] +crate-type = ["cdylib"] + +[features] +default = [] +integration-test = [] [dependencies] -near-sdk = "3.1.0" -near-contract-standards = "3.1.0" -uint = { version = "0.9.0", default-features = false } -[dev-dependencies] -near-sdk-sim = "3.2.0" +near-sdk = { workspace = true } +near-contract-standards = { workspace = true } -[profile.release] -codegen-units=1 -opt-level = "z" -lto = true -debug = false -panic = "abort" -overflow-checks = true +model = { workspace = true } + +[dev-dependencies] +fake = { workspace = true } +rand = { workspace = true } +sha256 = { workspace = true } +crypto-hash = "0.3" +base64 = { workspace = true } diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml new file mode 100644 index 0000000..03eeda5 --- /dev/null +++ b/integration-tests/Cargo.toml @@ -0,0 +1,30 @@ +[package] +name = "integration-tests" +version = "1.0.0" +publish = false +edition = "2021" + +[lib] +name = "integration_tests" + +[dependencies] +fake = { workspace = true } +rand = { workspace = true } +futures = { workspace = true } +itertools = { workspace = true } +tokio = { workspace = true } + +near-sdk = { workspace = true } +near-workspaces = { workspace = true } + +model = { workspace = true } +integration-utils = { workspace = true } + + +dotenv = "0.15.0" + +anyhow = "1.0" +near-units = "0.2.0" +# arbitrary_precision enabled for u128 types that workspaces requires for Balance types +serde_json = { version = "1.0", features = ["arbitrary_precision"] } +async-trait = "0.1.71" diff --git a/integration-tests/src/context.rs b/integration-tests/src/context.rs new file mode 100644 index 0000000..5fa4e7c --- /dev/null +++ b/integration-tests/src/context.rs @@ -0,0 +1,43 @@ +#![cfg(test)] + +use anyhow::Result; +use async_trait::async_trait; +use integration_utils::integration_contract::IntegrationContract; +use near_workspaces::Account; + +use crate::lockup_interface::{LockupContract, LOCKUP_CONTRACT}; + +pub type Context = integration_utils::context::Context; + +#[async_trait] +pub trait IntegrationContext { + async fn manager(&mut self) -> Result; + async fn alice(&mut self) -> Result; + async fn fee(&mut self) -> Result; + fn lockup(&self) -> LockupContract<'_>; +} + +#[async_trait] +impl IntegrationContext for Context { + async fn manager(&mut self) -> Result { + self.account("manager").await + } + + async fn alice(&mut self) -> Result { + self.account("alice").await + } + + async fn fee(&mut self) -> Result { + self.account("fee").await + } + + fn lockup(&self) -> LockupContract<'_> { + LockupContract::with_contract(&self.contracts[LOCKUP_CONTRACT]) + } +} + +pub(crate) async fn prepare_contract() -> Result { + let context = Context::new(&[LOCKUP_CONTRACT], "build-integration".into()).await?; + //context.lockup().new().await?; + Ok(context) +} diff --git a/integration-tests/src/happy_flow.rs b/integration-tests/src/happy_flow.rs new file mode 100644 index 0000000..1c2379f --- /dev/null +++ b/integration-tests/src/happy_flow.rs @@ -0,0 +1,12 @@ +#![cfg(test)] + +use crate::context::prepare_contract; + +#[tokio::test] +async fn happy_flow() -> anyhow::Result<()> { + println!("👷🏽 Run happy flow test"); + + let _context = prepare_contract().await?; + + Ok(()) +} diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs new file mode 100644 index 0000000..4f4920a --- /dev/null +++ b/integration-tests/src/lib.rs @@ -0,0 +1,3 @@ +pub mod context; +mod happy_flow; +mod lockup_interface; diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs new file mode 100644 index 0000000..f99ef52 --- /dev/null +++ b/integration-tests/src/lockup_interface.rs @@ -0,0 +1,198 @@ +#![cfg(test)] + +use anyhow::Result; +use async_trait::async_trait; +use integration_utils::integration_contract::IntegrationContract; +use model::{ + draft::{Draft, DraftGroupIndex, DraftIndex}, + lockup::LockupIndex, + lockup_api::LockupApiIntegration, + schedule::Schedule, + TimestampSec, WrappedBalance, +}; +use near_sdk::AccountId; +use near_workspaces::{Account, Contract}; +use serde_json::json; + +pub const LOCKUP_CONTRACT: &str = "hodl_lockup"; + +pub struct LockupContract<'a> { + account: Option, + contract: &'a Contract, +} + +#[async_trait] +impl LockupApiIntegration for LockupContract<'_> { + async fn new( + &self, + token_account_id: AccountId, + deposit_whitelist: Vec, + draft_operators_whitelist: Option>, + ) -> Result<()> { + self.call_contract( + "new", + json!({ + "token_account_id": token_account_id, + "deposit_whitelist": deposit_whitelist, + "draft_operators_whitelist": draft_operators_whitelist + }), + ) + .await + } + + async fn claim(&mut self, amounts: Option)>>) -> Result { + self.call_contract( + "claim", + json!({ + "amounts": amounts + }), + ) + .await + } + + async fn terminate( + &mut self, + lockup_index: LockupIndex, + hashed_schedule: Option, + termination_timestamp: Option, + ) -> Result { + self.call_contract( + "terminate", + json!({ + "lockup_index": lockup_index, + "hashed_schedule": hashed_schedule, + "termination_timestamp": termination_timestamp + }), + ) + .await + } + + async fn add_to_deposit_whitelist( + &mut self, + account_id: Option, + account_ids: Option>, + ) -> Result<()> { + self.call_contract( + "add_to_deposit_whitelist", + json!({ + "account_id": account_id, + "account_ids": account_ids, + }), + ) + .await + } + + async fn remove_from_deposit_whitelist( + &mut self, + account_id: Option, + account_ids: Option>, + ) -> Result<()> { + self.call_contract( + "remove_from_deposit_whitelist", + json!({ + "account_id": account_id, + "account_ids": account_ids, + }), + ) + .await + } + + async fn add_to_draft_operators_whitelist(&mut self, account_ids: Vec) -> Result<()> { + self.call_contract( + "add_to_draft_operators_whitelist", + json!({ + "account_ids": account_ids + }), + ) + .await + } + + async fn remove_from_draft_operators_whitelist(&mut self, account_ids: Vec) -> Result<()> { + self.call_contract( + "remove_from_draft_operators_whitelist", + json!({ + "account_ids": account_ids + }), + ) + .await + } + + async fn create_draft_group(&mut self) -> Result { + self.call_contract("create_draft_group", ()).await + } + + async fn create_draft(&mut self, draft: Draft) -> Result { + self.call_contract( + "create_draft", + json!({ + "draft": draft + }), + ) + .await + } + + async fn create_drafts(&mut self, drafts: Vec) -> Result> { + self.call_contract( + "create_drafts", + json!({ + "drafts": drafts + }), + ) + .await + } + + async fn convert_draft(&mut self, draft_id: DraftIndex) -> Result { + self.call_contract( + "convert_draft", + json!({ + "draft_id": draft_id + }), + ) + .await + } + + async fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex) -> Result<()> { + self.call_contract( + "discard_draft_group", + json!({ + "draft_group_id": draft_group_id + }), + ) + .await + } + + async fn delete_drafts(&mut self, draft_ids: Vec) -> Result<()> { + self.call_contract( + "delete_drafts", + json!({ + "draft_ids": draft_ids + }), + ) + .await + } +} + +impl<'a> IntegrationContract<'a> for LockupContract<'a> { + fn with_contract(contract: &'a Contract) -> Self { + Self { + contract, + account: None, + } + } + + fn with_user(mut self, account: &Account) -> Self { + self.account = account.clone().into(); + self + } + + fn user_account(&self) -> Account { + self.account + .as_ref() + .expect("Set account with `user` method first") + .clone() + } + + fn contract(&self) -> &'a Contract { + self.contract + } +} diff --git a/model/Cargo.toml b/model/Cargo.toml new file mode 100644 index 0000000..93b6a45 --- /dev/null +++ b/model/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "model" +version = "1.0.0" +publish = false +edition = "2021" + +[lib] +name = "model" + +[dependencies] +uint = { workspace = true } +anyhow = { workspace = true } +async-trait = { workspace = true } + +near-sdk = { workspace = true } + +integration-trait = { workspace = true } diff --git a/model/src/draft.rs b/model/src/draft.rs new file mode 100644 index 0000000..6a83e79 --- /dev/null +++ b/model/src/draft.rs @@ -0,0 +1,122 @@ +use near_sdk::{ + borsh::{self, maybestd::collections::HashSet, BorshDeserialize, BorshSerialize}, + env, + serde::{Deserialize, Serialize}, + AccountId, Balance, +}; + +use crate::{ + lockup::{LockupCreate, LockupCreateView}, + util::u128_dec_format, +}; + +pub type DraftGroupIndex = u32; +pub type DraftIndex = u32; + +#[derive(BorshDeserialize, BorshSerialize, Deserialize, Serialize, Debug, PartialEq, Clone)] +#[serde(crate = "near_sdk::serde")] +pub struct Draft { + pub draft_group_id: DraftGroupIndex, + pub lockup_create: LockupCreate, +} + +impl Draft { + pub fn total_balance(&self) -> Balance { + self.lockup_create.schedule.total_balance() + } + + pub fn assert_new_valid(&self) { + let amount = self.lockup_create.schedule.total_balance(); + // any valid near account id will work fine here as a parameter + self.lockup_create + .into_lockup(&env::predecessor_account_id()) + .assert_new_valid(amount); + } +} + +#[derive(Default, BorshDeserialize, BorshSerialize)] +pub struct DraftGroup { + pub total_amount: Balance, + pub payer_id: Option, + pub draft_indices: HashSet, + pub discarded: bool, +} + +impl DraftGroup { + pub fn assert_can_add_draft(&self) { + assert!(!self.discarded, "cannot add draft, draft group is discarded"); + assert!(self.payer_id.is_none(), "cannot add draft, group already funded"); + } + + pub fn assert_can_convert_draft(&self) { + assert!(!self.discarded, "cannot convert draft, draft group is discarded"); + assert!(self.payer_id.is_some(), "cannot convert draft from not funded group"); + } + + pub fn assert_can_fund(&self) { + assert!(!self.discarded, "cannot fund draft, draft group is discarded"); + assert!(self.payer_id.is_none(), "draft group already funded"); + } + + pub fn fund(&mut self, payer_id: &AccountId) { + self.assert_can_fund(); + self.payer_id = Some(payer_id.clone()); + } + + pub fn assert_can_discard(&mut self) { + assert!(!self.discarded, "cannot discard, draft group already discarded"); + assert!(self.payer_id.is_none(), "cannot discard, draft group already funded"); + } + + pub fn discard(&mut self) { + self.assert_can_discard(); + self.discarded = true; + } + + pub fn assert_can_delete_draft(&mut self) { + assert!(self.discarded, "cannot delete draft, draft group is not discarded"); + assert!( + self.payer_id.is_none(), + "cannot delete draft, draft group already funded" + ); + } +} + +#[derive(Serialize, Debug, PartialEq, Deserialize)] +#[serde(crate = "near_sdk::serde")] +pub struct DraftGroupView { + #[serde(with = "u128_dec_format")] + pub total_amount: Balance, + pub payer_id: Option, + pub draft_indices: Vec, + pub discarded: bool, + pub funded: bool, +} + +impl From for DraftGroupView { + fn from(draft_group: DraftGroup) -> Self { + Self { + total_amount: draft_group.total_amount, + payer_id: draft_group.payer_id.clone(), + draft_indices: draft_group.draft_indices.into_iter().collect(), + discarded: draft_group.discarded, + funded: draft_group.payer_id.is_some(), + } + } +} + +#[derive(Serialize, Debug, PartialEq, Deserialize)] +#[serde(crate = "near_sdk::serde")] +pub struct DraftView { + pub draft_group_id: DraftGroupIndex, + pub lockup_create: LockupCreateView, +} + +impl From for DraftView { + fn from(draft: Draft) -> Self { + Self { + draft_group_id: draft.draft_group_id, + lockup_create: draft.lockup_create.into(), + } + } +} diff --git a/model/src/lib.rs b/model/src/lib.rs new file mode 100644 index 0000000..ce67aec --- /dev/null +++ b/model/src/lib.rs @@ -0,0 +1,22 @@ +use near_sdk::{json_types::U128, AccountId}; + +pub mod draft; +pub mod lockup; +pub mod lockup_api; +pub mod schedule; +pub mod termination; +pub mod util; +pub mod view_api; + +pub type WrappedBalance = U128; +pub type TimestampSec = u32; +pub type TokenAccountId = AccountId; + +pub mod u256 { + #![allow(clippy::doc_markdown)] + #![allow(clippy::assign_op_pattern)] + + uint::construct_uint! { + pub struct U256(4); + } +} diff --git a/model/src/lockup.rs b/model/src/lockup.rs new file mode 100644 index 0000000..3bf69d1 --- /dev/null +++ b/model/src/lockup.rs @@ -0,0 +1,208 @@ +use near_sdk::{ + borsh::{self, BorshDeserialize, BorshSerialize}, + serde::{Deserialize, Serialize}, + AccountId, Balance, +}; + +use crate::{ + schedule::Schedule, + termination::{TerminationConfig, VestingConditions}, + util::{current_timestamp_sec, u128_dec_format}, + TimestampSec, WrappedBalance, +}; + +pub type LockupIndex = u32; + +#[derive(Serialize, Deserialize, Debug, PartialEq)] +#[serde(crate = "near_sdk::serde")] +pub struct LockupClaim { + pub index: LockupIndex, + pub claim_amount: WrappedBalance, + pub is_final: bool, +} + +#[derive(BorshDeserialize, BorshSerialize, Deserialize, Debug, PartialEq, Clone)] +#[serde(crate = "near_sdk::serde")] +pub struct Lockup { + pub account_id: AccountId, + pub schedule: Schedule, + + #[serde(default)] + #[serde(with = "u128_dec_format")] + pub claimed_balance: Balance, + /// An optional configuration that allows vesting/lockup termination. + pub termination_config: Option, +} + +impl Lockup { + pub fn new_unlocked_since(account_id: AccountId, total_balance: Balance, timestamp: TimestampSec) -> Self { + Self { + account_id, + schedule: Schedule::new_unlocked_since(total_balance, timestamp), + claimed_balance: 0, + termination_config: None, + } + } + + pub fn new_unlocked(account_id: AccountId, total_balance: Balance) -> Self { + Self::new_unlocked_since(account_id, total_balance, 1) + } + + pub fn claim(&mut self, index: LockupIndex, claim_amount: Balance) -> LockupClaim { + let unlocked_balance = self.schedule.unlocked_balance(current_timestamp_sec()); + let balance_claimed_new = self + .claimed_balance + .checked_add(claim_amount) + .expect("attempt to add with overflow"); + assert!( + unlocked_balance >= balance_claimed_new, + "too big claim_amount for lockup {index}", + ); + + self.claimed_balance = balance_claimed_new; + LockupClaim { + index, + claim_amount: claim_amount.into(), + is_final: balance_claimed_new == self.schedule.total_balance(), + } + } + + pub fn assert_new_valid(&self, total_balance: Balance) { + assert_eq!( + self.claimed_balance, 0, + "The initial lockup claimed balance should be 0" + ); + self.schedule.assert_valid(total_balance); + + if let Some(termination_config) = &self.termination_config { + match &termination_config.vesting_schedule { + VestingConditions::SameAsLockupSchedule => { + // Ok, using lockup schedule. + } + VestingConditions::Hash(_hash) => { + // Ok, using unknown hash. Can't verify. + } + VestingConditions::Schedule(schedule) => { + schedule.assert_valid(total_balance); + self.schedule.assert_valid_termination_schedule(schedule); + } + } + } + } +} + +#[derive(BorshDeserialize, BorshSerialize, Deserialize, Serialize, Debug, PartialEq, Clone)] +#[serde(crate = "near_sdk::serde")] +pub struct LockupCreate { + pub account_id: AccountId, + pub schedule: Schedule, + pub vesting_schedule: Option, +} + +#[cfg(not(target_arch = "wasm32"))] +impl LockupCreate { + pub fn new_unlocked(account_id: AccountId, total_balance: Balance) -> Self { + Self { + account_id, + schedule: Schedule::new_unlocked(total_balance), + vesting_schedule: None, + } + } +} + +impl LockupCreate { + pub fn into_lockup(&self, payer_id: &AccountId) -> Lockup { + let vesting_schedule = self.vesting_schedule.clone(); + Lockup { + account_id: self.account_id.clone(), + schedule: self.schedule.clone(), + claimed_balance: 0, + termination_config: vesting_schedule.map(|vesting_schedule| TerminationConfig { + beneficiary_id: payer_id.clone(), + vesting_schedule, + }), + } + } +} + +#[derive(Serialize, Debug, PartialEq, Deserialize)] +#[serde(crate = "near_sdk::serde")] +pub struct LockupView { + pub account_id: AccountId, + pub schedule: Schedule, + + #[serde(default)] + #[serde(with = "u128_dec_format")] + pub claimed_balance: Balance, + /// An optional configuration that allows vesting/lockup termination. + pub termination_config: Option, + + #[serde(with = "u128_dec_format")] + pub total_balance: Balance, + #[serde(with = "u128_dec_format")] + pub unclaimed_balance: Balance, + /// The current timestamp + pub timestamp: TimestampSec, +} + +impl From for LockupView { + fn from(lockup: Lockup) -> Self { + let total_balance = lockup.schedule.total_balance(); + let timestamp = current_timestamp_sec(); + let unclaimed_balance = lockup.schedule.unlocked_balance(timestamp) - lockup.claimed_balance; + let Lockup { + account_id, + schedule, + claimed_balance, + termination_config, + } = lockup; + Self { + account_id, + schedule, + claimed_balance, + termination_config, + total_balance, + unclaimed_balance, + timestamp, + } + } +} + +#[derive(Serialize, Debug, PartialEq, Deserialize)] +#[serde(crate = "near_sdk::serde")] +pub struct LockupCreateView { + pub account_id: AccountId, + pub schedule: Schedule, + pub vesting_schedule: Option, + + #[serde(with = "u128_dec_format")] + pub claimed_balance: Balance, + #[serde(with = "u128_dec_format")] + pub total_balance: Balance, + #[serde(with = "u128_dec_format")] + pub unclaimed_balance: Balance, + /// The current timestamp + pub timestamp: TimestampSec, +} + +impl From for LockupCreateView { + fn from(lockup_create: LockupCreate) -> Self { + let total_balance = lockup_create.schedule.total_balance(); + let timestamp = current_timestamp_sec(); + let unclaimed_balance = lockup_create.schedule.unlocked_balance(timestamp); + let LockupCreate { + account_id, + schedule, + vesting_schedule, + } = lockup_create; + Self { + account_id, + schedule, + vesting_schedule, + claimed_balance: 0, + total_balance, + unclaimed_balance, + timestamp, + } + } +} diff --git a/model/src/lockup_api.rs b/model/src/lockup_api.rs new file mode 100644 index 0000000..899f991 --- /dev/null +++ b/model/src/lockup_api.rs @@ -0,0 +1,49 @@ +use integration_trait::make_integration_version; +use near_sdk::{AccountId, PromiseOrValue}; + +use crate::{ + draft::{Draft, DraftGroupIndex, DraftIndex}, + lockup::LockupIndex, + schedule::Schedule, + TimestampSec, WrappedBalance, +}; + +#[make_integration_version] +pub trait LockupApi { + fn new( + token_account_id: AccountId, + deposit_whitelist: Vec, + draft_operators_whitelist: Option>, + ) -> Self; + + fn claim(&mut self, amounts: Option)>>) -> PromiseOrValue; + + fn terminate( + &mut self, + lockup_index: LockupIndex, + hashed_schedule: Option, + termination_timestamp: Option, + ) -> PromiseOrValue; + + // preserving both options for API compatibility + fn add_to_deposit_whitelist(&mut self, account_id: Option, account_ids: Option>); + + // preserving both options for API compatibility + fn remove_from_deposit_whitelist(&mut self, account_id: Option, account_ids: Option>); + + fn add_to_draft_operators_whitelist(&mut self, account_ids: Vec); + + fn remove_from_draft_operators_whitelist(&mut self, account_ids: Vec); + + fn create_draft_group(&mut self) -> DraftGroupIndex; + + fn create_draft(&mut self, draft: Draft) -> DraftIndex; + + fn create_drafts(&mut self, drafts: Vec) -> Vec; + + fn convert_draft(&mut self, draft_id: DraftIndex) -> LockupIndex; + + fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex); + + fn delete_drafts(&mut self, draft_ids: Vec); +} diff --git a/model/src/schedule.rs b/model/src/schedule.rs new file mode 100644 index 0000000..9ed23b8 --- /dev/null +++ b/model/src/schedule.rs @@ -0,0 +1,185 @@ +use near_sdk::{ + borsh::{self, BorshDeserialize, BorshSerialize}, + env, + serde::{Deserialize, Serialize}, + Balance, CryptoHash, +}; + +use crate::{u256::U256, util::u128_dec_format, TimestampSec}; + +#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, PartialEq)] +#[serde(crate = "near_sdk::serde")] +pub struct Checkpoint { + /// The unix-timestamp in seconds since the epoch. + pub timestamp: TimestampSec, + #[serde(with = "u128_dec_format")] + pub balance: Balance, +} + +#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, PartialEq)] +#[serde(crate = "near_sdk::serde")] +pub struct Schedule(pub Vec); + +impl Schedule { + pub fn new_zero_balance_from_to(start_timestamp: TimestampSec, finish_timestamp: TimestampSec) -> Self { + assert!(finish_timestamp > start_timestamp, "Invariant"); + + Self(vec![ + Checkpoint { + timestamp: start_timestamp, + balance: 0, + }, + Checkpoint { + timestamp: finish_timestamp, + balance: 0, + }, + ]) + } + + pub fn new_unlocked_since(total_balance: Balance, timestamp: TimestampSec) -> Self { + assert!(timestamp > 0, "Invariant"); + Self(vec![ + Checkpoint { + timestamp: timestamp - 1, + balance: 0, + }, + Checkpoint { + timestamp, + balance: total_balance, + }, + ]) + } + + #[cfg(not(target_arch = "wasm32"))] + pub fn new_unlocked(total_balance: Balance) -> Self { + Self::new_unlocked_since(total_balance, 1) + } + + pub fn assert_valid(&self, total_balance: Balance) { + assert!(self.0.len() >= 2, "At least two checkpoints is required"); + assert_eq!( + self.0.first().unwrap().balance, + 0, + "The first checkpoint balance should be 0" + ); + for i in 1..self.0.len() { + assert!( + self.0[i - 1].timestamp < self.0[i].timestamp, + "The timestamp of checkpoint #{} should be less than the timestamp of the next checkpoint", + i - 1 + ); + assert!( + self.0[i - 1].balance <= self.0[i].balance, + "The balance of checkpoint #{} should be not greater than the balance of the next checkpoint", + i - 1 + ); + } + assert!(self.total_balance() > 0, "expected total balance to be positive",); + assert_eq!( + self.total_balance(), + total_balance, + "The schedule's total balance doesn't match the transferred balance" + ); + } + + /// Verifies that this schedule is ahead of the given termination schedule at any point of time. + /// Assumes they have equal total balance and both schedules are valid. + pub fn assert_valid_termination_schedule(&self, termination_schedule: &Schedule) { + for checkpoint in &self.0 { + assert!( + checkpoint.balance <= termination_schedule.unlocked_balance(checkpoint.timestamp), + "The lockup schedule is ahead of the termination schedule at timestamp {}", + checkpoint.timestamp + ); + } + for checkpoint in &termination_schedule.0 { + assert!( + checkpoint.balance >= self.unlocked_balance(checkpoint.timestamp), + "The lockup schedule is ahead of the termination schedule at timestamp {}", + checkpoint.timestamp + ); + } + } + + pub fn unlocked_balance(&self, current_timestamp: TimestampSec) -> Balance { + // Using binary search by time to find the current checkpoint. + let index = match self + .0 + .binary_search_by_key(¤t_timestamp, |checkpoint| checkpoint.timestamp) + { + // Exact timestamp found + Ok(index) => index, + // No match, the next index is given. + Err(index) => { + if index == 0 { + // Not started + return 0; + } + index - 1 + } + }; + let checkpoint = &self.0[index]; + if index + 1 == self.0.len() { + // The last checkpoint. Fully unlocked. + return checkpoint.balance; + } + let next_checkpoint = &self.0[index + 1]; + + let total_duration = next_checkpoint.timestamp - checkpoint.timestamp; + let passed_duration = current_timestamp - checkpoint.timestamp; + checkpoint.balance + + (U256::from(passed_duration) * U256::from(next_checkpoint.balance - checkpoint.balance) + / U256::from(total_duration)) + .as_u128() + } + + pub fn total_balance(&self) -> Balance { + self.0.last().unwrap().balance + } + + /// Terminates the lockup schedule earlier. + /// Assumes `new_total_balance` is not greater than the current total balance. + pub fn terminate(&mut self, new_total_balance: Balance, finish_timestamp: TimestampSec) { + if new_total_balance == 0 { + // finish_timestamp is a hint, only used for fully unvested schedules + // can be overwritten to preserve schedule invariants + // used to preserve part of the schedule before the termination happens + let start_timestamp = self.0[0].timestamp; + let finish_timestamp = if finish_timestamp > start_timestamp { + finish_timestamp + } else { + start_timestamp + 1 + }; + self.0 = Self::new_zero_balance_from_to(start_timestamp, finish_timestamp).0; + return; + } + assert!(new_total_balance <= self.0.last().unwrap().balance, "Invariant"); + while let Some(checkpoint) = self.0.pop() { + if self.0.last().unwrap().balance < new_total_balance { + let prev_checkpoint = self.0.last().unwrap().clone(); + let timestamp_diff = checkpoint.timestamp - prev_checkpoint.timestamp; + let balance_diff = checkpoint.balance - prev_checkpoint.balance; + let required_balance_diff = new_total_balance - prev_checkpoint.balance; + // Computing the new timestamp rounding up + let new_timestamp = prev_checkpoint.timestamp + + ((U256::from(timestamp_diff) * U256::from(required_balance_diff) + U256::from(balance_diff - 1)) + / U256::from(balance_diff)) + .as_u32(); + self.0.push(Checkpoint { + timestamp: new_timestamp, + balance: new_total_balance, + }); + return; + } + } + unreachable!(); + } + + pub fn hash(&self) -> CryptoHash { + let value_hash = env::sha256(&self.try_to_vec().unwrap()); + let mut res = CryptoHash::default(); + res.copy_from_slice(&value_hash); + + res + } +} diff --git a/model/src/termination.rs b/model/src/termination.rs new file mode 100644 index 0000000..a002a16 --- /dev/null +++ b/model/src/termination.rs @@ -0,0 +1,57 @@ +use near_sdk::{ + borsh::{self, BorshDeserialize, BorshSerialize}, + json_types::Base58CryptoHash, + serde::{Deserialize, Serialize}, + AccountId, Balance, CryptoHash, +}; + +use crate::{lockup::Lockup, schedule::Schedule, TimestampSec}; + +#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, PartialEq)] +#[serde(crate = "near_sdk::serde")] +pub enum VestingConditions { + SameAsLockupSchedule, + Hash(Base58CryptoHash), + Schedule(Schedule), +} + +#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Debug, PartialEq, Clone)] +#[serde(crate = "near_sdk::serde")] +pub struct TerminationConfig { + /// The account ID who paid for the lockup creation + /// and will receive unvested balance upon termination + pub beneficiary_id: AccountId, + /// An optional vesting schedule + pub vesting_schedule: VestingConditions, +} + +impl Lockup { + pub fn terminate( + &mut self, + hashed_schedule: Option, + termination_timestamp: TimestampSec, + ) -> (Balance, AccountId) { + let termination_config = self.termination_config.take().expect("No termination config"); + let total_balance = self.schedule.total_balance(); + let vested_balance = match &termination_config.vesting_schedule { + VestingConditions::SameAsLockupSchedule => &self.schedule, + VestingConditions::Hash(hash) => { + let schedule = hashed_schedule + .as_ref() + .expect("Revealed schedule required for the termination"); + let hash: CryptoHash = (*hash).into(); + assert_eq!(hash, schedule.hash(), "The revealed schedule hash doesn't match"); + schedule.assert_valid(total_balance); + self.schedule.assert_valid_termination_schedule(schedule); + schedule + } + VestingConditions::Schedule(schedule) => schedule, + } + .unlocked_balance(termination_timestamp); + let unvested_balance = total_balance - vested_balance; + if unvested_balance > 0 { + self.schedule.terminate(vested_balance, termination_timestamp); + } + (unvested_balance, termination_config.beneficiary_id) + } +} diff --git a/model/src/util.rs b/model/src/util.rs new file mode 100644 index 0000000..51e4e9a --- /dev/null +++ b/model/src/util.rs @@ -0,0 +1,29 @@ +use near_sdk::{env, Timestamp}; + +use crate::TimestampSec; + +pub fn nano_to_sec(timestamp: Timestamp) -> TimestampSec { + (timestamp / 10u64.pow(9)).try_into().unwrap() +} + +pub fn current_timestamp_sec() -> TimestampSec { + nano_to_sec(env::block_timestamp()) +} + +pub mod u128_dec_format { + use near_sdk::serde::{de, Deserialize, Deserializer, Serializer}; + + pub fn serialize(num: &u128, serializer: S) -> Result + where + S: Serializer, + { + serializer.serialize_str(&num.to_string()) + } + + pub fn deserialize<'de, D>(deserializer: D) -> Result + where + D: Deserializer<'de>, + { + String::deserialize(deserializer)?.parse().map_err(de::Error::custom) + } +} diff --git a/model/src/view_api.rs b/model/src/view_api.rs new file mode 100644 index 0000000..a9b9152 --- /dev/null +++ b/model/src/view_api.rs @@ -0,0 +1,61 @@ +use integration_trait::make_integration_version; +use near_sdk::{json_types::Base58CryptoHash, AccountId}; + +use crate::{ + draft::{DraftGroupIndex, DraftGroupView, DraftIndex, DraftView}, + lockup::{LockupIndex, LockupView}, + schedule::Schedule, + WrappedBalance, +}; + +#[make_integration_version] +pub trait LockupViewApi { + fn get_token_account_id(&self) -> AccountId; + + fn get_account_lockups(&self, account_id: AccountId) -> Vec<(LockupIndex, LockupView)>; + + fn get_lockup(&self, index: LockupIndex) -> Option; + fn get_lockups(&self, indices: Vec) -> Vec<(LockupIndex, LockupView)>; + + fn get_num_lockups(&self) -> u32; + + fn get_lockups_paged( + &self, + from_index: Option, + limit: Option, + ) -> Vec<(LockupIndex, LockupView)>; + + fn get_deposit_whitelist(&self) -> Vec; + + fn get_draft_operators_whitelist(&self) -> Vec; + + fn hash_schedule(&self, schedule: Schedule) -> Base58CryptoHash; + + fn validate_schedule( + &self, + schedule: Schedule, + total_balance: WrappedBalance, + termination_schedule: Option, + ); + + fn get_next_draft_group_id(&self) -> DraftGroupIndex; + + fn get_next_draft_id(&self) -> DraftGroupIndex; + + fn get_num_draft_groups(&self) -> u32; + + fn get_draft_group(&self, index: DraftGroupIndex) -> Option; + + fn get_draft_groups_paged( + &self, + // not the draft_id, but internal index used inside the LookupMap struct + from_index: Option, + to_index: Option, + ) -> Vec<(DraftGroupIndex, DraftGroupView)>; + + fn get_draft(&self, index: DraftIndex) -> Option; + + fn get_drafts(&self, indices: Vec) -> Vec<(DraftIndex, DraftView)>; + + fn get_version(&self) -> String; +} diff --git a/res/.gitkeep b/res/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/res/ft_lockup.wasm b/res/ft_lockup.wasm deleted file mode 100755 index 87c113c027fb3e6419a0b06139d2bce175dffa1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 348641 zcmeFad$?UydH*}doNKPN_MUt1%wTMzxpc0T)F#J(u|>i`PMf(OZ`8KZ{%jwg-{bRy z6r!*b0=a@}8nmFHMny#p6crT}6cH6QD&A3P#cCDhe7^4(bFR5| zb}n3g{>~qV%U)}ZIWF&b@8ccs7&BVC<#ZQCk^6G;mnS9Lwrz9UPKxcX+ZIu9?z!&V zlUjV#pApZ`jZW&SO#k>=(MhQlL??|_5A?`wqj}qx@Qs%Cm#$-bte=j05ub^57SXl! z%O46ys_)j&id2s$o$w?&sikjGqbk7ILv_lO42*5+U(irO<@j8R+k8D&&s)^uBh?3= z9er4zEgpN6oC{*8uYUxt?@n{)xiF;9ZH6hH3xiguQFvzHc`VQ^j~YngSLm1a9s=v# z`WsQd0hYu-O}3rm2Rg?Os0rA>)bcaXm^K3%M)B)LRwnBL)3$6~ zw>g@lva#ytnhonVM!AZPIQgv2o7ZjJx@PUkC!cW^pQoJ?&DDdsTTXla#&w$yS$^hv zU;mHJ+`R6TbtkXevgM5Z8>OdhJoBurzGC*z8_qa+{hHG@p0e(R(GePIjxX7I+Ue`I zY+ZZ$nZ9&v-I-^ceCnE0*PZtKQ@8q}@hw}=*u3`n>(-pLg}jIM6TTWg3=TAB&dX%OyvVPskC$C*U^Y@dU_~-ul*x740oV5;;Y&~o9Mo*CR z%(WX&J2{%C=A-s~%~@NYcdUQd-EhY98$U~%3Wh^_dvwI`BkN_p+AJAiIZxR12UEEvb_?&Q{ zZMho!9}|zCm{`IDVkRH0m{>H=BWPmc$R&EtfJ{!`j$)#Vor{=l7J>dqrHdCw^tAs! zS+gjnX(UoG_Cz*u)KU4wV!R0Z!l?AD>eXZM0pQ^3O5ep@`eYDs zEZ^qEzIz^kT!^9mC{l3@MVJ)dmM;6hmMmT5GM8mXEy^;+=f9;(7|CkW)jSv?v-TQP z>{k7=c=4h*S{&npMkB3`JJVesUmvH5i{`c;lWcS4^z_~++ZL6#-h0E~v$MVZxc2Gm zPCsMwzr@kpwa>$+S@XQDYibj4c{<-0%HW@M<{F-#e%i*hvQp7I(+R3#uIk$FPUk&; z9j(t;ziwk?z2y1qNgt*1rt@&tnOmawr=u$NT}K~Cv%#+|(FfBx`nmC}(?f+V(RJzE zMvXOR;;ft!eJFjj3WLkB<^`vsgg4-vMITNV*@MkYV9gn4uG=hyx}{O!Bk4G5_tZ68 zrhja3ta~AYSYOZIds}C@-%d~7u=cdm zqwVdHibm_A3)}N$hqs<-s2U#-g)eXa=};#JtoVxd z5#AqaA|-ldd#qU+?QD-Xe{YFiMZp;xnQOp(^y>D+P{EeylJ=ucIc>|yYd7O|4#*Q- z+8z%kKj7^(?a?)BFsf_UtlM}>;<7ckz-!OMgWa+&iAR3ha#88BkHp8nH`$%MKK;16 zt9@JhH}R+4eU*7(&_I>RiwQukISLc1n2a_*%-jjaP{W$r3>!S3f=^NVDq&wO# zZNItwnf8a;Uu@se{$~3d?YDM*(D`xaC!Jrm@98|?{?%O>zr6G2_+#$k_|DE-;$L=t z z{NL>l$M5dEBmPR~o$(!=U%PAFj`&^fhwcOJckX)kviQU9r|vR09be^s;oj-K?cU_> zb8mCMb#HasquW{dV*SY_6?{mB3ThrUpFQ#8g zZ%@CR-jRMKy)*r4`nB}y>0RkJ(r>2UO82GTPQR0WH@!RkUi$s?2k8&fAEiG|f0Evl z{xtnr`t$VO^gq)7On;Hym;N&Suk=^xuhaidf0O<;y+8e3`up^Obh`b;)@`k~wcp;p zvi*+szqa4qzNY=&_U`tz?SE@u(tTh1((Y@zA8o(CeSQ17_9xq)YTw-cbo<8kE$z>> zzt!H?{&xF2?eDhlZvUixPy46sU$=kXzPR(M&Z|3@bS~|@rt{j)hua@(zoGMr?i)K_ zYhT{^di!mi8`^L0>}tQGb4}+xo!y;lJMZs&u=A15$2$Ms`DEu)otrzK?tHHE`OX(Q zw{||$`C{iwoqe6}biUiUyYs!yPdh*B{JirYo%=ek?C$Kos{88hYrAjkUfz8}_f6d^ zyYJ|}v-`I0+q+kF-`)M!?yl~8yVrJici+>!raStIOCI&g?$J>ZEsLXmRNi>q-sz}J z^J}N4r+p#i`M=e_3RlGW`}8w=aulyFq9dbL>7F)T*DXJL*$wpI^8c_(MO4PeMJ?;T z(e?=Hm!BD``MK1MZ(BkmTIcKg$x{1j4a>K_&iDC>mk26AnCi8PxZJj-mlm$vHq~pF zQLj_DUYF02WOdOhy6bzR{K(?f2mhDKqeb?#aaVMTY^pz2x~cwnF?PauTy!bujTIS1 zy{s5JGK%^W<@9F(WlG=2o;n_7zSSr&^yd^Ke>`iv1;8UyE260U z__n_ukH=aDldlqiLK;N+^(-0;YW~f5oK;vGnJVaVeQwkDr87{Hl=+lL*qn?`41n@( zVJ*M)0&o^(<@9TX!-eIQR(jKmt(4)@qBF%r1;iW=MBA5mh-bjj0S;<2-wK+s^3~g> zCb}IQgl;_2a@F`kC)LV5O(+;|tb8-|(-yu%3jW5*KFBZksTL$0EANV)Hr~z3Ti+#c zmz6g)!7ab(tBtj@A}R0s@eMCdj)_K#q?jn@Y%1^l3{6Cumw0<@Afs+y25$eRoV8X;`bhZK`maDDVw(sBlc2Tie2&TDr5#g`3uA zS0um^s}v)I@Sjd)ruUz`sWcdKIS&uSO(^5oQ2Nf&&n zW&R-puqAOz82FqiKzq7GQcuCzd=>CtkzA91IKUy0ZPpDLwEmC|lLI zcSiY#F9i6<3ZsTg|BO0!RgW~(UN;cDxLi0@TIG1st%}EZe6z+8?cx%N)7K4P(Pn&1 zJm0?F9YLN`DWmIK4Xlrrd&^xPygQT@zNP39O@90C*Zks+d%k-8J>j9cT?sm)$zOiv zbLW5M>aTzB7kZM5^7&5b3_f3_&z=U@8->XiQFgxP?Fw0A;L@|8*jOwhmW_A8ERQ+6 zpB@)2bR!}$(u7ipqY-=j;vMbUOZtrf`(nslUfy58|?zb

w-ev;OmoY*Gx~l^JuG4B!+~r;O&dR-MCS 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

u^CO z3;G3<{2h?2?N8M#^@6L#G@LeMXLzP_Thv{iA4vOBudU*OZIC}P5V(&AaJPsrP_0W; zOO;Ehh?>(P(}NxVdeG^U49)P_4fyPewn5TnHPEf&lcAtb!j8r|B2(q8B*^TOLzPp% zC;TYZ2|H&PLfK8f2)B}N%&s?V5cjE7J{;FRuv_bQ;4kSE^;aTVdKQF5GpJbo!2t=Zxy!@WL6}0Bp-s6URhnE z3AH*dHWDhqYNLroMVtSiaN*eq4QzjnV`E{L3ATJH!ZiLv)Vx3oX?AiZ(E^R04RH{5 zM;LK1&glm_x&S-2MXVfM78YCzb7aD3AUBCnjPa`DZ^K!3V>xi6zVS{Zg&l#LSYO1h z9DzH!AshYL5HSufqP(*U3_F=UfW~eK2@Q_9879H!hT2Pd#4Z@F_>mTDd(ow|50ZAK z2UBnwGD>7`7ZVA)={&=pfYW2fVjKL;_Fh}T8|*_y1uo>%3wF*ddV=A&zt;wVYy)oV zFtUxEl;l7^^NIoWV{*S24Dv8Oben)N{D_Tur-Baw=cH$XTPJzvB$ULpK{^x zfY~H=Ev=<^bL-c>VeLUUGL6QT%En?RtHuP5SmTVz2?gSCk5<$uNj@J)IXt_B zh=K<+3>83=yjvoL-)JC~Jo{v!p8T46qEH{5&}{TvBEsue9kEAcXV69i)@}ukI?|tF z)g<=fO@u@U$+`3(&tEAY$s`(Q;s^ zh9KL;)Oc!wYC9%PmKjZECYnCQQ7H6G#u0yvxC{ilTJ9LiSriB5IfOPtn~$PGo)TO- zn?B0Y>=)E$FNV0U9mzg~xS-o%+J-JN9z$j=*tFA>5jx1w5yZ;y7xJo@1W78Y)tLD3 z%NWG=mpsH{FharlV3}Gq5yC5~z-a_oUq}8g~LIjFp1|65~2B;6nZtcrP@%p@X8b^`GZTmA%O=8jx zL+ql-fPcd)A;XiCxP==X8uAGl!wER+7-Rv1pX|T^NR;E6sjF#)@<;1DP9417?29f% zDHI<3rI-VbH2aNTIBNXQT4*5Gh+T64a^&|D9T_GoZbg1Gq<4S^u!J-H}*ad z?h&903hfcR4KYvkEKC7RGa;0slwFhV6aVt{?$*{m=a}ix`pKR+SO=7G^11WllMd-l zfDl&cdeG8mSr{~B5OzJ==!K7b*E2{u+m`Jibgi`+L^8*{PLN~wH6TZLRgjC{O!P2m zo3>SDR^J(gtTzSBbKyWHqX%O79}y8sac>~_nTacliyYN(cRt6|lv4=qB>Jq)hA%qJ z#{>^)heg^W$P&huEYONAZ&C#cZ1#v$z24m00=lk}Ye=4iJ%= z&)9qz(*QfWzj?bI_N`+IHybrW_FKyY&Y)n9dij~^WwYLz6Amk<-$G+-R259EYJ4FBHx)l+Uaf9?~zXLY8vMXF>RV7^d!I9dvbNL?MHfZ z^edx(SRNVC30K84y^UUyTytCPec&)Y1;P_zDhb63vYi8_Ja;-dOr(WLid%w!ZA9$G z9x;=iti%>!D*iL?QT8?&FxNBwYO^!Bfk#oSYCl-W9FR7$Yb>f?q!^S0Z4p)?=$lfiF#hHR2rz4lhl3P zeuYu>Ltl(w#kKt@PXhwML}VcbrylEX%6?fYlBbNOzbj4(x!JGya}8Y|i~Jrj_A9)c zw}T&Q!#(hP`_9MiVVBPIE5!3~xkwArgbwnJxAHZ=C|L1S5L&dn$t%iEnM_Va(VP{d z&n9w6+b4mdkDm_22y}j}H9D;R6%3R*^Pu(MxaeIj_azZauXw8dlsZb9 zGdti}>5eZn!XFSs0--cU=pcTx5girK|1F>wfcZwl{@z~@ID3K*XW+96i3=AW*#`ql zphr&|dc3z$tMT}!0#cT{`*%=1;QUg;K0kA7Ju26BuO-=*?$g@D!&-1a$7CPT8=s3J zru0+`w#6H6@f);1x2*b>Z;pMKGPn2xy*X-c(gJF^#c%kWORFp0=jJpz4_&<(2*JIs z@rX#n@jRSlOUCe{0;M&}|35FlZ?aA(Gg0FGfr1Wxd{vEWqR3Cn`xDlk#D)k^)QLHW zRlB;u4|7QERhEBQ0$R;*8S0WCwJO8XfF0pSJ<>ry_db@#2B5Qdt(oZ|3dD*9IDea&= zQaa8+Wb5zXg=Mf4R&Yjl&`XTyVE#>a(5t>|2hWf0;OV3j9ms(sS+@$~h=_4>4o9hZ zS1lyg?3OURZpaCvonoc78VUlm=YgO4YUrw!sI7*I)*cJ1q5C2dI=0~DqihQU$VY^G z7VIV`Q$WKt0-^gf25&ywz!}sqY^>jmV6jW+Qh=w$-~)}3lUZSaSET7BMvUB!2=rLe zgp9-bZN*r#{|77Ca@=1c1O#E;3f|N-cvDmJt;stl0g&TLO6~0Wq`1n>h9o#rZ3}ti z-n>2g=5BpGQd!|!jvqCne{oH_xg=@pBS~>e3#@^lk%U{N-K17iI97ZJ$65(Ti=OB) z{CYIm{1#(afK80c!(f_HWchYJ`2nWGBb&F$k}>E~ZB%Gii|hPM)tX@joFhvkn zlFgXsgO>2s0D%l9uh@`y?>Xj#C9edD3|^^Say^$^Y$=wh95-d9_D99TACUyyQ=HUq zSa)whb)q8`;}2LrloeZTFG_k=h3KrKhmoujs>=h@&_q6N65x{HmFMc0|i&?_PzheAz5vElG~AbM3~uSw~QQ4^OGIv2Zp9f~{h1b>@rW zDn7Qmp|vwW=J^0)Dy*GRIilxcQm&polh~@bKYu3aCu3I6dL-f7G&;Jn9r^5EIK)S3|u) z4`_NHC{3I-(OlmuY5L~$nMCVbGxJGL(@R+!{LJW5gT_))Sl?Q>{QA~M7hu|AqOrck z>~%)#TeFw0Zz=uBrR!T``iJLX#%!U4w7w42qAXAdzFKngHK#;rfMdtS%H;x=x_mn! zq)beC{6JXX;#x{v`OiuX-Zg*rVp!mscK@HZ6*?K)vgvun&ZorAQDkT_ZBo7oTxeqB z-Uh0ecHh1L^YtnP4@3S&)B4i-Tz_t9g~@coy5jG?ugoscWudksdN5EP9hG24)ZUczJ{u2wr@CGYz3R#&Qn z^3n*tz$N(wnFAX7SUHC4|)F#_?I3PB`bH!a%$pT zBDagbyCtI$ADPZ2ES-rwLXGRF==vk5GNk$PsgClHVO7c_NbmEma!g|bmP=tQKTd^F zxA$nOiONefgvW>#TjtWnS+JoXs1hr_m=v*MvD+@|!HVLUaM9YRUjbHFa;mUmi-BEp z8#+d6xgZQlU_{p15Jpl)B|h@BH$>~BxLJJd%VYEO$qZgc@BB!lfBPHVS z6{ir9aLC-6yfKI)7=<328D`_ycx=-H9@l_|hVon6hol$fd@-`UU=@Q`R#xq@tVD0v z<{?Gv%{1OH78)VFX|`|(0dYYesSmzDWxEtQ!BXH2%DP;cf^LzH)ykBpf7HrUNdbvX z1mk?CJ-{W%&|11l2njCfm?%&i(FS%YCS#;zmmq7*jL52zl3sEBsx+*_`jt9FUz^QK z9LiqRKVQf~HJq0NwD`B~HP8M@UPQBj9a)YVYN`Ws3bH;FY#ItsGJDGc-*L@2@K<;l ze2{vxe=x5k^pY|wobvd(exj|&+oV0op%1U(nF#I^Nrascl_D&)tl?vp@1K|J5OPox zCmF@I!VnYaD{|P1wJR#9KvkV`pz2rP%FKLRzlQi*+eg#|L!5eWzdWox(KFD8hR>9F zc5Uu^8p1Q1Uj$h8G#f~p6?(DU37|OtE2`f^ z>;8u(ACJl0vX3yimq_O>Ls*P9i3i*S_9P=Jx%e9{`4jRu&6 z%j_>kXEN{q%l?gImgWI^e|M`@oF%q_A==$a$RZam)8bF#WxM$Ec-bkQj+foyPvYf7 z@fY!OvZ`UK_?!52y7;?zIfK_DG%;J%FjssfKHVU29-E(jQ2r1>rxqco2%TM~#XrWU zZL7tec8V{>r(J8@o=y~h9iL7Xe;+TWiZ92@X@i;huSICl&)#g zRVVj$`7K?Ft5c;bZESQck}QO}I;E`luh>_T!3={q)hE!Voa&#NH2!5(B}T@c`Bl+u z85w(Ovd4h#OwUZ3q&wE#@8XB)Cp5X*t!DcxTuUY$)h|4Iq?_)eX(r!eX8R)pWDiMR z@C|2q))?oe9J^dC;KpDfal=MOUlvYGzUD$oXI_BdG&Ocf3<3YTVi zNJpp7a9eA|X8N&>+c(S#-vp$jn%o0bF{);=4{<_7FsHdZ;+F`UTE*t77^>JH?ow|$ zzTS(IrbrRFcw8#wBB(A(oy)icNxY&vB)3NLg&5r0@VIZGK0u{!Va(uIsBCR;;((}o za461sxk3sRU`LK^+43sK6{Eu%( zM9)r{TC2*U;w^gCrW55UBk;TQ;VOSp^L<#ot`M;XU9N#c`w75kDkTLF!n1S zq{vtDHa}5OIeo*@en1A3&=E<}#Q4pykknoWm1hw_?q$$^lC~FJ4qk>w~qz-*p?^#5+3w4?U3@LCp%Op8uj>VDt|9d|#lQo`A>+**9? zn4aTOAjtqx)B@u*|8dQ+u7N7|*h3Lj`;@EV(#Y5UGi+tUM`0lw2ggDZpMq4lVMm!ca zYLP-B%(B2FqN5|jd!V_e&;V}TJa)z~LW}+lQBLXWjs6YfG5(E7NsoNe{Tq|6?oFY) ze?!BD{)qk!m+bwS=-*i7RhZO2!6oLqbQ!uww6nzgO1H;!8_-u`4bAtk6adzQxJS`d zCv41YZaZlraJ98RpDALh83Lt+mK*|*m^)E=FbD;l$(~?JWOSKh&0HpmHz1G-DvYUG zaJU;=p@9FZ-fTUpG0@W1$ReG z)+@>7KBXK^UfOT^JN9Vf1n-1cTRfDi9QRLh;Ye41Wv>$uE1Z$*mBw7pA;Cjk!OJ2Z z*7RTL=xjdi5Cdg4@JK6d4e3#jJk2&sSOjM=Q<_f{mT7FBnX2aWOI(Y!59k-VUgTFO z;V&O%f8g3))k!;;@NveRGvoD~*_QrE&6%emL*WDLxvo0TO1Y$0f4X?}{*7rXQQ}pe zG7Idgv)a_5j>2YY>3p}JWIw5vb@$Aq>_O=hsn-oT8#v&o;>?q)gQlfEWh(RdY$&B6qN{%Bilwc zF5zA_erx);ng+2ep=lb<T&;z2Wf2AnOO;`HF!AQfv1hc_vC% zy|*Mc-bSdRY*y1Y(enzi)S{AtjSo0`(@|I!+J zdIU6x*~TLT$BZrCxSU@yUZxLLKNzkv{0b;I#Ve8Z3J2H7f`Aj#rv*9WbwLx(1yJ7* z6KK`+8I{28zNm`dqQNP){kYsmt>VpgH}&J+Yj=-ww^0C^UVfN6>w(=NE**HgJHQ=q zoSO8atfLM@YH0Ll1foLRG`mV6Uolkn84-1iQ@Mb6e?+*;6A0Q@(rkXu3ua)^`FA~* zDW8kG=Y)wKA+F-f-bQH@-XLyQ)FpmbC&_xZspyisv&$2qqt`aRxIwJA^a5BKD|!ZYOUxKlzCHSKGpfqRg!}eG;F` ztM^^4Bs;2d#M2G#y&qlGw&{e)3_{$d#=K>BS6rxA{3(HcT(brUJ5&Rj=mf$O)7Zn{ zm?KMqfjwqM|I}tLVLpqFuMozk+Ev&ELoHB5DCpm6ystNF%jO%5m=tBmc<=Cdl)w0QRtMnA7b8OPrSZhs|V%VF6 zx{Fns{9>37thMn%F%j_gcmlxsQ}Po%SE z$Vw!%i!%(Le1S9)XojLXMkF^dY?kSYFkv>cc=Inrsa}OQ+v3|}R>ML=1i{+~$f-Ha zW1~u}WS_W6mb5w=H>mnt#F!w8H0pNT)n(hNS8O^##$o-;C_d!L9O+Ty*Y+uc1Vueo z?TDN@a^_GwSzv1pokqBtL}iRuGjSQJ)VfBDSUZAbQOKI68^z+Mppr1J7YO_sYA zi&cAaw)W(NJvm=JK`f`Ig--gqGnKPeLNsWWu39(ph}bt3Y--5isSC`Hrbwm_s9U7AcE-XjMb0vt$a22c(y>E7D67(n~=j z@8J2sJ5`ubv;z4l{Qfw)Qo(+Eu4&F ze8pro%II^}aFo%35smF=C6bQ~xmY^qIiT zhuwl^s+t;ec$l(G;NC$0b3TC&IM&QyLh9XWOR_ghI_ubB#Ya<*ZEu@!4QNirSx#`# zl;%e{V?j9Qyp4svoP#0MdLrm!a}sx?B0Zd}Xk(IK(U0wxNY@0iD5fEk&5drdj55K@ znj$&5j0?j(W@ycZ>IWN1JRqZp-)Te-zz&&5QWV zu|K6j6U?I{!PXfzkK*$Y=Fx}8m`Cw>G>;CCFppAAsmweY{dOJZ5qitbBkgC%wef1$ zJeuiM&i-H=u}s=h&cV_)!c*sliXyJy)N&Oz+9*0+-VLejr^F=Kd2$!S6>KQwYk>DB)gRCH1euwnZ7CmB&7N>5Z>wbkHn=ulhGk#g=+-8 z3$Y+Z1w=jTm!Tv3e`1k85`Xompb&y!zx za?mRNC*Dy-@cbP!8>{mC2}TT>?(UXk95V26cR_(LzWXF^Z;j_an|leV;|kA(oXdJs zl+yU;y51OnkC^aFvyZuvE?5H~YX-t!IjC4Yn18sQIuBT^5@nVRBn+4bwBpW~?QWg# z2roO+wGO*Gqq9pMwENV1o~(5+7s3LLZ7TCV)3d2yD>0J0AWolwgAbx$soGHZcmPp| z{7U zL#C}66t+Vh1tQ6&$Mqe2+IfIAaH_V)jS96>ik~U8GMr7P*%D+Wd}D^5=rJ2KUKDo( zb-;jJt-d1&xiuehA({qjG)a4dN1&!^3zCruAJ^JjvJ#iH_mbEi+oi^|C*oiIjjt|z zAhlD!?qs%wHNdXk`TN#>{;|(J-sT7)cK4F3S%WQVHb>ldG5La1sEqbif9w_dgCNgT z?ceG-6ej9Jjt25Exu%ehbRW-;Q2TG5Sf!jM?=+e{BpU6Too#~K3{6$%o-|po?wH<9 zjoH^jXWVe6*buB2u=pQNr8oFajBCiygxRtChi_Edw-yV6Aq!iC12M1AXkq#I1u5Yc(}?(q9LfxQ;t+cvqSCO8bD$>)zwz3md*rbbWXvFXju&Jb-*U`MSpaKuRc5X-~cyImC*Nh zm62ig=u|QpcZZW#pXdY@JyK$X&YM z+V2Vr-Q4mbG47n}Atz|3!~%)1IImU%I1Lu~4=hZN!~!(Q-u@9or{fx`{+9!`6LYjS zZr*tiuCeY0jcg4~g`tbYbyvZWP(E}%U^;b+0ize{381oJD(62y?OYkC@YZ@jozM!4 zjSY-d8ynJ$HO3~8m*}7|Fkx8ixR)08kr)w)5E(GH#7wfe#OL}t<|84G%)yd0(nu!1 zn6%VQ|7SvbV;kQU!>LU+Zv6wwqo09dFhxHh_3W=cZkH^_Y9;Sy7kJ)pG3~X_F6frntA8nWZPdGJZ#$#vO;qpORd20MMLN-|)+~BN(xPpr@row1KYJrZ^-hoP3i;Cotgd^zMef%fgoA6Vs@3e|G@bZQ@jY{~;8hO9H(;RE( z{_LHG8hic`dycXyc9qYiBGTQhIiFmCHX2N6Fm`?R3ygEr6PLk>X5FST2+jIMAw(`` z5>RCC4(&hqOM1GY>UpbNbt84l-)j$M;KCxYo;h+dymT zv_=mXto-J2l}jx(>R&S}K|_1K!fkU5^F#yMDF;-+Le+q_XFpLRavizd@}VBP%j8V8 zNseZ97emrkE&T#6v2y0jTgvdf+|IUQWq4jZF6s;0*{lqEMQZK@KDs46i5*k;Cnu@I zNS-I2kC9UY8AcOhn)j{}_wrQ2TOOU!uY;qe;>_f%HCfI~R;hhwdZJzK-x8qZOsBdo zXCkNK0W`B0x3rbRV=8jOVDi}!$BF9Yj+ztZC)641aYv2AR_>@d(dp3#rjG8YB=#;& z(X^vRJKW~se@)@faV-^iR==>^S|XZ;AzFo69JM9Emv3_1QR)4)92$ye;1m9$&QD9c z)E0WY(ouh@XMAoAukQ@OiU;1U@s9g#JgGW+KXp!^1rQU%$J{_p_lxuZDI++w+*cYmt^ocxlCZX6*t=mFYrehF-Vdhlc~5C*=duqj=1z$;B4-+v8Z9o zvb-DMN{}0SPz>mD56Vb@ZT_k;2>_d84DsvT0C0(7sMn^SNE#NVrIF8*dXlJO-wD&U zu~jd|j;=aHfyU?(j5PuzFIkPLkED+W*7FM#f;dTrbEOlur0kg6!Cu5=E8Z-7^DGdt zZfEe^K}|+3pxq+5SWO-YSPTd{!eXsC-gn`G?qR({l5?{|!6b=iW5(w(vMv@hSl|_I zaYSkn*8e$)(c4-k_k>bpavxcZ!CQ7%)#16(2c~y;ferb9X*Z`ZVT~&yBCvW(h<#@X zvpsW-9>M=n?ojAz)e)UAru|f-N?k{6|3nO@@fAE}a)^+q&T{XEQM&w}me0z5k95OQ zuv}&3b`ZHF=m<7!B~?A&`VkSIEwBkV+mz+wzmrBJZ;OuiaJS$B+~m~jkmBCtKY zLUy%@K)TZR`ZCkmmbWDA=J-MOF~zXi9n%g`rSXnSa>KJ?ud2|0QNp&E#`|)K3Y52_ z1{pQWyIDe3#qwVcGT^f4d(ohll^q}twlAU30F8wD@)7sBs82}pXnV`BhyikIBjc(S z@KAc9ne_!3ryV(J73oqgsDa6~`fhxx4hw3oovH;jeHAq&x~#kwFmVTcWQ%AY2rwyh zjoXPJJgnRNL6>I_m|5Jq8BNyXHS1u`BgbSiCEG3@Ejvu8A6VczMUZfvGsUgW{`IdK`Xg%ml#I~%&{ z9X+#%rec{BA1CQ4xALVx0S=I%XF}&fIDM>IE3JI`7Ldv_G* ziZ0*p^kuZ;2pVI1K~2zrQ4_gs6;C7EM3>lJX1JRG5NAIX`4nqQ%wPtXcmV;6mKb_8_!SLD z&FC^IWP=nWQQgFvv>=no9y%rP`S{@s!8z+PwR~$yX?*yeUO#!L^u%-)RVHEV{=ayfAI&a12So39+ETdp&0q}VeAHrs2gW!kszov zv`)tUB44z_CUrB*5C4I^#+q5SwpkyrXEC$PuWZ(hcXOQiB-^UA#$pdEYfL7eXtg}d z1)orAlLII=#3+=AiAI-sWAxP@io!$em25kF$HZMBUq!@Xi&@cqGm~)w ztJ7xgNNZs>l44TYs*SQTVkC1B%!P)VVyM_{q#Remx2oqkiR)jCCwanxNAP|=CFuxG z%4nXUOib8v%%6K?iUCALE@GTqi9N>*)glTn>6Pi*Mz73N8qq7|VygAX40TcKCEZHs zmWZb8)>y*`s2DimKGz4rY27-q2f-RL^|#)R zP(jUsQ9PdR-`xVajH1yMi-T?PzVx##G?~u)vMDf%xnIw#6%>D^7xctGu?djOrYEF| zMQ;WrmwY?S{CZ;pK0aNp=`&l~C&$6_ROsN7U>UtmsBA$%(v$Qov z>ZQ%cu2|O#6Gl_tYHd$L&#vz^m`^nH{kPE1vKVx|WfnDRTVy71R+7-j7Oeiu@w3<@ zz(&d^0-C&A2fpoRfr7OsxAe0d;FKR^h51}T;rpRvBE@+&`!>O37S+Yx@2#ZL6Ih%Y`BCN*43G>`DJEOrp+ z&xxN!?fC&3su3kpnI7K)KZ~`bhHUfMzZO4B6Y8<%#CS_W?u@6=kkY5N>t1@N;b&3c zln(&(lT#zy1Q0f zl#N^ZjK6B{A7zKQG%v_Sfk_ipzUa90$4GwocQ_iNL&CTYP(u8=Y!l^6lpDsfzv4Bs zM%)gyb)1+L)}L4V&VpS-b_1K75x;6q4k6ee6n&pH{|d@HfG+?`V8jCQxAaZfpS86< zhc9@MY;pi-iTQvo?F%oows5W;PR0?7eI~H9!1!pmmIgLmh;-n>EiVvH=hyIF9t)`m z(LQpk%(G`Z+G1XX3@ArGHI+UU@2N>nBTJ#Il2e`V6hB4Oyq?P?yFpF2r0K3d0+zM!r1FwXfFCyfn`)4)Uk+WaFs_V(~ zb@up8G%{!vgDW%&FFu=5crh4-gKu#0&ByRt>Hva&*W>&-*)RsBy&KMyD|h}_at%qk zp+&cIZ8ShI2+xbdjS0>%mVXjeH@}c)=?Q8`kjG1%_HhsAl*y-r-@vwF5v9YPI@}57H#QC* zNgWCPF8Z@Bf09Zz|2a+IX_3EWV(cl)oO7)iXqAn=-Vi?+`6Ej^?4t)H?E$IiX;L(@1vQxV5=UM&uHw(ah`wCTp2M4b}aOAS|XTZa5SQvOd$=KR*i1RTe9%x_#tFY3ylhMWrZnEwOugfBpr91 zN&I0gs!~F*-1)|gXmw$Az>{Lg`F4rZjPIf=&_MLn#pe)2rY?ufC+?e?qj8vJl zs-C|xQvYGBkqS6^1WbD$HMl(? zsy0YOf2W6xQ2{b!jIIS^^r>Ks3XZxl3JA|)jI!M5$23xVX^b9=K&!r{0eWVf0Xo{~ zq*h1sIHObOWYbG!bPA4VF**m)==?@Kf}g9|s^46=nwzGq!GAWmdChoLxLLL)ilXz_ zouZKOcDIc9%Z8AB%;yEAC3~v0WKTTD9nqGV|8IKouFQhrN+<1wbxa}1$P%5jV3@mc z4%$}FrfeoIl%&1B6gxnK%rjI9gS$X6$?Nm_MPQ#x+&J>u8#ayX5bZ7=69%UgCIG}= zRvVt9FgUMI0_EgG=!2m!xPh|sUlIm4NYj0YfLa*bNXRS@zXq_Z=iq`cz)iY` z2{M4kFu143gu$t%y2TntR~@38!?yGYki4Xmi=oEXX5DSMt}wW=H^QrkXADG_3xgX8 znAQz_tX5GMArS6(JM8}vfm)^}4Q4zoQA_HYh}m9XPHM%HN;$lUCm7r#8>#zkPp`{w zJF*&!k1H`jdyJtS$za6Ci+X%qW-I@Kn@BEpi4-yUR?}~bxE$rT9ofD+Iu*77p33^7 z$!dOEgG6?ugrV}VQSBl z@Tf*nFQx>XmeiuqT6s%RXcB!!XjOb1rYs8H-gBxX#gKwq`9UahfNDKH&X~$uQbQyB zwt2K*FBcy-1Q~Ls0a+CvcR9!|7avzbVexUJpk9aHRuoxZ0hZtPDZvVQ+{~ju!*7e_ zROUh|5IgnwxO4URII12KAE!4lheX~gjUvGkP2$KE(RU`eqR&=lMbJT_iKP&^RMH1; zW!^Oc=6T=~85*HU-vVParR_f0%gu0kj6rKoTx!knJ*8-3oVh1t?Igyn^wbGY(cD84 z#aOKirHOO!dSbQGdnc=tF4yC#6OzLEtz%(brU6`CHw^@AG!1O(02fr)by@G-9V4nQ zRUU}Xa~K!FC=`@#91N?EN|97osG;%hI&e<47x7o0e7J5Lc&yf$=J}JFHK8!iF!^X2 z2V-C}^FV}CnFri4=D}HaT)###1-syz_5s8mGwYuBSOXe`2F@p!Ih7*D7@VVGs%Ayq zvb3FVw)5w8J7jb_Bv(!@cSwafkp|Tv6&Q!KWKPJcKYtbly*eP+)s{lf;2>LxlY2*Y z<<4>|iLk-UNl>@Xbn=8FFh`zdA(eU#lvNTNsoxF9VAe*hVISGJmG;q?F*6IPHfFMr zG)^>FjU9Y@LOA6YC~XX7Dk-{IJ>zncOSaAQuSfUW}Thsi!{DDcoPxboRguBi82*LCPBkK~q+xk zXZfj}TyY`k8%aN%;PY+TPhdGEh&svHHXpX2xnaeNjy9<4%}32^xwYZ7MCNqlwcN1o zlPkvb9E-CP9G5e*E;de-Cuc@rqj6^DX~ndqb>_?}`aJ=o#XPHA%P+(J=!$D6EVb*2 z4o*ZGo6~vUEy%p;er(Dj7^1~=%a9YYF&S4x&z@|DQ;>OhZ z+b-Lpw6Sn62~BdC@wMCHuxR!>_sPpZG`3*J2dR@RYQ3WH3_X{b5=dGCy4)?I;5z`T zp;lz&s4;xi(WAI9)?UxyKDKGEilV@5@*tohtUh(PV5_TGK9x}11^oKH!Y)-P>xX-R z?V?tilB63|Yh6|Sl-$ zWaTac;)HdXK6d3mzXEr%;MSN~XeC~F8-H}pq|>1gK?$R2`F$mvMWm%Ru$3I_cQgU^ z`>-q8EKdmrx8EhT5z+ZZPx|c|2*t4}BmpM_k=ypg0WN3V&_nmBmn-yGtuN{};Hn%7 zsK-1aL9i*mfgfy=cL6yDRU!=H85u?(A)b`<3X)Yy_u~F+?H$b?lS|8pMyqW#M{&c& z?UWh2Z@b6x31fwPLgowgs{1}kh}{o;4BemcoJB0~dPhaURYzS4#Eu$X92syDdEzdI z3~WJ3tqK{8B|4ctO>sr9dF9N?BOP2rg_!HrK_Y>Rgaj@v4A)j3v@^>W0cIRc+RRQ= zE{&O0(Rpn^Y7DXMX!8k8P+E(|u1t^WW5`!l&6*jP6e-_^ zDtyXg`EFYlA7$gJu4=1oEyo^`u{vEtL*u7w3~vbvgJwh7oNDOgTGJ8(%UjmdE_J{{ zbo9xwi4YJYJ!1iwijpu3PB8e~g3#YM$i~x%p*6lJXCAaWc1{&eFt$tp#xts64R97^ zF$r%dyX;MxUWo*Zi#aU7Std}4sp_&=_{_!UVwjf+1m}By?KfQ4W<{mrd-ms&=Q!Hp zRPrqgw|LHBUH#U<`myI0ujKyOpM6401Bbt5=>2#$yqRgGb7dRJaVbM*tc8u6B(uj1 zp+Q2%Z!o~wYj0TK(Zf2%e?DSS-%Cm*jQf{gZi4JfeMgXCM@LMMYdf;9Jf6j-T3XSp zrpMeVLLPZ5A;HwkqVCPyIEGaEm$sQn(D@*RxPAqmbb($cCr*BQGgI8^^UZ8#dLnwo zF_iwbY-SRz)}k!()RuTqbC=!Bq_4icnW<*4i@TazwEmTBW>P#t^v;@q8@HLsRS3Cx z*v({lj3uMB^1zN|#pfYhK){*=VlX&e9&0sowYF&)(h17qKA%+Y)<@~>wya`%ryKri zK4&XNVvYIAmPL$wSxfIouFzCf>BnVkQCIB)x$w`T-Krh!4H(NUQRnb=xA2zwl+i3t zH!0N)7O(1A3-x#x#`(a{nXP)E@`0CFc9dC%4P|1a_iLski@LTYiaGNREm?au%Wohm z{M`030(K%sz^<$#0+#7zbgPH(X`YO;8aSd2d?=z=z5z`w>(2Eho<--n7NWGoq?JD5 zQF%~=3r%N7S`9iOfdUP$BD2%nKjAN{KJHlelB#ahzsp(-noE;#lc9dNvEJ?xuuCJ? z+m}+nYOJ@9gvlac)w#-I;Eoid+P=}HRV`=Bav)a|Am9=xBVc#*K#tIwn-AKWd$tJJ zofZ$LSyi(>Z%nD}1h&^HW_2--o_h8O*cuudK59cm>7yQr1V5mwLPG2`UGd<>ez_M}G1w5wK&vaok6;)Vja{@ve~#9mH|N zk?c%g07Az_z;=qym@j#%;Y+?u1S~PHejHe*9sxVDW5W@!3J8o5u&IIr;n`6Uu-y{c z=%%$0fRc;Ks8zVK8d10(MkgAp#Z-hxUv~r_p5|0lPCs zz)C9AY%?n+#nnA%fDz`nqf zvGQzZjD=Oq>v!iM`IdACKa$f>k6ec=jO86gz~W#1ejv5XHsr$e2-xqA9>a0&LD?5W zAWD(cL3G#Pa|oijat*{5eT*Q^=1Onw5wMa2?phO5m$AFU5wI%e?lVt$i=Zn_Eu2c_ zwTYErc11Rf%l*XXK)i$%7mEt-2%ZLlik;h7+v$Mgl+>aMFlPj|_cz?thuG~|lAV!l zAzrTjiFR-3Ymr4)+lW{vqprG&?~*L1*-yu{j;y~CpCkm<(Z?#R@b>TYB{l5x&?ZS|EIVl_0cy^GoakAak7X@# zf;E=6viDgvX}*DY;tix_l~+Rc0I7TwJ@i?ArBpwKj?y4Fl)cRyfJAxe={9FeoM&$!1?-1I0WLO%2F(`A0uDu0*B zf3qNP(|tmw(oWe5^-c;yn#El4`M0bNSZ2%~P^s%@i!<-i{q^O!;Ffcl?BT~P!QpYO zE6MKUFmYc)suLyKzL1~o?BhQ45`4PCtmAe70t=ptN#x;} zjmMucz^xbZxsnsJ)rY{cvStK`MKm~O)o-7SXv{Und*bfIRD*!IBid*)++6-tXFQ8Okads<<2S;rgmEm^A z$L;%Z82Rk~_F9ZMCbGY5)=AHWv;i|R8JS+0j88|A=e#{1zk&1&$AqKTD)w(}I@HN* zTGgN10C}t1$aAPS`)jKqEnWg5u-rO^49Sqc3BV!pXwiApSEG#O1(9v@q>HRi)=~#| zV(Q?r#Cy6)yoM#&ncARXafCLzpjC~kkxCREKD6uG8ac&~N7k#bOCC0bmuoaOM z2Jq<{XaNZcgc6A&-Is5Yj75g}d4hXio&B*`PT(+kiE&UXjZk;#h`6YN7=X#EMHNxU zh((pJd^^?EKB*ND{_Ni2GjQ+||6JbT6Kza3u^e-~Z>PF)cMuE{BDm~SpfRb=SpGKzjX)fHT4@fhDub%nOUNB7T~>gw+Um7YM%ucF3}7-K+ZSr)cwLi5$|S?5>Zok=q@t%jt*U$p5f4yAkw`5LK4Kd)j!f{H)bK2 zogE7Q}bjfBi1rG?bWvCADNIR!<( zpkF(Yk2scQo~vzTob(N0;X*U$PUf!uJy8qlQ^b|k>Ic3lHl*2uxGaiRgf#I1N`J`4v2(0~{mL!~nQ7xZ19yyOU z)R~AoDTc7qZhvIoHpoxB7xIZ4?|4ht{iF6v?Tr4;%k7sMf(#cz1F~wr)a4+%+mEbbrWj-fdHc|Nl3#CQZ7(XHDwtTDX+W&8|3B(JWbY>24vRyFY!Tl<-gAIt> ztlY0teLQYJ>F!erX(5J6f5kI-+j_Q~wgwv)cx2qi0;W})KX0bTI;9}XHZo}P$4NUg zfJ`CP#5@`XG#_c4tfTTEv0RB!gN_d>y3wz6Ury3`_p{=7<#tj`#c^snIEnPL2*7D` z@9KpPF5|eeoYSvxBjbKGA90Bje7EW=ak5^MSW;?fsp}46Ji~`Tf)*E~v8ZwKb+@Dl zR*IqMt!i9NNFjF(v#o`EW8MA~UDf4)V5i&r6P)r!(P?r>-~;CI0wv@N=0vW%t4g-( z*i?L2`LsKSas21z#R}LDLz;p-yk1~Z{>R`26zV+1S2xDbi)`#sF-5o)p;r8dPfZ8$ zl~nS_ZZZ3V;5BqIlEGGU7{Vqd-x&(*$4(wD;aNN?!>qK3Zh^zbc zRP$8jF!VYxS~T1ju?;*$(M~M8z{&K=f@`zVVMvBF+T$qdcD-U8hJ3627U0fI_WleW z+6lwdL_W>n29IH<7?5Bd4=&^(|0z(GE<<=6MBuzD$r&QBZTq+k2OYBMX#uQs8H#1% zp>zx<7|`NM7z+(UDE%+cU|`@yHILy=X((Dxh^SHvRL2y<*?u#aNinhl_T-a!9{Bw>f^ zzPu$euqdX)!MwhN(dJvPC)C}1^ToZdktk2HV^P)vLQ8%1{uXzOJ&Lyy&;}N&)~F2}&>0*KAiw^qiOEim#Lp?QUyG8X(DQ!iTVLq4S{Aa0xK15k?J3i;k;2oxMq4 zsrNSUZi%ZWt?UUy2jI>Aubgh{xX6A>I2L>e2#$yI87jx7&ldmn*H;pk53N0#T}o+5|kcvyT3I~#N|Zx4icBYFEL4x@8e zdQeZl3xQzZDfvg<(#mO4O#C={XH&IPsZlGmmw9+Pmv7d4XDbcfF2>>NgMD zO$qvY?AGw`-sYS4+3ht$wP(xrIP~TbyUEHj+53kde83)zgz-^(RYLN?=Iw{<7DOGk zi_qW^yD@M-Y?oWgwwX}=oINUQ{7CcmsNIH&9&5h)sNGt`-`u^H-TfW7rcC{_ zO6s5X4qgx7t>PGKUd!TPsMhb^Xm@_?_I_L3l|3k~G4YJ`BVpa^=5{~TPqR~QT|@Z) z)vl7_IHs8n?_rAuRv%_uG4Z-SJa4wrRDXsCoa^&^&h^16ptgKQnQnWCdclM=XAhEJ z;uG1(R2i|7klDC@?BU||ID*oHbe^+DTU6Xfv*Gfj|pNSY97~9rSKzHZU z7>LN(cCpslpI=Mwf+S4$Nk-r8vk7a-%Ty(FkBwv)kw9Kf`rEQaVMguf$r{33Q(7*u zhfs3t>qvUnNsOIKde`$Q-GlJAc_1(MS_k)@K7Dc(QTbPf!Rzzuq$2e;dy5)yqn7H< zC&fOjUv%E?)@@8u7>hlmlhJvwd6s?6zSa#QRa>`ca#wp#Z+ocA2iu_twJ%V+zvZux zf5QBB{}5^tyqm+<2P)#ox98Vq4_5ctPlxh?*a-)9xSI5@)4b${{JNK7k0$vI?H> z6C8g#21qFIS>X^>Sqv6en-6nQmFoB{)giK2u{m5nv@6y0JSq0)%Pc?-?`mI6`q#60 zmTM!2iTuX=hU`NTgh&YL&$%SO{&4>M>=*UY^td(k5#93j5?HXtixckvtn6vWArT*j z57i!Ud4nv7=lLfY&28V+dtbSgAk0=3B73`A(cKF)r{ zK)69nkQS#t1XRUzaqzbU-F+Hu!w?qHQs}*ZEVRK}r$w@$udH!o?K0Ou>J3hwseVMB z_*5eOa=WXY-`&si?RWNX%*8f&An3dE8y~y75Aoe83ViwYBKfh$iboB;uR7@Yc5OmU z^W1(A77*H7HT;qLpgx31$@UtjVu1=-> zbbImC`-P{!6CBE>`Fsc?Ew;USfAPZ#C8NOkW&vp32IYCQ`iPIc#$4Fx<=YtKa)?)O z9;_vh*4F%L$(MeJL?DR1TSudLhAOe zB94m4wK*G|-d4J(EVEms=e##j^8`+7X|K3?HJzt-6%+p@JK`gwNHoJYPM2e1D*sVf^5XEv*_0`x2ls zESayjF=b}-h}dT{WyB(!Ppvf_Sv9(pRRg7O!@~i2nnfwi&&xE&Z4Y z7V7okfHtb2B3=|{t&@KfQ068HWDJsD0{E9PNVcd92FX=o5)2Y(z*?HX@U)#p+!O5@ znmKOGxIwZtzY0lXZ-YT%&Oxekg9OhVF@Cq~NC9;kALR({wQ>Lw!X`AZ-y%*$H zVV`Em%T2vZ5;;@EZU%@*wBF`fYP=3p&!TmSXpnI0U=U76B8iyD=Yk4@5L`CiE!ntH zvT-9kL2%x5KC91X4NtvI?zxq}P$T##!?Vd{+A^1<+eW;pZx3rMsPd40H5yT--DV;U zauf5?pS?67k#;iL`^d>zYVgvP*Vf=(kfBX^TOmL4H&u`YENFtqDj2 z)6!fYGI@cGi>M0j0f_9Aflmdai#M=Y@|Pq-B?7B5a>BMzLYYgz)E8=agzdB=O2U&S z^Zw`JnTE_e@IFbx?<|h#x0H|3XnWeYHyCZDDYx+3wX*+Xr|oW^V3K%~HB~IHV|V-1 z{_GKPRTNs|f8`cZSht-?yl{s(iXenCC}IWVwRlj*L@a(m(3NMbui)R3OvOCYGR>)U ze?2DR4A15THpyjA$hCzN?6`j6=~Y=gID;69(VLhum@9A3H_un!>z^1*WvrY^>K~;q zlOfJ}vV?3t-`LKk2mn&7G@~Bcf{_#}g0T_xFtUA;Xn9Afs0X@rOS&wSP|c(I-77@G zH_cPj_m)u)x0$1m_Q2+C>&Oi^uvH0}Uy{=7&a~KyvXw7MAR1DrZ(J*>w$~I(s|;!L zw021u8?7a81p>h0?ak-I{2YENWbXJgznR%i9OJq-(- z=o+EgR@=faKpRhlU=VeW%PtR3B1$c1K#|y?71M1)$z`Z~>Jlm^E@ULMDmnbmDSo}l z;cT@_-fe>?5bGtdA)rIjv8^MIt2kR7S1}UK&1H{p*gAlb5YQ1LKQUGxpBQe;H$(kk zpqSkT(uDu=iRNa#$OJd1w_Sd--o8F4+L^uxfA#TS5^H3&<0^1^C)nK&|Bha4u3nTG z;U2R$*R6LKA6xT$7hgAJ8{dSj*rHiScA0InGht|Kdm})4;0Ym}C8#m@#P-;lI9S8f zC=as-3%75W0Zn42KN4s8wHS0{powRLqp2l}aZyvT^RX%0$yzq``6v;rDcp(1#J?As zf}zJWwWQNi5g@FFhb(cOA|i8iOJ`ihX|UqpB0E`m0LVG(KdhO3$y#R5T1XKmGq%=M z3bPt6D{~MCTllJ_h?_$F2TZ%^IXT({h>dy438BVOAU}n2jM?7pkg_q>d`=c!zTxNHH9OxHU^5(UL<$5H|=@7U8-OH$4Jz(<2Z! zT}Rw>9dWkH)(|H;s1PTrl%-38xhCQu)9AZsP`r|z83~7+a@cl_oN{Z}nhbRua~V%I zw0h2P$8m2wH#5n{K0X)CEr~Z%2@CvhX48-xBjlu}Hk+3#KZiwTVFp2$mekjuoo3d_ z{;ukYuzf7B`dWIcpNWjhj5~7W%C=*T9TR!S!W3oQlyPa)u(!7T3cUI5E1w^HQIuyk zo0E$#NI4sM?+i#b9F?4dm^)4{#Wr+Up;$PudH4jG`T+*$YT3ZStGL5m0eqlO_TJjw zM!}u-MsBo9)KVG2i3O7xmy_wf;^@&Q2MYf94NVD!Q3yIc2F)F&uHoAnYqS$t3l^)=0Y)ux@nGNIb+ucC^)jd?L`Bij35d}q3^n0s}fy`H#q zU*w?d;|DP!-Vn-}jm$B4Yx?ohw>tI}}lRt~eEe zqc!s)!w5D%5{e8uF#~U@X&yyYnIm3|%Ku(NESQhm=2Km*rrwJaM3Q_9y5UVP0pWe2 zV-T0;Ww(LQlwX4mn}AF~ABagL4g!UeulZ20EjX3h7u3sX-#mp!4C)Cs+B)(bj|yxR z^0`B|3-34+%qe3ntchayV4sv)hgdB+{2_|I0=k?4Q-qH;{;s8bt0V1OIUgYofl6r@ zA`#ojYR05NR4k6LpDN(a2B$RE=*6Q>KkCp2tIIgt;7Jg41Ufww=x0TYdJeh> zXPOV)kdmm3$ya%J(ToI1uG+(6$^PhG^3BstBfK~wKrqB4n zm1&yi#Yro}s0IDWZJa$A*Rzmozlw+#K+B2rMNg# z1|}4e7Q|Ozn3#m80XolLapseuE?tL}dld?iwV@_UVyKlRtqV140=HgYSrc_%Qd4nA zzP(~swDaG7^MuZcoqR+4-jx4ta{uGfDg#$B!Ri~ z>5T+dqY!{HEN~48c%BChS;+H%ZXQhVZZJ{$?&yu&czSvkHy)ExTzISlBCm)?(#W>? zFVsDXSd{N(7^leokzjgRRqFqoXo4eermzj(GbG>AhNXC9tWq1L<{W7UDAqI1q)jp> z`W@6{l*tg-wkgblF`#ki5(A|nT)>&h%8-)I%Pv@)@NqQP>sUsRABPIGtU#`k(|-OI zh#BGFqY<6_Fa{0-v!rKLM<#YiK}^SA@lr_070E5^?iK}xl;dM7x3Qv&i`LNtN%8CE zxSNbFJ%(RRox-Ky&LBk$Gr}5TVZ@h85Fvw!@>6$H$pxcPbr7>NV#bhC$lOdcD3g96 zddFjDGUKAED>Tmtn1{r=KA14yjV=N; zE5s#Km&hFUckl#vN;Yqr<_at2vK;}Le*@dzG1EopPtijP%_Z?_5dc5oCTIJX9>Kn!^ zw+i!N_VW0^@D_PhpO~|lRV7A&OU6vi^_5!_ree!$0}BYA1x?<>wq! zA*%$Bg4qjP?%^DxK;OjBo_Fkss84B>H0`q`?321nYzg~>U9#S(-a6o|JITI&-pYPu1+r@NC+*v3yQ9xD#C?V{QF_ncZc6i^He2e=oHA?L1 zAhHM;6#|2{!8vv7dylvV3cR7S%(i0NNj{tsRcO%?yr6u@*bdR^wJd7Y7d;`fl{3j+gYLEGNivq!FfoPiS&G@Z#G~v-i<=RXXkkdjXXC22+?C7(wmw&B+F* zb?-!jsYCZ>Kq~iN_dcZVu^Q07DKINe;utGyq+`MeyK<(&T%f_;QXJIbR6jK3w7h$& zKLh>dZHch`8U7jL*Hr!)FQcVxxtgJ7U;`CiMyDN?f|s2J4WSY##l^&+a*!Q0-=oXs zhVdXU`&ObXpa>!Pw(ILlJc`AzPb2Uv8#O}QusQV;pA=bJsAi*0dr)6Mtmhf_5WFmP zy8;UIgc~_|G8WM926qdr9r0er^XV^FsHMGM6b<%1?WhoKicFlXlx)J%C$SafpTLGx zyGZX?YJ8Jiy=TN))r(t)UUXC?;KQ59JJkMgGr(*`rLc&$33_*VQH??pq3<%v?6_$H+&&%oH7KeCjl;fl4x zr%z-Q0BF$c*U}Isq_%*Y%qR6I$$x;3K!|MRNqxNg^pEuKcZn*jfnw57OJ$xXFKM0+ zro6vU_dqeFPWKM%KS7sd$u1D)z0Z1)hr|vV;fsW*1fm(V zN5v?Que zzcGxi&Su}HcuxDHC|H)6Y*w8}r1_w;K;ypUhjknsi0&eM(RA$rs?@ehJ?^@VV`ucK z%lfL{4yT>AU@x6r3Zkjy6qV+?fJM@%ZC{1j;4h-Q7u5McdC&388`HR;JQF)ybP~P; zvRL8CH%f(u;oVau6;2g;f~XL57&~5sS%NQ-pi`xA=B#xwOFR`)hBLw-ZJnO2>HioPL2Z|GAGZ4Qu%fZ|ctr0YZIw%D!}a zAN4ewpmwCe$6~@s(*ax_F#()SiC+pes9%_~r^JraEt=m;I*&q@0ruu-fm1m;h(s%0 z4xb~^HKKqi;WKU^qd++Jbq2)5z6gGepJJFz#MNMj>ui|lTrT$BlGo;sEUAN>qul#i z08QB+wNw@{G{xRedUga#YTZQLy%#NO3eN;m$x29uX}=wH2?2|-M>vEbI}C9`X(0ss zaJ&Pe)FzM}Dy-!X8xilGiUVzHttznjH$}uJ0*Q?ke+B60?-Tgf=erK`+ZzVC1Jv9N6vs4{!mB}^j5m#^dUJP1Dsy+XYDi$iGnJ7 z(%($r5Z7Vcjps5nuA)CI1iF%C6PH0T0%=!8gJH`AO#rMa=(emlXR^_q>;0Xm!9)~9 zcLNZR8sDC+^7{u5l4|0gvUqQWhm(Q03hWg}ZFuxV7&%P?5&Pk0aa}mvvT!U3W08-j z)_LL`joc2s@-9TfuS0_eo4gbp$)Nx4Tf>m#i-tu0)-%|fVbtrX@Qv3PAk-YJU z?B|TWLJjl`d1zc3I<7S`$RD(%XT!3gp zANY-j{thB9zR810HIoZU8_~y!B@4~NTJSy?ApST&g2wVA5u|xLOKMB6TNX)f@tR4# zrtMJ7%tN;=vg$suSe97$*4;?cb$+teLi*sYzAhk@kVKWt(h~=N@%_KJ?{8}hJ7aH< zin0bPc>c!#p5_ljPJg0l2xU{mp`=? z_JDmLE3}G9aYC!q5Ju{DTMzz(?#5PkmaS%u1Nr8=ZmfMD06=RGGn{Dkxl^o$&pIPm z2UKuXR@>J5X?3cvZy0eS6?ML@(?~A2Ig@9_Mtq|p#T5Cn#10?hjV39kCY99Xh2=>u zBZy9T;o$K6W+YyU0eUmvsnr@i4bWunYvc_6pxOJ#Ln5$-xzP7@(u^#KIx+$7p8(ZVKHwZ>1f?4pO3jqi?NW2<(jb}tc=h@ep2YZ?hB|F>E zgT23Xb`SO=Fx2RN-eU_JDJ!|3u`nlM)Q_}GR$)d)6-@5uw<0}?p4bEPCO}2D{OA0z z>}>J>fEz+s!Tr4a*hqwlM@%AOcKW@-N5wJmOepV4|1s;%ur|lXkk|b@O zT1g~to#c~#Ys$D*j{{u+CX2#W_smsEzpb+@0Cs>OZy@Md4ISv^?SEN z#HKdytWC*{0+|I;7;40N?y`{RO%9+FeI8V*eO5UAY!G zh~U&>YJgXy=_dW-NRz_YFkmh#g7B2pQv`O^v?LvYW}j+~09D*+1yIyF3KV=oK(Uea zjc3{)LsQ`{?L5I)Vh+OUkd3&{HE4hi5bTIqVZbbwzcOGNpr?VGLZlL1qCS8a8Cwit z!DX)L!J{;N@=2UG=Q&W#@K0A)$$d6k+FMp6`BXf^T-Gt-0w?+k&?@ip|D4z{(cqwj z2Zt-H+GoAOs@iQmSDpOjt{66q&8TKM@95Hu@F5&20ua``BCNJ$!}?Y3iwUupE6-_j zH&3`QQyc)t`3h)}1JsyGm~|Sk+ez|CM%U0e9@sS;*2bxho2>Sw+8xtfz=*g&$Oc5n zPgjplpoB}(xB@6a?QfdTd^Y;b7ltVUm_nF7XCLOu54Jx>UmkjDX$S$1?2qB*8T8*> z*{WR!Ek96e;V)798FssdVC6I9wNlOHVmDF~bL_p(5 z9gr9Bq`CDOF%Ivzn2^{7eHUk9Ck8oT8NJ^z6^Fx;!YXWs{7u0yoP$9AXm%2ik2HNV zO-Hx0)Cx?*rY+Lbhe%Bqmuu0QAP#&`AarP6xi=EL$}U~ITwO&xP{FifL1^1)K!O^J zBjs1P)*VTB;kp*9!QqQpClg%j-2{77DZ-K8`g5!)?gus4k+y2;^Fj~~H`ESo))EcI%bp&N{aY{wOxqJ|HS=#!{^oJ)K{tK@$=N7z>^dAKx3 zE8z(&!!{+#O&>(L`hMnG{y2|liVUvpa>loM9C#YbjU1`>4fHZ|7|=6s;dm?Z;j+yx zvD@Va4s|>9Ro$i^>Z^|eiiO*Y%=ybAC@hQ)UF<({j3%Mu#qgk|Wdsj8Utk;$c8GwB z%;3;O$AE{?eHkSlV5`kBJivIPdN@KNG6?Za=t_WGJiHoJk)Nh3j1RGfHc$m@N;gx7 z50)+T8Ygh^JW}pyCWAZ?zIF~NYftQ$dV@0i-d!M#JL&q^HGK099LsyES z{YC&n;%Vj=mjc6_sS9G`?}uSB&HVD{bmwF&#r$EvsG?48b(?KSW9%lU79-(M%EmEM zW&5DP>F96BGXWvKZN82S!*>W|Ot)mos(PB#Ok`o2``Kk8ik40R@xI`=ZOHLhbF+J# zJq@PNNE$OoJ4a(0q0%a$u7)m(Z1#i!1xW$;toI3-Rya4rP>%%A>pf(-v|Osp?oftj zcLa*JW^*1A#D2vPZwhvY-;)R~NuXIq~&bL+a;Bw%`TXgCMeu&yAwQx$tnq9XI zT4qV)47*(}an9*dKh`mJ|NYz&`o#-c>+Cq{Y>vDA;O}CzS$a#C<&fX+>h|)@91!xe zwk9T0{?=ypgVESkK`2cJq$g7UdT37BR!^Vq?e!UMhhme;+c0xChd8a>(8r?WR!xTE z4ozK#8FMoZE*S3m{K+Q-q@8JH-aL8@h&J+7AIyAxOJ-(MTwVoT$OJBq0H7k23n-|= zhsiQ6bmg{&84tK^m^3$Mz8Nke4?0!&8M zR>yFpXqE`(l4 zzWq)<&EL*=lZ|4QE&2gYHK|1B?0~h}8}AHxysF);l!@+A>pb;zEkJxv5oV=6TW2o_ zoy9dL58<-TzB^1rkPr`)U8CO7r|tp-JM6u!OM*$mzp1?6-i4B~?g3!dG-(nh!t~0L z-p^=?NO1O*md}OgF~ab~EDe-LSpXgnQ$#$$S4a%TOaT~=?EJ+trM3E);4fDSCd&); zLE{M$S$7K$BN>8+5h>UCWsa5#y66?dlaJkJlaxR<3104d`Yozc=Q;WsDF#adJ=U$c(3 zsrGHH8&*A~;E)4dz@9!; zy^Fy(f|MMLBT{urPbrJ*ASryM_H7s4&m~M4_Jjb9i3}?QzcmZ@A2E;tkP>Do@|qSR zQwfyj^JiL+5ge@G00dyZ3nS41==f4cq61Ju{)f#0xVCTry3R&X8mQupw)fxwG)s`z z?e$RynJI;{W849l6jGe$JrX-tIQ>9|_o8t631XA|6zm;U!d z>XRd>QI9w@G4-8lb2Mdp zdLAOhPKEYYks=u|`a$LtfW&Yl8qo_0vK^BO0V$VPv4FzPsU@YO#8CUOLtxR{XRJVN`<{1j2FDzK;>wkN|pusP4>vS z9JV{1RQxTr)m!?`2^H*xLE+o!TA=C9uP5c*5xvr_#gwV_SyEk$Szw9d+VA}Fhc#{q z!jo+z;5@n2^qqlTpCwQ1Vl8APO+11&&lEwcbwokLvpi||3&wfl)UNzY6a8w-9WUlzmQh`PR>(PNaEOVx3^?J3M%U=>7QmY^+p|8n|+B*<&kvU8+F+kX1crdo+= zI*QfYrU&Fhw+aW;WJH_)sYJA}yO$o(kPyB{or7sxC;5F!@4^HIwa{-pHc1tpd6b;B zLAyE8aruXFx-W;65m@~!6f5u2D8;fUO$J+8tN%HbhW(srbV0SoT~KL$t=aR6; zlGyk}DjiUuXo3T3ueOxZS3?bum zE%|+ZFhj$hO`$7J4fCsfGY9g^_cV*|$sA7ZdzxJ+d`}$f4wBGc63qKS#x7k<@Nf(l zaLc21YFlT-#l!^0MX@XEE_X5Evv3zvgCp3cY||+xuubk8UYFUx&+IzHwrSS|EYX!? zm3W6G>OCWdFxFe=4(=w=9QwRO+Kg*Af)`09HQUh18i6PT&9*@ztoE_6&scsIJT66V zW7~%QvhB(tX<|abgC%aj-b!j@o`fUPT1DID!IGuEXgheYo(lFTb*eZbt#JA@g+7Cg_4Q}{LTBoq$lNslxr+c_2%-yh_Up7~ z%|_XL#2-*-4I^7bIT+B783U&&qavt$Q$izfG7XiO7-l}(e4VuoZCTq^K+R0|B56c+ zp|=Eo5&T>_bB$Dv+s3?Qf#7tTfF$F9;YL`NO}`P=m|+|7fdX}NO~|=@nPip<61%8A*l6)v#fqz8ii*&s|U$?JnlGS%~y}zfutU* zVvO5(Y0W5*tJ~5ES$x#>-FlUVQ_xRVlZarK;esAbEJulP0LeikC>ZsgfflWD{IQPH zK=htD3WC=N6o@C4C@@|)5e4VyJfh1Zz9XI3;-(mTCaJ_N+s4jUwVvGJbH|Z`l7=~AFbiIygXl*eLv^S ze>ZlSR7)-&G#`g*W8m7lE!+Z+a-J}C_q0JQN+ekW8QG(R|EueV#RQm@9`3@Sk_z83 zt0T1&0E65i-i7IHDkDxzp*^#A7*FR;0(pWHL2M!kmN@4(FbW+tqitn2dyH}Ljt595 zY;|z<=-7WRY(*Wn;7MPAXm?8t#}t&0ew4E^@*BEB06Fl{nK76cP~??0JR<+@mv zPRs)~)FrC<>+&bRz9ZgpMfmA2ycz0=$!S98Bv?`K4^1oS0t1n9jl zkg#G#f?o^}cw5OShEyl@y=~?Ltb5VRFR$1Ts#%bKjwl(kZlTORE4>|~#;HVVJ<_1n z{!(0HJukvvcB!9>XDl>yCjS^6RITXP&sLPSbe0Vm7(9m)j~^YTKtJLln+TasFcku$ z|H9w!+)Hx@NyqhT2DD=g^dGrJTzJ9LSeT{fi$K)*0VnQhpVzO6TB`fJ2!faKn*AN4 zAdh&O4CunuG!bB3{8R;4Kpq81PbDxw0An4o4zNElxR{9WGHXr?tIL#ZE@v5CZSkR- zBaTnpNE1NvoL-?-Y9m?rknBuQxsntg+zLC8SeKon zD7Tyr2h|o8|IbN`-VWT%pj}%Dxo|U0tj6FiI;`sK2FyTXBJ`&3aS9YBtkHwD`g3Uk z@sEoRyZA-=3SYw>Rqml_x)~i;(8TuT@l##L>dT!lsqd39YFC}bl{iM}GRAF8A$9vb zR`*jpiEbcgye5Zd85$?t$aAbNVEuFnY%u0Rv2l2b`)0g7zgtTa%DQ7b0OR14ZJzPd z)v_t)a7It=_Ykfy|6nd;w#b5)@dMLSs4G0L2WIeIXH)K%u({)`T@7VZP~enJV&xDe zWYKZaDmQkFx@>%^S0U3(twQGhiL*flTmUe3mM2g^8zmHGEu94QisGy`bYtVE5>aH; zZy*ErA;AiImiV;{Zo>~J5-u_9#T938m+GF6Q&j^#Rj**c*O$UHZKJ6RaG$&-I=G+6>thK4GVzbtUJK3x$B#Sjg ziQts4g5wc_xq3?YhbTc0tV(8KuWEw17(Oa%HqcMGHCyvBTC>&rXwBAhv}Wr$TC*`N z$IW7N+15LOKW@#2`P-7B>fM^{D||6FML-_jAQxXcuZT9~g1CY?nvu}#0^yHWVt-x{ zZHBPuS410&i_g&1V|rflI@)M>5BIWhCoqWwVHzcxjBJvB@%S5WJU3xA#@-KqIEi6A7v) zA}4aEwtU*?pFoPuC9eOO2d_w$cQ-hR4oNix3e8UeJ_aV&D0x{|*(^~eBoUN;B_KirML`-?r=r$DatzTJ#t;q8xjOkKms@;x-mHMlXaziY_S2ps zO}Qar^52Q{h8-|k4?}Di`1$0Mg6Eoi?56ZyA2eZqu(3K(A2A@F0t3;2Xc`b$HB%Jm zKT=P(fIpcLCK+=QYH*{E<;Yy}S z89s<2EKHNBsn%zr8(mT}N;hbxE5M|@<$q2+!7$nI%ZhZ&(zszVEew-IcWClVFcI2r zlsxIOq7^`!Q8%E=o5O(*8`I22@UZPLWJ^%vuKeb3x&kJLl#8MBQ+7I0v*-58aFox= zvxe=5HQPu4W8SONgKP>-2#XixV6R*OQVWqQFhN%My<#5&x$~uJvUFm1J9mx|a)nB5 z6yYoKL2v~{TJ+5=o2Y)qaI|&02-sGoRiqVV$`JBmoQ{c$`#I>;;$sVX0(7P324R1P(zJOqd6o9{3#RXRZWAfW`!IUhOwMs2Yn= zjq_3?Lv2&qBf9qp>?*$|t^`H&_qoJ`gFNvRV{t}G#$1eidLK|9EYv!n4IYSSFn+JJ zxVZ6YHgXF4cI8LS~^!s<~B=ag9*+eLl1^i7@h0VbsxAmY~r~gvE<1GLb&V4 z5CV%OlMoUIw2F_E%T{Gwhd0CQ0lrC!uA$H9r24|YmIt>AU+ocm*`(EgVcul~WaDi+ znpDCL+=<*Xgw3yL-fhvSpXgg)9hGS0tRc;Ss@*q#(oS~)tWltR|C8{bvvBO3oW@-| zkUeI!39I_tOsspyI2y=^Q2mBP#p$bNVrEefyE@W$49hG4AW2W`E#K`G88dvJ9)E2}><{4ugXGEOP<`kt&3K#t(IZBxaWo6;xelhqlv=3ma&PuTz-%WZ<8-PX1e>eVXWg4^BlKmH4qJtE7`@pO z>%x&)$c87QH~S2}?1`1wmc6383><@`9b>MB@S!RgLS1;q<-^BsbOzLm5;yA4wR!B( zs7#0wT9pZHU=1r;a$}Jw61v1_6Kq^0q)S@QHaJM5GozRe(!%7Nne5b-K;;r){z((! zUUR-e98(a)Xl%_TYmN5)!?*wkr$P1^_i~F*S`SMv_r|K1dvoY0KVlcm1ICG`a-qBdCiqhDURIeNLzaCas5iv}i8g|AMF___=DN?-Sx-~+nC*R7p05f=5b zfW>^>lVD#_7&5shgV7nPT;}m}Y~^b$%@!ep3o$B0f}|QB3|`NWhcLaUzNqvSn&wR72mq?uko@T(eA}anWL;lkS}CRx&$UR7-xm;sKU{OjBwsxJ^@v z<#Ct-!ie2!V*4uvw=IcpiM3IcqCDIRD5GU@iut@Y_6dQ+{&-{)Kj~xnV25}(=OoVn)WShmH*g%Ikl#w_#JIZ9L-_~+n=ieEIEgUO6GHjFM**xbm2_PQJ zZSicA%tq|TW@EdsDMBs9IlWDmNmxI}%tqQ9O$C$V*|c~ru=AXiyMa}L|q)5rp?@<)#BJ_PUcI^t_lSRFA@Y|u_y?b{;5*qCqNTwLl6#^ zFN=sZEi}7*;<1*E?#6_Eh zw^+0dp^{2gShGibO)sZ0U~bZiok2nX!{3TAKsogvjQL#50nd(jnlvKI%mJEGEVJim z4p=RwEu58pCfJ9uxt>hlQJqJlr^YB<8lai3?Dtf?+j5CV^WqahW#Rd(nmYhjOzf{HDnSc~`TX!^*O>wvIbRIoCy-=3V6rMh2 zQV_SQLiYEgvX4T&qCoJCs_fQ`Cei;eDtnY9m~nt5?fM^HWnb!ztL%HuJ$|WFi^iWO zuKp6m{?V%JyYYQJ{EEt6s=JVMFevcE(7&RxPg2>R|G1WyRsV=p_SnNxEI22XJr;|r z|35mFeaQri*PWMO@xQ9d?wn-#{;p*au%3~>1e;2U>3uYq01g*Q_}Qk+aWk`FG@BT}Q*f+e1`N43Z`;rw}FZ#PgYy zl`IL**ZY`|2rp|G#`mWq)_+}8{h2;1uQ3fNs~L!R9>rl1*7dmTfz+v4u5Zm zfd$FzIoT3C+z6#1f1zSaXi!+TgvUlh3nZOGqK~C%Q1pyCFZ5%?y{1b0W=jy-N?QVN zMDPU5|8x4iL6{`mXVjK(Lt#s}8Ed1vCT|`zRyqg7gJ23aWMB2HV=+BxN6g02WM#X*87^AWUG@G|85r4uQaNSHJ|2Jf~M^ zl~#iR#v(|~D~lmnrfuA`!4**Sh6Y!rs)nqwW3GU5Yx_jNqAlSx*EK6pjIHg@`MI)* zLPeuy?xCU$zx5GY!o<4FmY_&noB_vGvHy1lTf)R@%$87e*oR6R0-VP9zzMbwI0xOB zLSey{0Ae<#|Ga>>6dF|YSaD)6y)11B6WforgwsMuQJ+f_4L>#5s9kjywgjVew8Zh)o%rLUw{Sj!PFet!siWmS}G%7IwRJ}qVqe?}G1xr}*EMVgP zAEQtun8U&WIwdp$AjaRiJbZb2kNNIY$AjTaQovI@y##GN_O|w?dEC#bA2a;Ez%OD* ze^xA#e^Wlg^|#JHTr?1g-30}q=y6snA;0PjJHf+gr=)6~H0*sX$U+bM9dEkPN^9-L zbhlm5NG@)cB=I`#b^&~L%Ws8jaS#g234xY`(%K`N>h;S?cXvK~$9=ng_)c+n509mJ zE_l@;uDy?h_UK)J>roTu{_?)zP!J!pbdwCYdAl)4db@=hbx}|qW0Kl-{f+6fjXn@z zb8K+6AW_;U;G14$HdB!sned^Zqov%)ZD8Gu(l#^Sr3MOH`^iSWh28oD&=J)yS_LJW zZE|tuM7-TlH(+rWJ*}=Ca1mX+GH#9H3?eF+_ z=%f(Ca{4T{MEtM9t&eMA} ze&V}t7{P(mN<}J^{26tl_eD{VU0*n!^kge(?R4ydR8IRA=`&oc5c#HlTWsSs`EYm$ zgbVvj3a)C@-P%dkB&$#Csl0KgA>Y^xmzAUl*BYccYY%}L^(~x>4O2uQN$v#7H)?I7 zcQDIrM!WK6`~vQb`%;lDlEA@e(XTk5pPcay#eGJ7MKa*aS{9ThLpFBLktt`aURrnt z(^>0QqsW(1x*#_WZSfJ_m^NSpXrtGqtW%q687nC;l7f1YjRDt$1{1o=?#-Egnv;tH zKr)@zxr?-Z=c)$x*QR!PdB`^1Z+V+B^9)FdnbV|}K+xQoaj&WcXL@RBToh+9ZOe^e z5+o+lp1{ zTb~Mnvm765Jzhe^$bk_POh|WOVQs%|4NVL7X;`UMP=|NIODkX#6T}S7I*xI~kw$Jr zUTJiMNNOtrQG>%T1EN;nl0u~hgh-kFxz>?oZ~#TpSxxP%<9PzF`#I5MXG4wRtOT`; zKK6d(e$womEG;cyOyYN~!~YK?@I(zagH`+AXesHZq8MW;P6l>|z@V?wIT!Z`Dt0qVbqG>Z=`7ZgEO=vDO0sB6m%5eJ+iH~^ zt}f}IM>l!m9IH08sg=1dp?sbn=t>#*OeMAD2bu*cc zdu%or*aEH%LAa>v2JVd+D!%^5y%246N3MPA^IHGuIRzL#80NNX_B?5muZ=sWKn3PD zg@h+O`i&ZP@45aoBy$uK4m<&NABdSuFx_^420j5k;hXSd1IdITPNZ7M-YKwjb+#IW zK3M}G4u^^Kd8MzaC$&^EZeG6!KFD{N9Tz%uXgc3d-|YB1-h?QaiIZAgM5Pgg;(Ao& zmp7MH8^4ZKr>a`a5ha(-RH~H(plXeR32(IeF69S)u$BT6e<_Ulmj|N?!&+c|NYlRB zNaJlVcu0Vv3TH$BYhw(upq)%ZZ

YP$HBGj(LY!B`7LGVyGE3Aet~F0pptbx~pRO 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 diff --git a/res/fungible_token.wasm b/res/fungible_token.wasm deleted file mode 100644 index 5d87432491369ed739b5d2ffce09743cfbe42d73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 224084 zcmeFa54>Gfb?>{@+JDd4XP>hI2}Gb_?M=M*a3yVQDd8%&&B|2>Rj=6R{XE}&z6U8p z;edc4wDf(ra)gLcQE5dDN)-h)Dq2*m@&B=68x<{9s`$6DqQ=&GsnRz7<$Zr+&bj{V zvrqmYTInSR_Fj9gImaAx{F`HrIo4d!rc0g`M^O}C*L>Vr@fFcoQGCT&jVqq>oan6N z3O<@#J|}*Te(7RymIi0HerYo>7ezvVb zQInF1Fbwro885$Rr2YWT;vJA1h-NOwmFu^{rt9u3Zr& zubf!h*nHvd_qS}`bk3PuHb3*cOSW#_5~V7e3O~=hVDp91G8G+m_N804Y`$>onVZf& z`=U$vKJT39Fx^;o$$8JbaPyV}mS23ntAE7BTQ;Aw`RvV?TyoLkMy>NMy!g_su43=^ zF1YCI^Upl*!gDrX79FmxW?aeE^PaW&lC7Jbb+Id*+I;avXP=DAy4QU8*y z7j4<}%*|(BdI_JtaX|d{HeImk!m~GfY(lB}+I-HLwVUatty?#peJ;i4(8nd`1;iM^ z#hcDM=genry2QcmUU~_Yil4nLn=U-(qGz3X$>z13aM3d> zKPUXpN1xuZ9hSOU&M@ILgT>ZwTv$vji(S^QgkP%1v)njWy=?gCU!!ysm=)$dAXzVC599#7n zmtN?hZ@S=u=qUC6D`P7H>B38%5rq4wv2_rr^EXFF3&@(W6*ir7&Y9;JmHp zp81SRFStOXL5f|QUptsKRdkP0PsfgJbDBg6E@T6LVNyT%X!GluL#qrpi#0Gk#TyuEPB>OzrWcP&V<5q zH(g>QFlm`VqR%^L6H0leqqFJ3in4U;MO!yr;O`yQnD73yvuf4!vBysHx%h87@_*CQ zb}>DZ4WhxS>A_%{{|C`@e|ma2J-w>GO8@$+jyvwS{`BhU>Hcx6`b+(rW}y z{p;}0z8Vt~6G@aL$+7?8KepS=#zZffoa|0ablQ!nX0tufm_2^QisS#&sulcu)QVx> zE>=vh5G)}yJ&5`<(~SFsHEX7$HEUL#aP0I<6hYh}l;WQTY=frgS68iy21z1BMR)!k zH#2iwzdry}zrT7o>`%|Yl;Lm{1eu-vwdv#k)7nQ*uX(txuT+`d~#AGoC(l7O4lr z{@{@_!(&&k0@AU=RWPM95D}0Kp>3F~I_|&F?doXIUo{PfD3?5`|6?`sRns#w;3Sxm zFCYq6?hDBkD^?x50^kO-kI(=YI`lyqb|5N7*a8$qFu+>#+3&-a)vLj9^@;o#tXcuo z=^-RBSq44zU}A{C2^laD0pSzEzGB6|7&-&QX*V*u7VzOJq{&dC0OByR{tUmT`yJ|m zLBBs-A;JSFg2Mb0RiL6UUcqpv#9;cXW{y=Ev{V26p`ZZxk*oU0iVWa9GaNv&nZa-M zf2(hO{PuBt4F)hy(oX$V$ErViT-9H%Z~o=(tKZ)+IWse}Ve-E=JMqQwUjAB*I9k?z zMB|D$pPyfddRIjG!uLN?es^A#r0r*Ie%3`>{xFHs3pf7(Q}r`8Vf)T}*5<97qAw>6 z%A&6%y=QDavzP|HmZX)RXP&L;BSdc@Q2aYlRib>BRKP-XGHfThf{$4 zyy$}8-&}(GW>Q$a;3xcjk_JPl`Qn@{oBkmBhvcwOcIkz|!HT|<91%)GPrrxJKIf9? zAItjT4mf<*hN8h?Pd7#PCX;8LsjD+LUwBRxc-Vwhm{`>aaU$@>CzqY$GeobdrywG`jd|mgp_?q~=@gK#1 z7GE9T5?>epY5ces}!p_@?+3@mu0ICvQpKn%t7S zEqQzLr^&6!JCb)M?@De<-ktne@}6W@^4{cq$@`NJBp*yZlzcc@NIsJMdGgWZ_T*#9 zUnGB->`p$Od?NW|a!2y18#gpw*LX$aWz8M!A2i?4{Bq}w%`bIc)4Z

k94mDh;vpAoaI3L=y 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 Date: Tue, 28 Nov 2023 11:54:33 +0200 Subject: [PATCH 05/11] added multisig and ft contract integration interfaces --- Cargo.toml | 5 ++++- integration-tests/Cargo.toml | 2 ++ integration-tests/src/context.rs | 14 +++++++++++++- integration-tests/src/lockup_interface.rs | 2 +- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index fa735f7..4390cbc 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -25,7 +25,10 @@ near-sdk = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d near-contract-standards = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } integration-trait = { git = "https://github.com/sweatco/integration-trait.git", rev = "8dd8b63cef5e60448629a8903ea43b642bbf9f45" } -integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "0b3c2faf0db31cdb3481be4d35dbb48b62a98618" } +integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "1b05c03351009c901a45400687c24f685f8b81c3" } sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "f8709a20edeb06c8196306f5fe6025cae21a854e" } sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "f8709a20edeb06c8196306f5fe6025cae21a854e" } + +multisig-model = { git = "https://github.com/sweatco/multisig", rev = "0c6345a75cb54bc2d5806019840c96d5cf32e637" } +multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "0c6345a75cb54bc2d5806019840c96d5cf32e637" } diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index ae5d8b1..8850789 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -21,3 +21,5 @@ integration-utils = { workspace = true } sweat-model = { workspace = true } sweat-integration = { workspace = true } +multisig-model = { workspace = true } +multisig-integration = { workspace = true } diff --git a/integration-tests/src/context.rs b/integration-tests/src/context.rs index 5fa4e7c..adee25a 100644 --- a/integration-tests/src/context.rs +++ b/integration-tests/src/context.rs @@ -3,7 +3,9 @@ use anyhow::Result; use async_trait::async_trait; use integration_utils::integration_contract::IntegrationContract; +use multisig_integration::{Multisig, MULTISIG}; use near_workspaces::Account; +use sweat_integration::{SweatFt, FT_CONTRACT}; use crate::lockup_interface::{LockupContract, LOCKUP_CONTRACT}; @@ -15,6 +17,8 @@ pub trait IntegrationContext { async fn alice(&mut self) -> Result; async fn fee(&mut self) -> Result; fn lockup(&self) -> LockupContract<'_>; + fn multisig(&self) -> Multisig<'_>; + fn ft_contract(&self) -> SweatFt<'_>; } #[async_trait] @@ -34,10 +38,18 @@ impl IntegrationContext for Context { fn lockup(&self) -> LockupContract<'_> { LockupContract::with_contract(&self.contracts[LOCKUP_CONTRACT]) } + + fn multisig(&self) -> Multisig<'_> { + Multisig::with_contract(&self.contracts[MULTISIG]) + } + + fn ft_contract(&self) -> SweatFt<'_> { + SweatFt::with_contract(&self.contracts[FT_CONTRACT]) + } } pub(crate) async fn prepare_contract() -> Result { - let context = Context::new(&[LOCKUP_CONTRACT], "build-integration".into()).await?; + let context = Context::new(&[LOCKUP_CONTRACT, MULTISIG, FT_CONTRACT], "build-integration".into()).await?; //context.lockup().new().await?; Ok(context) } diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index ef82efa..8ae959d 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -179,7 +179,7 @@ impl<'a> IntegrationContract<'a> for LockupContract<'a> { } } - fn with_user(mut self, account: &Account) -> Self { + fn with_user(&mut self, account: &Account) -> &mut Self { self.account = account.clone().into(); self } From 64592474acb1e315933729d3a3048b1d2c5f13bc Mon Sep 17 00:00:00 2001 From: Vladas <146100@gmail.com> Date: Tue, 28 Nov 2023 17:17:13 +0200 Subject: [PATCH 06/11] generating and adding public keys for signing --- Cargo.toml | 11 +- contract/src/lib.rs | 23 +- integration-tests/Cargo.toml | 4 + integration-tests/src/context.rs | 39 +++- integration-tests/src/happy_flow.rs | 12 - integration-tests/src/lib.rs | 2 +- integration-tests/src/lockup_interface.rs | 45 ++-- integration-tests/src/update_contract.rs | 104 +++++++++ res/MULTISIG-README.md | 254 ++++++++++++++++++++++ res/hodl_lockup.wasm | Bin 335820 -> 335820 bytes 10 files changed, 436 insertions(+), 58 deletions(-) delete mode 100644 integration-tests/src/happy_flow.rs create mode 100644 integration-tests/src/update_contract.rs create mode 100644 res/MULTISIG-README.md diff --git a/Cargo.toml b/Cargo.toml index 4390cbc..6112400 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,6 +16,7 @@ base64 = "0.21.3" sha256 = "1.3.0" tokio = { version = "1.28" } uint = "0.9.5" +ed25519-dalek = { version = "2.1.0", features = ["rand_core"] } near-workspaces = "0.9.0" @@ -25,10 +26,10 @@ near-sdk = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d near-contract-standards = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } integration-trait = { git = "https://github.com/sweatco/integration-trait.git", rev = "8dd8b63cef5e60448629a8903ea43b642bbf9f45" } -integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "1b05c03351009c901a45400687c24f685f8b81c3" } +integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "5e381a0188649d84b820bb707af1af553a046a43" } -sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "f8709a20edeb06c8196306f5fe6025cae21a854e" } -sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "f8709a20edeb06c8196306f5fe6025cae21a854e" } +sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "97b1a04160ca26eedafc09f7f6d31dbdee2f1d5d" } +sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "97b1a04160ca26eedafc09f7f6d31dbdee2f1d5d" } -multisig-model = { git = "https://github.com/sweatco/multisig", rev = "0c6345a75cb54bc2d5806019840c96d5cf32e637" } -multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "0c6345a75cb54bc2d5806019840c96d5cf32e637" } +multisig-model = { git = "https://github.com/sweatco/multisig", rev = "d3ff7caee6828ada48157f06bfba04f661d7fc7d" } +multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "d3ff7caee6828ada48157f06bfba04f661d7fc7d" } diff --git a/contract/src/lib.rs b/contract/src/lib.rs index e265b11..721913f 100644 --- a/contract/src/lib.rs +++ b/contract/src/lib.rs @@ -161,16 +161,15 @@ impl LockupApi for Contract { } else { let lockups_by_id: HashMap = self.internal_get_account_lockups(&account_id).into_iter().collect(); - let amounts: HashMap = - lockups_by_id - .iter() - .map(|(lockup_id, lockup)| { - let unlocked_balance = lockup.schedule.unlocked_balance(current_timestamp_sec()); - let amount: WrappedBalance = (unlocked_balance - lockup.claimed_balance).into(); - - (*lockup_id, amount) - }) - .collect(); + let amounts: HashMap = lockups_by_id + .iter() + .map(|(lockup_id, lockup)| { + let unlocked_balance = lockup.schedule.unlocked_balance(current_timestamp_sec()); + let amount: WrappedBalance = (unlocked_balance - lockup.claimed_balance).into(); + + (*lockup_id, amount) + }) + .collect(); (amounts, lockups_by_id) }; @@ -412,7 +411,9 @@ impl LockupApi for Contract { self.draft_groups.insert(&draft_group_id as _, &draft_group); } - emit(EventKind::FtLockupDiscardDraftGroup(vec![FtLockupDiscardDraftGroup { id: draft_group_id }])); + emit(EventKind::FtLockupDiscardDraftGroup(vec![FtLockupDiscardDraftGroup { + id: draft_group_id, + }])); } fn delete_drafts(&mut self, draft_ids: Vec) { diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index 8850789..8f4c6fa 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -8,9 +8,13 @@ edition = "2021" name = "integration_tests" [dependencies] +base58 = "0.2.0" + +rand = { workspace = true } tokio = { workspace = true } anyhow = { workspace = true } async-trait = { workspace = true } +ed25519-dalek = { workspace = true } near-sdk = { workspace = true } near-workspaces = { workspace = true } diff --git a/integration-tests/src/context.rs b/integration-tests/src/context.rs index adee25a..d41726a 100644 --- a/integration-tests/src/context.rs +++ b/integration-tests/src/context.rs @@ -2,20 +2,23 @@ use anyhow::Result; use async_trait::async_trait; -use integration_utils::integration_contract::IntegrationContract; +use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; +use model::lockup_api::LockupApiIntegration; use multisig_integration::{Multisig, MULTISIG}; +use multisig_model::api::MultisigApiIntegration; use near_workspaces::Account; use sweat_integration::{SweatFt, FT_CONTRACT}; +use sweat_model::SweatApiIntegration; -use crate::lockup_interface::{LockupContract, LOCKUP_CONTRACT}; +use crate::lockup_interface::{GetContractAccount, LockupContract, LOCKUP_CONTRACT}; -pub type Context = integration_utils::context::Context; +pub type Context = integration_utils::context::Context; #[async_trait] pub trait IntegrationContext { async fn manager(&mut self) -> Result; + async fn bob(&mut self) -> Result; async fn alice(&mut self) -> Result; - async fn fee(&mut self) -> Result; fn lockup(&self) -> LockupContract<'_>; fn multisig(&self) -> Multisig<'_>; fn ft_contract(&self) -> SweatFt<'_>; @@ -27,12 +30,12 @@ impl IntegrationContext for Context { self.account("manager").await } - async fn alice(&mut self) -> Result { - self.account("alice").await + async fn bob(&mut self) -> Result { + self.account("bob").await } - async fn fee(&mut self) -> Result { - self.account("fee").await + async fn alice(&mut self) -> Result { + self.account("alice").await } fn lockup(&self) -> LockupContract<'_> { @@ -49,7 +52,23 @@ impl IntegrationContext for Context { } pub(crate) async fn prepare_contract() -> Result { - let context = Context::new(&[LOCKUP_CONTRACT, MULTISIG, FT_CONTRACT], "build-integration".into()).await?; - //context.lockup().new().await?; + let mut context = Context::new(&[LOCKUP_CONTRACT, MULTISIG, FT_CONTRACT], "build-integration".into()).await?; + + let manager = context.manager().await?; + + context.ft_contract().new(".u.sweat.testnet".to_string().into()).await?; + context.ft_contract().add_oracle(&manager.to_near()).await?; + + context.multisig().new(0).await?; + + context + .lockup() + .new( + context.ft_contract().contract_account(), + vec![manager.to_near()], + Some(vec![manager.to_near()]), + ) + .await?; + Ok(context) } diff --git a/integration-tests/src/happy_flow.rs b/integration-tests/src/happy_flow.rs deleted file mode 100644 index 1c2379f..0000000 --- a/integration-tests/src/happy_flow.rs +++ /dev/null @@ -1,12 +0,0 @@ -#![cfg(test)] - -use crate::context::prepare_contract; - -#[tokio::test] -async fn happy_flow() -> anyhow::Result<()> { - println!("👷🏽 Run happy flow test"); - - let _context = prepare_contract().await?; - - Ok(()) -} diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs index 4f4920a..2385d6d 100644 --- a/integration-tests/src/lib.rs +++ b/integration-tests/src/lib.rs @@ -1,3 +1,3 @@ pub mod context; -mod happy_flow; mod lockup_interface; +mod update_contract; diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index 8ae959d..58a6975 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -2,7 +2,7 @@ use anyhow::Result; use async_trait::async_trait; -use integration_utils::integration_contract::IntegrationContract; +use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; use model::{ draft::{Draft, DraftGroupIndex, DraftIndex}, lockup::LockupIndex, @@ -28,7 +28,7 @@ impl LockupApiIntegration for LockupContract<'_> { deposit_whitelist: Vec, draft_operators_whitelist: Option>, ) -> Result<()> { - self.call_contract( + self.call( "new", json!({ "token_account_id": token_account_id, @@ -40,7 +40,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn claim(&mut self, amounts: Option)>>) -> Result { - self.call_contract( + self.call( "claim", json!({ "amounts": amounts @@ -55,7 +55,7 @@ impl LockupApiIntegration for LockupContract<'_> { hashed_schedule: Option, termination_timestamp: Option, ) -> Result { - self.call_contract( + self.call( "terminate", json!({ "lockup_index": lockup_index, @@ -71,7 +71,7 @@ impl LockupApiIntegration for LockupContract<'_> { account_id: Option, account_ids: Option>, ) -> Result<()> { - self.call_contract( + self.call( "add_to_deposit_whitelist", json!({ "account_id": account_id, @@ -86,7 +86,7 @@ impl LockupApiIntegration for LockupContract<'_> { account_id: Option, account_ids: Option>, ) -> Result<()> { - self.call_contract( + self.call( "remove_from_deposit_whitelist", json!({ "account_id": account_id, @@ -97,7 +97,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn add_to_draft_operators_whitelist(&mut self, account_ids: Vec) -> Result<()> { - self.call_contract( + self.call( "add_to_draft_operators_whitelist", json!({ "account_ids": account_ids @@ -107,7 +107,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn remove_from_draft_operators_whitelist(&mut self, account_ids: Vec) -> Result<()> { - self.call_contract( + self.call( "remove_from_draft_operators_whitelist", json!({ "account_ids": account_ids @@ -117,11 +117,11 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn create_draft_group(&mut self) -> Result { - self.call_contract("create_draft_group", ()).await + self.call("create_draft_group", ()).await } async fn create_draft(&mut self, draft: Draft) -> Result { - self.call_contract( + self.call( "create_draft", json!({ "draft": draft @@ -131,7 +131,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn create_drafts(&mut self, drafts: Vec) -> Result> { - self.call_contract( + self.call( "create_drafts", json!({ "drafts": drafts @@ -141,7 +141,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn convert_draft(&mut self, draft_id: DraftIndex) -> Result { - self.call_contract( + self.call( "convert_draft", json!({ "draft_id": draft_id @@ -151,7 +151,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex) -> Result<()> { - self.call_contract( + self.call( "discard_draft_group", json!({ "draft_group_id": draft_group_id @@ -161,7 +161,7 @@ impl LockupApiIntegration for LockupContract<'_> { } async fn delete_drafts(&mut self, draft_ids: Vec) -> Result<()> { - self.call_contract( + self.call( "delete_drafts", json!({ "draft_ids": draft_ids @@ -184,14 +184,21 @@ impl<'a> IntegrationContract<'a> for LockupContract<'a> { self } - fn user_account(&self) -> Account { - self.account - .as_ref() - .expect("Set account with `user` method first") - .clone() + fn user_account(&self) -> Option { + self.account.clone() } fn contract(&self) -> &'a Contract { self.contract } } + +pub trait GetContractAccount { + fn contract_account(&self) -> AccountId; +} + +impl<'a, T: IntegrationContract<'a>> GetContractAccount for T { + fn contract_account(&self) -> AccountId { + self.contract().as_account().to_near() + } +} diff --git a/integration-tests/src/update_contract.rs b/integration-tests/src/update_contract.rs new file mode 100644 index 0000000..31c7210 --- /dev/null +++ b/integration-tests/src/update_contract.rs @@ -0,0 +1,104 @@ +#![cfg(test)] + +use std::{env, fs, str::FromStr}; + +use anyhow::Result; +use base58::ToBase58; +use ed25519_dalek::SigningKey; +use integration_utils::integration_contract::IntegrationContract; +use multisig_integration::Multisig; +use multisig_model::{ + api::{MultisigApiIntegration, MultisigViewIntegration}, + data::{FunctionCallPermission, MultiSigRequest, MultiSigRequestAction}, +}; +use near_sdk::{borsh::BorshDeserialize, PublicKey}; +use near_workspaces::{Account, Contract}; +use rand::rngs::OsRng; + +use crate::{ + context::{prepare_contract, Context, IntegrationContext}, + lockup_interface::GetContractAccount, +}; + +#[tokio::test] +async fn update_contract() -> anyhow::Result<()> { + println!("👷🏽 Run update contract test"); + + let context = prepare_contract().await?; + + assert_eq!(0, context.multisig().get_num_confirmations().await?); + + let signers = [new_pk()?, new_pk()?, new_pk()?]; + + add_keys(context.multisig(), &signers).await?; + + context + .multisig() + .add_request_and_confirm(MultiSigRequest { + receiver_id: context.multisig().contract_account(), + actions: vec![MultiSigRequestAction::SetNumConfirmations { num_confirmations: 2 }], + }) + .await?; + + assert_eq!(2, context.multisig().get_num_confirmations().await?); + + let wasm = load_wasm("../res/hodl_lockup.wasm")?; + + dbg!(context.multisig().contract_account()); + + let update_request = context + .multisig() + .add_request_and_confirm(MultiSigRequest { + receiver_id: context.lockup().contract_account(), + actions: vec![MultiSigRequestAction::DeployContract { code: wasm.into() }], + }) + .await?; + + let confirmations = context.multisig().get_confirmations(update_request).await?; + + assert_eq!(1, confirmations.len()); + + dbg!(&confirmations); + + Ok(()) +} + +async fn add_keys(mut multisig: Multisig<'_>, signers: &[PublicKey]) -> Result<()> { + let multisig_method_names = ["add_request", "add_request_and_confirm", "delete_request", "confirm"]; + + let multisig_keys_actions: Vec<_> = signers + .into_iter() + .map(|key| MultiSigRequestAction::AddKey { + public_key: key.clone(), + permission: FunctionCallPermission { + allowance: None, + receiver_id: multisig.contract_account(), + method_names: multisig_method_names.into_iter().map(Into::into).collect(), + } + .into(), + }) + .collect(); + + multisig + .add_request_and_confirm(MultiSigRequest { + receiver_id: multisig.contract_account(), + actions: multisig_keys_actions, + }) + .await?; + + Ok(()) +} + +fn new_pk() -> Result { + let signing_key = SigningKey::generate(&mut OsRng); + Ok(PublicKey::from_str( + &signing_key.verifying_key().as_bytes().to_vec().to_base58(), + )?) +} + +fn load_wasm(wasm_path: &str) -> Result> { + let current_dir = env::current_dir()?; + let wasm_filepath = fs::canonicalize(current_dir.join(wasm_path))?; + let data = fs::read(wasm_filepath)?; + Ok(data) +} diff --git a/res/MULTISIG-README.md b/res/MULTISIG-README.md new file mode 100644 index 0000000..a18b5ff --- /dev/null +++ b/res/MULTISIG-README.md @@ -0,0 +1,254 @@ +# Basic Multisig contract + +This contract provides: +- Set K out of N multi sig scheme +- Request to sign transfers, function calls, adding and removing keys. +- Any of the access keys can confirm, until the required number of confirmation achieved. + +## Multisig implementation details + +Mutlisig uses set of `FunctionCall` `AccessKey`s as a set of allowed N keys. +When contract is being setup, it should be initialized with set of keys that will be initially managing this account. +All operations going forward will require `K` signatures to be performed. + +### Initialization + +### Request + +There are number of different request types that multisig can confirm and execute: +```rust +/// Lowest level action that can be performed by the multisig contract. +pub enum MultiSigRequestAction { + /// Transfers given amount to receiver. + Transfer { + amount: U128, + }, + /// Create a new account. + CreateAccount, + /// Deploys contract to receiver's account. Can upgrade given contract as well. + DeployContract { code: Base64VecU8 }, + /// Adds key, either new key for multisig or full access key to another account. + AddKey { + public_key: Base58PublicKey, + #[serde(skip_serializing_if = "Option::is_none")] + permission: Option, + }, + /// Deletes key, either one of the keys from multisig or key from another account. + DeleteKey { + public_key: Base58PublicKey, + }, + /// Call function on behalf of this contract. + FunctionCall { + method_name: String, + args: Base64VecU8, + deposit: U128, + gas: U64, + }, + /// Sets number of confirmations required to authorize requests. + /// Can not be bundled with any other actions or transactions. + SetNumConfirmations { + num_confirmations: u32, + }, + /// Sets number of active requests (unconfirmed requests) per access key + /// Default is 12 unconfirmed requests at a time + /// The REQUEST_COOLDOWN for requests is 15min + /// Worst gas attack a malicious keyholder could do is 12 requests every 15min + SetActiveRequestsLimit { + active_requests_limit: u32, + }, +} + +/// Permission for an access key, scoped to receiving account and method names with allowance to add when key is added to accoount +pub struct FunctionCallPermission { + allowance: Option, + receiver_id: AccountId, + method_names: Vec, +} + +// The request the user makes specifying the receiving account and actions they want to execute (1 tx) +pub struct MultiSigRequest { + receiver_id: AccountId, + actions: Vec, +} + +// An internal request wrapped with the signer_pk and added timestamp to determine num_requests_pk and prevent against malicious key holder gas attacks +pub struct MultiSigRequestWithSigner { + request: MultiSigRequest, + signer_pk: PublicKey, + added_timestamp: u64, +} +``` + +### Methods + +```rust +/// Add request for multisig. +pub fn add_request(&mut self, request: MultiSigRequest) -> RequestId { + +/// Add request for multisig and confirm right away with the key that is adding the request. +pub fn add_request_and_confirm(&mut self, request: MultiSigRequest) -> RequestId { + +/// Remove given request and associated confirmations. +pub fn delete_request(&mut self, request_id: RequestId) { + +/// Confirm given request with given signing key. +/// If with this, there has been enough confirmation, a promise with request will be scheduled. +pub fn confirm(&mut self, request_id: RequestId) -> PromiseOrValue { +``` + +### View Methods +```rust +pub fn get_request(&self, request_id: RequestId) -> MultiSigRequest +pub fn get_num_requests_pk(&self, public_key: Base58PublicKey) -> u32 +pub fn list_request_ids(&self) -> Vec +pub fn get_confirmations(&self, request_id: RequestId) -> Vec +pub fn get_num_confirmations(&self) -> u32 +pub fn get_request_nonce(&self) -> u32 +``` + +### State machine + +Per each request, multisig maintains next state machine: +- `add_request` adds new request with empty list of confirmations. +- `add_request_and_confirm` adds new request with 1 confirmation from the adding key. +- `delete_request` deletes request and ends state machine. +- `confirm` either adds new confirmation to list of confirmations or if there is more than `num_confirmations` confirmations with given call - switches to execution of request. `confirm` fails if request is already has been confirmed and already is executing which is determined if `confirmations` contain given `request_id`. +- each step of execution, schedules a promise of given set of actions on `receiver_id` and puts a callback. +- when callback executes, it checks if promise executed successfully: if no - stops executing the request and return failure. If yes - execute next transaction in the request if present. +- when all transactions are executed, remove request from `requests` and with that finish the execution of the request. + +### Gotchas + +User can delete access keys on the multisig such that total number of different access keys will fall below `num_confirmations`, rendering contract locked. +This is due to not having a way to query blockchain for current number of access keys on the account. See discussion here - https://github.com/nearprotocol/NEPs/issues/79. + +## Pre-requisites + +To develop Rust contracts you would need to: +* Install [Rustup](https://rustup.rs/): +```bash +curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh +``` +* Add wasm target to your toolchain: +```bash +rustup target add wasm32-unknown-unknown +``` + +## Building the contract + +```bash +./build.sh +``` + +## Usage + +Before deploying the contract, you need to collect all public keys that it will be initialized with. + +Commands to deploy and initialize a 2 out of 3 multisig contract via `near repl`: + +```javascript +const fs = require('fs'); +const account = await near.account("illia"); +const contractName = "multisig.illia"; +const methodNames = ["add_request","delete_request","confirm"]; +const newArgs = {"num_confirmations": 2}; +const result = account.signAndSendTransaction( + contractName, + [ + nearAPI.transactions.createAccount(), + nearAPI.transactions.transfer("100000000000000000000000000"), + nearAPI.transactions.addKey( + nearAPI.utils.PublicKey.from("Eg2jtsiMrprn7zgKKUk79qM1hWhANsFyE6JSX4txLEuy"), + nearAPI.transactions.functionCallAccessKey(contractName, methodNames, null)), + nearAPI.transactions.addKey( + nearAPI.utils.PublicKey.from("HghiythFFPjVXwc9BLNi8uqFmfQc1DWFrJQ4nE6ANo7R"), + nearAPI.transactions.functionCallAccessKey(contractName, methodNames, null)), + nearAPI.transactions.addKey( + nearAPI.utils.PublicKey.from("2EfbwnQHPBWQKbNczLiVznFghh9qs716QT71zN6L1D95"), + nearAPI.transactions.functionCallAccessKey(contractName, methodNames, null)), + nearAPI.transactions.deployContract(fs.readFileSync("res/multisig.wasm")), + nearAPI.transactions.functionCall("new", Buffer.from(JSON.stringify(newArgs)), 10000000000000, "0"), + ]); +``` + +### Create request + +To create request for transfer funds: +```bash +near call multisig.illia add_request '{"request": {"receiver_id": "illia", "actions": [{"type": "Transfer", "amount": "1000000000000000000000"}]}}' --accountId multisig.illia +``` + +Add another key to multisig: +```bash +near call multisig.illia add_request '{"request": {"receiver_id": "multisig.illia", "actions": [{"type": "AddKey", "public_key": ""}]}}' --accountId multisig.illia +``` + +Change number of confirmations required to approve multisig: +```bash +near call multisig.illia add_request '{"request": {"receiver_id": "multisig.illia", "actions": [{"type": "SetNumConfirmations", "num_confirmations": 2}]}}' --accountId multisig.illia +``` + +Returns the `request_id` of this request that can be used to confirm or see details. + +As a side note, for this to work one of the keys from multisig should be available in your `~/.near-credentials//.json` or use `--useLedgerKey` to sign with Ledger. + +You can also create a way more complex call that chains calling multiple different contracts: + +### Confirm request + +To confirm a specific request: +```bash +near call multisig.illia confirm '{"request_id": 0}' --accountId multisig.illia +``` + +### View requests + +To list all requests ids: +```bash +near view multisig.illia list_request_ids +``` + +To see information about specific request: +```bash +near view multisig.illia get_request '{"request_id": 0}' +``` + +To see confirmations for specific request: +```bash +near view multisig.illia get_confirmations '{"request_id": 0}' +``` + +Total confirmations required for any request: +``` +near view multisig.illia get_num_confirmations +``` + +### Upgrade given multisig with new code + +Create a request that deploys new contract code on the given account. +Be careful about data and requiring migrations (contract updates should include data migrations going forward). + +```javascript +const fs = require('fs'); +const account = await near.account("multisig.illia"); +const contractName = "multisig.illia"; +const requestArgs = {"request": [ + {"receiver_id": "multisig.illia", "actions": [{"type": "DeployContract", "code": fs.readFileSync("res/multisig.wasm")}]} +]}; +const result = account.signAndSendTransaction( + contractName, + [ + nearAPI.transactions.functionCall("add_request", Buffer.from(JSON.stringify(requestArgs)), 10000000000000, "0"), + ]); +``` + +After this, still will need to confirm this with `num_confirmations` you have setup for given contract. + +### Common commands for multisig + +__Create an account__ + +``` +near call illia.near add_request '{"request": {"receiver_id": "new_account.near", "actions": [{"type", "CreateAccount"}, {"type": "Transfer", "amount": "1000000000000000000000"}, {"type": "AddKey", "public_key": ""}]}}' --accountId illia.near +near call illia.near confirm '{"request_id": }' +``` diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm index 1588d612c11add3791e2defd5f23951d75962a8a..3eaca87964101e63b0f4c7c9207e54e7e4c6e62a 100755 GIT binary patch delta 286 zcmX@JU*ybwk%kt=7N!>FEi46XjOV5owy_v9Uf#a6jisK0am#eoein1aozr9cS?pO? zFfcF}O<&m0BF%Vz`d*+2FEi46XjAy48wy_v9UfRC2jisK0aqD!|ein1aUDIRxS?pO? zGB7ZhO<&m0BF*?<`d*+2P!uLknPkmL)1d?_S;FOaW;#GeM_^C9>~49kH6HV6TR U4M09G5`QxqfA#jpi7eiI0I;Dm{r~^~ From 4ed8dbe86a46378ed5fe5eb85e79ee421f136cbb Mon Sep 17 00:00:00 2001 From: Vladas <146100@gmail.com> Date: Thu, 30 Nov 2023 14:01:23 +0200 Subject: [PATCH 07/11] deploying contracts to named accounts --- Cargo.toml | 10 +- contract/src/lib.rs | 4 + contract/src/update.rs | 32 ++++++ integration-tests/src/context.rs | 2 +- integration-tests/src/lockup_interface.rs | 20 +++- integration-tests/src/update_contract.rs | 115 +++++++++++++++++----- model/src/lib.rs | 1 + model/src/update.rs | 9 ++ res/hodl_lockup.wasm | Bin 335820 -> 339397 bytes 9 files changed, 163 insertions(+), 30 deletions(-) create mode 100644 contract/src/update.rs create mode 100644 model/src/update.rs diff --git a/Cargo.toml b/Cargo.toml index 6112400..70a2774 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,10 +26,10 @@ near-sdk = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d near-contract-standards = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } integration-trait = { git = "https://github.com/sweatco/integration-trait.git", rev = "8dd8b63cef5e60448629a8903ea43b642bbf9f45" } -integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "5e381a0188649d84b820bb707af1af553a046a43" } +integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "19a94420eeb9404f906890fc3e6d06111a841e39" } -sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "97b1a04160ca26eedafc09f7f6d31dbdee2f1d5d" } -sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "97b1a04160ca26eedafc09f7f6d31dbdee2f1d5d" } +sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "5e4566ba7e2a46bbd4a979574c4ccd9c6f4fc9db" } +sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "5e4566ba7e2a46bbd4a979574c4ccd9c6f4fc9db" } -multisig-model = { git = "https://github.com/sweatco/multisig", rev = "d3ff7caee6828ada48157f06bfba04f661d7fc7d" } -multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "d3ff7caee6828ada48157f06bfba04f661d7fc7d" } +multisig-model = { git = "https://github.com/sweatco/multisig", rev = "3fbf55f4f4e3be26fddd21b825a07c6632a9f24f" } +multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "3fbf55f4f4e3be26fddd21b825a07c6632a9f24f" } diff --git a/contract/src/lib.rs b/contract/src/lib.rs index 721913f..f9d2c91 100644 --- a/contract/src/lib.rs +++ b/contract/src/lib.rs @@ -30,6 +30,7 @@ pub mod event; pub mod ft_token_receiver; pub mod internal; +mod update; pub mod view; use crate::{ @@ -74,6 +75,8 @@ pub struct Contract { pub drafts: LookupMap, pub next_draft_group_id: DraftGroupIndex, pub draft_groups: UnorderedMap, + + pub miltisig: Option, } #[derive(BorshStorageKey, BorshSerialize)] @@ -131,6 +134,7 @@ impl LockupApi for Contract { drafts: LookupMap::new(StorageKey::Drafts), next_draft_group_id: 0, draft_groups: UnorderedMap::new(StorageKey::DraftGroups), + miltisig: None, } } diff --git a/contract/src/update.rs b/contract/src/update.rs new file mode 100644 index 0000000..a22781e --- /dev/null +++ b/contract/src/update.rs @@ -0,0 +1,32 @@ +use near_sdk::{env, near_bindgen, AccountId, Promise}; + +use crate::{Contract, ContractExt}; + +#[near_bindgen] +impl Contract { + #[payable] + pub fn update_contract(&mut self) -> Promise { + let Some(ref multisig) = self.miltisig else { + env::panic_str("Multisig account is not set. Operation is impossible"); + }; + + assert_eq!( + env::predecessor_account_id(), + *multisig, + "Only multisig account can update the contract" + ); + + env::log_str("Skogo4"); + + let code = env::input().expect("Error: No input"); + + Promise::new(env::current_account_id()) + .deploy_contract(code) + .as_return() + } + + #[private] + pub fn set_multisig(&mut self, multisig: AccountId) { + self.miltisig = multisig.into(); + } +} diff --git a/integration-tests/src/context.rs b/integration-tests/src/context.rs index d41726a..75e3d3b 100644 --- a/integration-tests/src/context.rs +++ b/integration-tests/src/context.rs @@ -12,7 +12,7 @@ use sweat_model::SweatApiIntegration; use crate::lockup_interface::{GetContractAccount, LockupContract, LOCKUP_CONTRACT}; -pub type Context = integration_utils::context::Context; +pub type Context = integration_utils::context::Context; #[async_trait] pub trait IntegrationContext { diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index 58a6975..2558bfd 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -8,9 +8,10 @@ use model::{ lockup::LockupIndex, lockup_api::LockupApiIntegration, schedule::Schedule, + update::UpdateApiIntegration, TimestampSec, WrappedBalance, }; -use near_sdk::{serde_json::json, AccountId}; +use near_sdk::{serde_json::json, AccountId, Promise}; use near_workspaces::{Account, Contract}; pub const LOCKUP_CONTRACT: &str = "hodl_lockup"; @@ -171,6 +172,23 @@ impl LockupApiIntegration for LockupContract<'_> { } } +#[async_trait] +impl<'a> UpdateApiIntegration for LockupContract<'a> { + async fn update_contract(&mut self, _code: Vec) -> Result { + unreachable!("This method should not be called directly") + } + + async fn set_multisig(&mut self, multisig: AccountId) -> Result<()> { + self.call( + "set_multisig", + json!({ + "multisig": multisig + }), + ) + .await + } +} + impl<'a> IntegrationContract<'a> for LockupContract<'a> { fn with_contract(contract: &'a Contract) -> Self { Self { diff --git a/integration-tests/src/update_contract.rs b/integration-tests/src/update_contract.rs index 31c7210..55d6a9f 100644 --- a/integration-tests/src/update_contract.rs +++ b/integration-tests/src/update_contract.rs @@ -3,17 +3,18 @@ use std::{env, fs, str::FromStr}; use anyhow::Result; -use base58::ToBase58; -use ed25519_dalek::SigningKey; use integration_utils::integration_contract::IntegrationContract; +use model::update::UpdateApiIntegration; use multisig_integration::Multisig; use multisig_model::{ api::{MultisigApiIntegration, MultisigViewIntegration}, data::{FunctionCallPermission, MultiSigRequest, MultiSigRequestAction}, }; -use near_sdk::{borsh::BorshDeserialize, PublicKey}; -use near_workspaces::{Account, Contract}; -use rand::rngs::OsRng; +use near_sdk::json_types::U128; +use near_workspaces::{ + types::{AccountDetails, Gas, KeyType, SecretKey}, + Account, AccountId, +}; use crate::{ context::{prepare_contract, Context, IntegrationContext}, @@ -21,14 +22,41 @@ use crate::{ }; #[tokio::test] -async fn update_contract() -> anyhow::Result<()> { +async fn update_contract() -> Result<()> { println!("👷🏽 Run update contract test"); - let context = prepare_contract().await?; + let mut context = prepare_contract().await?; + + let lockup_account_id = context.lockup().contract_account(); + let multisig_account_id = context.multisig().contract_account(); + + dbg!(&multisig_account_id); + dbg!(&lockup_account_id); + + context.lockup().set_multisig(multisig_account_id.clone()).await?; + + dbg!(context.lockup().contract().view_access_keys().await?); assert_eq!(0, context.multisig().get_num_confirmations().await?); - let signers = [new_pk()?, new_pk()?, new_pk()?]; + let signers = [ + SecretKey::from_random(KeyType::ED25519), + SecretKey::from_random(KeyType::ED25519), + SecretKey::from_random(KeyType::ED25519), + ]; + + let signers_accounts: Vec<_> = signers + .iter() + .map(|key| { + Account::from_secret_key( + AccountId::from_str(&multisig_account_id.to_string()).unwrap(), + key.clone(), + &mut context.worker, + ) + }) + .collect(); + + dbg!(&signers_accounts); add_keys(context.multisig(), &signers).await?; @@ -44,13 +72,19 @@ async fn update_contract() -> anyhow::Result<()> { let wasm = load_wasm("../res/hodl_lockup.wasm")?; - dbg!(context.multisig().contract_account()); + update_with_multisig(&mut context, &signers_accounts, &wasm).await?; let update_request = context .multisig() + .with_user(&signers_accounts[0]) .add_request_and_confirm(MultiSigRequest { receiver_id: context.lockup().contract_account(), - actions: vec![MultiSigRequestAction::DeployContract { code: wasm.into() }], + actions: vec![MultiSigRequestAction::FunctionCall { + method_name: "update_contract_kok".to_string(), + args: vec![].into(), //wasm.into(), + deposit: U128(10000000000000000000000000000000000), + gas: Gas::from_tgas(300).as_gas().into(), + }], }) .await?; @@ -58,22 +92,60 @@ async fn update_contract() -> anyhow::Result<()> { assert_eq!(1, confirmations.len()); - dbg!(&confirmations); + let account_view: AccountDetails = signers_accounts[1].view_account().await?; + + dbg!(&account_view); + + let confirmed = context + .multisig() + .with_user(&signers_accounts[1]) + .confirm(update_request) + .await?; + + dbg!(confirmed); + + let confirmations = context.multisig().get_confirmations(update_request).await?; + + assert_eq!(2, confirmations.len()); Ok(()) } -async fn add_keys(mut multisig: Multisig<'_>, signers: &[PublicKey]) -> Result<()> { - let multisig_method_names = ["add_request", "add_request_and_confirm", "delete_request", "confirm"]; +async fn update_with_multisig(context: &mut Context, signers_accounts: &[Account], wasm: &[u8]) -> Result<()> { + let update_request = context + .multisig() + .with_user(&signers_accounts[0]) + .add_request_and_confirm(MultiSigRequest { + receiver_id: context.lockup().contract_account(), + actions: vec![MultiSigRequestAction::DeployContract { + code: wasm.to_vec().into(), + }], + }) + .await?; + + let confirmed = context + .multisig() + .with_user(&signers_accounts[1]) + .confirm(update_request) + .await?; + dbg!(&confirmed); + + Ok(()) +} + +async fn add_keys(mut multisig: Multisig<'_>, signers: &[SecretKey]) -> Result<()> { let multisig_keys_actions: Vec<_> = signers .into_iter() .map(|key| MultiSigRequestAction::AddKey { - public_key: key.clone(), + public_key: to_near_pk(key.public_key()), permission: FunctionCallPermission { - allowance: None, + allowance: U128(18376705513618804849920000).into(), receiver_id: multisig.contract_account(), - method_names: multisig_method_names.into_iter().map(Into::into).collect(), + method_names: ["add_request", "add_request_and_confirm", "delete_request", "confirm"] + .into_iter() + .map(Into::into) + .collect(), } .into(), }) @@ -89,16 +161,13 @@ async fn add_keys(mut multisig: Multisig<'_>, signers: &[PublicKey]) -> Result<( Ok(()) } -fn new_pk() -> Result { - let signing_key = SigningKey::generate(&mut OsRng); - Ok(PublicKey::from_str( - &signing_key.verifying_key().as_bytes().to_vec().to_base58(), - )?) -} - fn load_wasm(wasm_path: &str) -> Result> { let current_dir = env::current_dir()?; let wasm_filepath = fs::canonicalize(current_dir.join(wasm_path))?; let data = fs::read(wasm_filepath)?; Ok(data) } + +fn to_near_pk(key: near_workspaces::types::PublicKey) -> near_sdk::PublicKey { + near_sdk::PublicKey::from_str(&key.to_string()).unwrap() +} diff --git a/model/src/lib.rs b/model/src/lib.rs index ce67aec..582982d 100644 --- a/model/src/lib.rs +++ b/model/src/lib.rs @@ -5,6 +5,7 @@ pub mod lockup; pub mod lockup_api; pub mod schedule; pub mod termination; +pub mod update; pub mod util; pub mod view_api; diff --git a/model/src/update.rs b/model/src/update.rs new file mode 100644 index 0000000..7fad9a2 --- /dev/null +++ b/model/src/update.rs @@ -0,0 +1,9 @@ +use integration_trait::make_integration_version; +use near_sdk::{AccountId, Promise}; + +#[make_integration_version] +pub trait UpdateApi { + #[update] + fn update_contract(&mut self) -> Promise; + fn set_multisig(&mut self, multisig: AccountId); +} diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm index 3eaca87964101e63b0f4c7c9207e54e7e4c6e62a..b729ea9f91e9227ff99e09dd18754bd1c8a4ba54 100755 GIT binary patch delta 94748 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 GbN>(a7?o21 From 812af1f37fb0dd19272a42d73d8d771f5c1a0ecf Mon Sep 17 00:00:00 2001 From: Vladas <146100@gmail.com> Date: Thu, 30 Nov 2023 14:55:56 +0200 Subject: [PATCH 08/11] testing simple update call --- contract/src/update.rs | 10 +++--- integration-tests/src/lib.rs | 4 ++- integration-tests/src/lockup_interface.rs | 20 +++++++++-- ...{update_contract.rs => multisig_update.rs} | 31 +++++++--------- integration-tests/src/simple_update.rs | 34 ++++++++++++++++++ integration-tests/src/utils.rs | 8 +++++ model/src/update.rs | 4 +-- res/hodl_lockup.wasm | Bin 339397 -> 339453 bytes 8 files changed, 82 insertions(+), 29 deletions(-) rename integration-tests/src/{update_contract.rs => multisig_update.rs} (87%) create mode 100644 integration-tests/src/simple_update.rs create mode 100644 integration-tests/src/utils.rs diff --git a/contract/src/update.rs b/contract/src/update.rs index a22781e..1492af8 100644 --- a/contract/src/update.rs +++ b/contract/src/update.rs @@ -1,11 +1,12 @@ -use near_sdk::{env, near_bindgen, AccountId, Promise}; +use model::update::UpdateApi; +use near_sdk::{env, near_bindgen, AccountId, Promise, PromiseOrValue}; use crate::{Contract, ContractExt}; #[near_bindgen] -impl Contract { +impl UpdateApi for Contract { #[payable] - pub fn update_contract(&mut self) -> Promise { + fn update_contract(&mut self) -> PromiseOrValue<()> { let Some(ref multisig) = self.miltisig else { env::panic_str("Multisig account is not set. Operation is impossible"); }; @@ -23,10 +24,11 @@ impl Contract { Promise::new(env::current_account_id()) .deploy_contract(code) .as_return() + .into() } #[private] - pub fn set_multisig(&mut self, multisig: AccountId) { + fn set_multisig(&mut self, multisig: AccountId) { self.miltisig = multisig.into(); } } diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs index 2385d6d..408e849 100644 --- a/integration-tests/src/lib.rs +++ b/integration-tests/src/lib.rs @@ -1,3 +1,5 @@ pub mod context; mod lockup_interface; -mod update_contract; +mod multisig_update; +mod simple_update; +mod utils; diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index 2558bfd..2f3ea16 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -11,7 +11,7 @@ use model::{ update::UpdateApiIntegration, TimestampSec, WrappedBalance, }; -use near_sdk::{serde_json::json, AccountId, Promise}; +use near_sdk::{serde_json::json, AccountId}; use near_workspaces::{Account, Contract}; pub const LOCKUP_CONTRACT: &str = "hodl_lockup"; @@ -174,8 +174,22 @@ impl LockupApiIntegration for LockupContract<'_> { #[async_trait] impl<'a> UpdateApiIntegration for LockupContract<'a> { - async fn update_contract(&mut self, _code: Vec) -> Result { - unreachable!("This method should not be called directly") + async fn update_contract(&mut self, code: Vec) -> Result<()> { + println!("▶️ update_contract"); + + let result = self + .user_account() + .unwrap() + .call(self.contract().id(), "update_contract") + .args(code) + .max_gas() + .transact() + .await? + .into_result()?; + + println!("Result: {result:?}"); + + Ok(()) } async fn set_multisig(&mut self, multisig: AccountId) -> Result<()> { diff --git a/integration-tests/src/update_contract.rs b/integration-tests/src/multisig_update.rs similarity index 87% rename from integration-tests/src/update_contract.rs rename to integration-tests/src/multisig_update.rs index 55d6a9f..80597d0 100644 --- a/integration-tests/src/update_contract.rs +++ b/integration-tests/src/multisig_update.rs @@ -1,6 +1,6 @@ #![cfg(test)] -use std::{env, fs, str::FromStr}; +use std::str::FromStr; use anyhow::Result; use integration_utils::integration_contract::IntegrationContract; @@ -12,13 +12,14 @@ use multisig_model::{ }; use near_sdk::json_types::U128; use near_workspaces::{ - types::{AccountDetails, Gas, KeyType, SecretKey}, + types::{AccountDetails, Gas, KeyType, NearToken, SecretKey}, Account, AccountId, }; use crate::{ context::{prepare_contract, Context, IntegrationContext}, lockup_interface::GetContractAccount, + utils::load_wasm, }; #[tokio::test] @@ -30,13 +31,8 @@ async fn update_contract() -> Result<()> { let lockup_account_id = context.lockup().contract_account(); let multisig_account_id = context.multisig().contract_account(); - dbg!(&multisig_account_id); - dbg!(&lockup_account_id); - context.lockup().set_multisig(multisig_account_id.clone()).await?; - dbg!(context.lockup().contract().view_access_keys().await?); - assert_eq!(0, context.multisig().get_num_confirmations().await?); let signers = [ @@ -56,8 +52,6 @@ async fn update_contract() -> Result<()> { }) .collect(); - dbg!(&signers_accounts); - add_keys(context.multisig(), &signers).await?; context @@ -72,8 +66,14 @@ async fn update_contract() -> Result<()> { let wasm = load_wasm("../res/hodl_lockup.wasm")?; + update_with_method_call(&mut context, &signers_accounts, &wasm).await?; + update_with_multisig(&mut context, &signers_accounts, &wasm).await?; + Ok(()) +} + +async fn update_with_method_call(context: &mut Context, signers_accounts: &[Account], wasm: &[u8]) -> Result<()> { let update_request = context .multisig() .with_user(&signers_accounts[0]) @@ -81,8 +81,8 @@ async fn update_contract() -> Result<()> { receiver_id: context.lockup().contract_account(), actions: vec![MultiSigRequestAction::FunctionCall { method_name: "update_contract_kok".to_string(), - args: vec![].into(), //wasm.into(), - deposit: U128(10000000000000000000000000000000000), + args: wasm.to_vec().into(), + deposit: U128(NearToken::from_near(10).as_yoctonear()), gas: Gas::from_tgas(300).as_gas().into(), }], }) @@ -140,7 +140,7 @@ async fn add_keys(mut multisig: Multisig<'_>, signers: &[SecretKey]) -> Result<( .map(|key| MultiSigRequestAction::AddKey { public_key: to_near_pk(key.public_key()), permission: FunctionCallPermission { - allowance: U128(18376705513618804849920000).into(), + allowance: U128(NearToken::from_near(5).as_yoctonear()).into(), receiver_id: multisig.contract_account(), method_names: ["add_request", "add_request_and_confirm", "delete_request", "confirm"] .into_iter() @@ -161,13 +161,6 @@ async fn add_keys(mut multisig: Multisig<'_>, signers: &[SecretKey]) -> Result<( Ok(()) } -fn load_wasm(wasm_path: &str) -> Result> { - let current_dir = env::current_dir()?; - let wasm_filepath = fs::canonicalize(current_dir.join(wasm_path))?; - let data = fs::read(wasm_filepath)?; - Ok(data) -} - fn to_near_pk(key: near_workspaces::types::PublicKey) -> near_sdk::PublicKey { near_sdk::PublicKey::from_str(&key.to_string()).unwrap() } diff --git a/integration-tests/src/simple_update.rs b/integration-tests/src/simple_update.rs new file mode 100644 index 0000000..707b3dd --- /dev/null +++ b/integration-tests/src/simple_update.rs @@ -0,0 +1,34 @@ +#![cfg(test)] + +use anyhow::Result; +use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; +use model::update::UpdateApiIntegration; + +use crate::{ + context::{prepare_contract, IntegrationContext}, + utils::load_wasm, +}; + +#[tokio::test] +async fn simple_update() -> Result<()> { + let mut context = prepare_contract().await?; + + let bob = context.bob().await?; + let alice = context.alice().await?; + + context.lockup().set_multisig(alice.to_near()).await?; + + let wasm = load_wasm("../res/hodl_lockup.wasm")?; + + context.lockup().with_user(&alice).update_contract(wasm.clone()).await?; + + let Err(error) = context.lockup().with_user(&bob).update_contract(wasm).await else { + panic!("Update with non multisig account should fail"); + }; + + assert!(error + .to_string() + .contains("Only multisig account can update the contract")); + + Ok(()) +} diff --git a/integration-tests/src/utils.rs b/integration-tests/src/utils.rs new file mode 100644 index 0000000..fed5436 --- /dev/null +++ b/integration-tests/src/utils.rs @@ -0,0 +1,8 @@ +use std::{env, fs}; + +pub fn load_wasm(wasm_path: &str) -> anyhow::Result> { + let current_dir = env::current_dir()?; + let wasm_filepath = fs::canonicalize(current_dir.join(wasm_path))?; + let data = fs::read(wasm_filepath)?; + Ok(data) +} diff --git a/model/src/update.rs b/model/src/update.rs index 7fad9a2..3e695c8 100644 --- a/model/src/update.rs +++ b/model/src/update.rs @@ -1,9 +1,9 @@ use integration_trait::make_integration_version; -use near_sdk::{AccountId, Promise}; +use near_sdk::{AccountId, PromiseOrValue}; #[make_integration_version] pub trait UpdateApi { #[update] - fn update_contract(&mut self) -> Promise; + fn update_contract(&mut self) -> PromiseOrValue<()>; fn set_multisig(&mut self, multisig: AccountId); } diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm index b729ea9f91e9227ff99e09dd18754bd1c8a4ba54..23f47a618dfb79b150c4dea0b65d08d206721046 100755 GIT binary patch delta 171 zcmX?lTjcL;kqxVO7{4~J=4oHe!?=Al50g+3d)sr_0V_GGSz#o><4EGktOblZ7ZylmX2s zf#=f`w=oG%zgNe^-Tong35c1ue@I|)v|{9&ZZw-kol$Ih)NB@KMz-zqfV@cn90W8` delta 114 zcmV-&0FD3s+Z4sy6tJoc0lkB(42P=>0k^9R0uoXIm$$xN0%-vjLGS@;AOJz&18NZC zfPjDiA_5HnAOV+PngUjry Date: Thu, 30 Nov 2023 18:12:26 +0200 Subject: [PATCH 09/11] added test for multisig redeploy --- Cargo.toml | 4 +- integration-tests/src/lib.rs | 3 +- integration-tests/src/update/mod.rs | 2 + .../multisig.rs} | 56 +++++++++++++++++-- .../{simple_update.rs => update/simple.rs} | 0 integration-tests/src/utils.rs | 16 ++++++ 6 files changed, 71 insertions(+), 10 deletions(-) create mode 100644 integration-tests/src/update/mod.rs rename integration-tests/src/{multisig_update.rs => update/multisig.rs} (75%) rename integration-tests/src/{simple_update.rs => update/simple.rs} (100%) diff --git a/Cargo.toml b/Cargo.toml index 70a2774..f04aba4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -31,5 +31,5 @@ integration-utils = { git = "https://github.com/sweatco/integration-utils.git", sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "5e4566ba7e2a46bbd4a979574c4ccd9c6f4fc9db" } sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "5e4566ba7e2a46bbd4a979574c4ccd9c6f4fc9db" } -multisig-model = { git = "https://github.com/sweatco/multisig", rev = "3fbf55f4f4e3be26fddd21b825a07c6632a9f24f" } -multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "3fbf55f4f4e3be26fddd21b825a07c6632a9f24f" } +multisig-model = { git = "https://github.com/sweatco/multisig", rev = "0e2b6523177571d659d2a36bf5a5195e3dffae9e" } +multisig-integration = { git = "https://github.com/sweatco/multisig", rev = "0e2b6523177571d659d2a36bf5a5195e3dffae9e" } diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs index 408e849..aaf41ed 100644 --- a/integration-tests/src/lib.rs +++ b/integration-tests/src/lib.rs @@ -1,5 +1,4 @@ pub mod context; mod lockup_interface; -mod multisig_update; -mod simple_update; +mod update; mod utils; diff --git a/integration-tests/src/update/mod.rs b/integration-tests/src/update/mod.rs new file mode 100644 index 0000000..4290168 --- /dev/null +++ b/integration-tests/src/update/mod.rs @@ -0,0 +1,2 @@ +pub mod multisig; +pub mod simple; diff --git a/integration-tests/src/multisig_update.rs b/integration-tests/src/update/multisig.rs similarity index 75% rename from integration-tests/src/multisig_update.rs rename to integration-tests/src/update/multisig.rs index 80597d0..b88ae55 100644 --- a/integration-tests/src/multisig_update.rs +++ b/integration-tests/src/update/multisig.rs @@ -12,14 +12,14 @@ use multisig_model::{ }; use near_sdk::json_types::U128; use near_workspaces::{ - types::{AccountDetails, Gas, KeyType, NearToken, SecretKey}, + types::{Gas, KeyType, NearToken, SecretKey}, Account, AccountId, }; use crate::{ context::{prepare_contract, Context, IntegrationContext}, lockup_interface::GetContractAccount, - utils::load_wasm, + utils::{load_wasm, AccountExtension}, }; #[tokio::test] @@ -28,7 +28,6 @@ async fn update_contract() -> Result<()> { let mut context = prepare_contract().await?; - let lockup_account_id = context.lockup().contract_account(); let multisig_account_id = context.multisig().contract_account(); context.lockup().set_multisig(multisig_account_id.clone()).await?; @@ -64,6 +63,8 @@ async fn update_contract() -> Result<()> { assert_eq!(2, context.multisig().get_num_confirmations().await?); + redeploy_multisig(&mut context, &signers_accounts).await?; + let wasm = load_wasm("../res/hodl_lockup.wasm")?; update_with_method_call(&mut context, &signers_accounts, &wasm).await?; @@ -74,6 +75,10 @@ async fn update_contract() -> Result<()> { } async fn update_with_method_call(context: &mut Context, signers_accounts: &[Account], wasm: &[u8]) -> Result<()> { + println!("👷🏽 update_with_method_call"); + + dbg!(signers_accounts[0].near_balance().await?); + let update_request = context .multisig() .with_user(&signers_accounts[0]) @@ -92,9 +97,7 @@ async fn update_with_method_call(context: &mut Context, signers_accounts: &[Acco assert_eq!(1, confirmations.len()); - let account_view: AccountDetails = signers_accounts[1].view_account().await?; - - dbg!(&account_view); + dbg!(signers_accounts[1].near_balance().await?); let confirmed = context .multisig() @@ -112,6 +115,8 @@ async fn update_with_method_call(context: &mut Context, signers_accounts: &[Acco } async fn update_with_multisig(context: &mut Context, signers_accounts: &[Account], wasm: &[u8]) -> Result<()> { + println!("👷🏽 update_with_multisig"); + let update_request = context .multisig() .with_user(&signers_accounts[0]) @@ -134,6 +139,45 @@ async fn update_with_multisig(context: &mut Context, signers_accounts: &[Account Ok(()) } +async fn redeploy_multisig(context: &mut Context, signers_accounts: &[Account]) -> Result<()> { + println!("👷🏽 redeploy_multisig"); + + let wasm = load_wasm("../res/multisig.wasm")?; + + let request_id = context + .multisig() + .with_user(&signers_accounts[0]) + .add_request(MultiSigRequest { + receiver_id: context.multisig().contract_account(), + actions: vec![MultiSigRequestAction::DeployContract { + code: wasm.to_vec().into(), + }], + }) + .await?; + + assert_eq!([request_id], context.multisig().list_request_ids().await?.as_slice()); + assert_eq!(0, context.multisig().get_confirmations(request_id).await?.len()); + + context + .multisig() + .with_user(&signers_accounts[0]) + .confirm(request_id) + .await?; + + assert_eq!([request_id], context.multisig().list_request_ids().await?.as_slice()); + assert_eq!(1, context.multisig().get_confirmations(request_id).await?.len()); + + context + .multisig() + .with_user(&signers_accounts[1]) + .confirm(request_id) + .await?; + + assert!(context.multisig().list_request_ids().await?.is_empty()); + + Ok(()) +} + async fn add_keys(mut multisig: Multisig<'_>, signers: &[SecretKey]) -> Result<()> { let multisig_keys_actions: Vec<_> = signers .into_iter() diff --git a/integration-tests/src/simple_update.rs b/integration-tests/src/update/simple.rs similarity index 100% rename from integration-tests/src/simple_update.rs rename to integration-tests/src/update/simple.rs diff --git a/integration-tests/src/utils.rs b/integration-tests/src/utils.rs index fed5436..1891200 100644 --- a/integration-tests/src/utils.rs +++ b/integration-tests/src/utils.rs @@ -1,8 +1,24 @@ use std::{env, fs}; +use anyhow::Result; +use async_trait::async_trait; +use near_workspaces::Account; + pub fn load_wasm(wasm_path: &str) -> anyhow::Result> { let current_dir = env::current_dir()?; let wasm_filepath = fs::canonicalize(current_dir.join(wasm_path))?; let data = fs::read(wasm_filepath)?; Ok(data) } + +#[async_trait] +pub trait AccountExtension { + async fn near_balance(&self) -> Result; +} + +#[async_trait] +impl AccountExtension for Account { + async fn near_balance(&self) -> Result { + Ok(self.view_account().await?.balance.as_near()) + } +} From 9e11776a531880ac39ca42bca5a7542359b89831 Mon Sep 17 00:00:00 2001 From: Vasily Styagov Date: Fri, 15 Dec 2023 15:25:03 +0000 Subject: [PATCH 10/11] Introduce lockup recall --- Makefile | 3 + contract/src/callbacks.rs | 13 + contract/src/ft_token_receiver.rs | 32 +- contract/src/integration_test.rs | 16 + contract/src/lib.rs | 68 +++- contract/src/termination.rs | 55 ++++ integration-tests/src/common.rs | 44 +++ integration-tests/src/context.rs | 25 +- integration-tests/src/lib.rs | 2 + integration-tests/src/lockup_interface.rs | 217 +++++++++++-- integration-tests/src/termination.rs | 149 +++++++++ integration-tests/src/utils_interface.rs | 379 ++++++++++++++++++++++ model/src/ft_token_receiver.rs | 19 ++ model/src/lib.rs | 1 + model/src/lockup_api.rs | 8 +- model/src/termination.rs | 31 -- res/hodl_lockup.wasm | Bin 339453 -> 349028 bytes res/utils.wasm | Bin 0 -> 31846 bytes scripts/build-utils.sh | 9 + 19 files changed, 990 insertions(+), 81 deletions(-) create mode 100644 contract/src/integration_test.rs create mode 100644 contract/src/termination.rs create mode 100644 integration-tests/src/common.rs create mode 100644 integration-tests/src/termination.rs create mode 100644 integration-tests/src/utils_interface.rs create mode 100644 model/src/ft_token_receiver.rs create mode 100755 res/utils.wasm create mode 100755 scripts/build-utils.sh diff --git a/Makefile b/Makefile index 47e7391..c75a006 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,9 @@ build-in-docker: ##@Build Build reproducible artifact in Docker. build-integration: ##@Build Build the contract for integration tests. ./scripts/build-integration.sh +build-utils: ##@Build utils contract for integration tests. + ./scripts/build-utils.sh + dock: build-in-docker ##@Build Shorthand for `build-in-docker` deploy: ##@Deploy Deploy the contract to dev account on Testnet. diff --git a/contract/src/callbacks.rs b/contract/src/callbacks.rs index 713f335..086c7a2 100644 --- a/contract/src/callbacks.rs +++ b/contract/src/callbacks.rs @@ -1,6 +1,7 @@ use model::{ draft::{DraftGroup, DraftGroupIndex, DraftIndex}, lockup::{Lockup, LockupClaim, LockupIndex}, + schedule::Schedule, util::current_timestamp_sec, WrappedBalance, }; @@ -16,6 +17,8 @@ pub trait SelfCallbacks { fn after_lockup_termination(&mut self, account_id: AccountId, amount: WrappedBalance) -> WrappedBalance; + fn after_lockup_recall(&mut self, lockup_index: LockupIndex, schedule: Schedule); + fn convert_drafts(&mut self, draft_ids: Vec) -> Vec; } @@ -90,6 +93,16 @@ impl SelfCallbacks for Contract { 0.into() } + #[private] + fn after_lockup_recall(&mut self, lockup_index: LockupIndex, schedule: Schedule) { + if is_promise_success() { + return; + } + + let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); + lockup.schedule = schedule; + } + fn convert_drafts(&mut self, draft_ids: Vec) -> Vec { let mut draft_group_lookup: HashMap = HashMap::new(); let mut events: Vec = vec![]; diff --git a/contract/src/ft_token_receiver.rs b/contract/src/ft_token_receiver.rs index e11aeb7..0204a82 100644 --- a/contract/src/ft_token_receiver.rs +++ b/contract/src/ft_token_receiver.rs @@ -1,27 +1,10 @@ -use model::{draft::DraftGroupIndex, lockup::LockupCreate}; +use model::ft_token_receiver::FtMessage; use crate::{ - emit, env, log, near_bindgen, serde_json, AccountId, Contract, ContractExt, Deserialize, EventKind, - FtLockupCreateLockup, FtLockupFundDraftGroup, FungibleTokenReceiver, PromiseOrValue, Serialize, GAS_EXT_CALL_COST, - GAS_MIN_FOR_CONVERT, U128, + emit, env, log, near_bindgen, serde_json, AccountId, Contract, ContractExt, EventKind, FtLockupCreateLockup, + FtLockupFundDraftGroup, FungibleTokenReceiver, PromiseOrValue, GAS_EXT_CALL_COST, GAS_MIN_FOR_CONVERT, U128, }; -#[derive(Serialize, Deserialize)] -#[serde(crate = "near_sdk::serde")] -pub struct DraftGroupFunding { - pub draft_group_id: DraftGroupIndex, - // use remaining gas to try converting drafts - pub try_convert: Option, -} - -#[derive(Serialize, Deserialize)] -#[serde(crate = "near_sdk::serde")] -#[serde(untagged)] -pub enum FtMessage { - LockupCreate(LockupCreate), - DraftGroupFunding(DraftGroupFunding), -} - #[near_bindgen] impl FungibleTokenReceiver for Contract { fn ft_on_transfer(&mut self, sender_id: AccountId, amount: U128, msg: String) -> PromiseOrValue { @@ -70,11 +53,10 @@ impl FungibleTokenReceiver for Contract { } } } - let event = - FtLockupFundDraftGroup { - id: draft_group_id, - amount: amount.into(), - }; + let event = FtLockupFundDraftGroup { + id: draft_group_id, + amount: amount.into(), + }; emit(EventKind::FtLockupFundDraftGroup(vec![event])); } } diff --git a/contract/src/integration_test.rs b/contract/src/integration_test.rs new file mode 100644 index 0000000..8c8084d --- /dev/null +++ b/contract/src/integration_test.rs @@ -0,0 +1,16 @@ +#![cfg(feature = "integration-test")] + +use near_sdk::{env, near_bindgen, Timestamp}; + +use crate::{Contract, ContractExt}; + +pub trait IntegrationTestMethods { + fn block_timestamp_ms(&self) -> Timestamp; +} + +#[near_bindgen] +impl IntegrationTestMethods for Contract { + fn block_timestamp_ms(&self) -> Timestamp { + env::block_timestamp_ms() + } +} diff --git a/contract/src/lib.rs b/contract/src/lib.rs index f9d2c91..baf32e6 100644 --- a/contract/src/lib.rs +++ b/contract/src/lib.rs @@ -2,7 +2,7 @@ use std::convert::Into; use model::{ draft::{Draft, DraftGroup, DraftGroupIndex, DraftIndex}, - lockup::{Lockup, LockupIndex}, + lockup::{Lockup, LockupIndex, LockupView}, lockup_api::LockupApi, schedule::Schedule, util::current_timestamp_sec, @@ -18,7 +18,9 @@ use near_sdk::{ BorshDeserialize, BorshSerialize, }, collections::{LookupMap, UnorderedMap, UnorderedSet, Vector}, - env, ext_contract, is_promise_success, + env, + env::{log_str, panic_str}, + ext_contract, is_promise_success, json_types::{Base58CryptoHash, U128}, log, near_bindgen, serde::{Deserialize, Serialize}, @@ -30,6 +32,8 @@ pub mod event; pub mod ft_token_receiver; pub mod internal; +mod integration_test; +mod termination; mod update; pub mod view; @@ -42,6 +46,7 @@ use crate::{ FtLockupRemoveFromDraftOperatorsWhitelist, FtLockupTerminateLockup, }, serde_json::json, + termination::TerminableLockup, }; pub const PACKAGE_NAME: &str = env!("CARGO_PKG_NAME"); @@ -52,6 +57,8 @@ const GAS_FOR_AFTER_FT_TRANSFER: Gas = Gas(20_000_000_000_000); const GAS_EXT_CALL_COST: Gas = Gas(10_000_000_000_000); const GAS_MIN_FOR_CONVERT: Gas = Gas(15_000_000_000_000); +const ONE_YEAR_SECONDS: u32 = 365 * 24 * 60 * 60; + #[near_bindgen] #[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] pub struct Contract { @@ -453,10 +460,67 @@ impl LockupApi for Contract { } } } + + #[payable] + fn make_lockup_terminable(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) { + assert_one_yocto(); + self.assert_deposit_whitelist(&env::predecessor_account_id()); + + let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); + lockup.make_terminable(beneficiary_id); + + self.lockups.replace(lockup_index as _, &lockup); + } + + #[payable] + fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> PromiseOrValue<()> { + assert_one_yocto(); + self.assert_deposit_whitelist(&env::predecessor_account_id()); + + let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); + + let now = current_timestamp_sec(); + let cliff_end = lockup.schedule.0.first().expect("Checkpoint is required").timestamp; + + if now >= cliff_end { + panic_str("Cliff already ended"); + } + + let created_at = cliff_end - ONE_YEAR_SECONDS; + log_str(format!("@@ Now {now}, Created at {created_at}").as_str()); + let percent = (now - created_at) as f64 / ONE_YEAR_SECONDS as f64; + log_str(format!("@@ Percent is {percent}").as_str()); + + let initial_schedule = lockup.schedule.clone(); + for checkpoint in lockup.schedule.0.iter_mut() { + checkpoint.balance = (checkpoint.balance as f64 * percent) as _; + } + self.lockups.replace(lockup_index as _, &lockup); + + let balance_to_refund = initial_schedule.total_balance() - lockup.schedule.total_balance(); + + if balance_to_refund > 0 { + Promise::new(self.token_account_id.clone()) + .ft_transfer( + &beneficiary_id.clone(), + balance_to_refund, + Some(format!("Recalled lockup #{lockup_index}")), + ) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_AFTER_FT_TRANSFER) + .after_lockup_recall(lockup_index, initial_schedule), + ) + .into() + } else { + PromiseOrValue::Value(()) + } + } } /// Amount of fungible tokens pub type TokenAmount = u128; + trait FtTransferPromise { fn ft_transfer(self, receiver_id: &AccountId, amount: TokenAmount, memo: Option) -> Promise; } diff --git a/contract/src/termination.rs b/contract/src/termination.rs new file mode 100644 index 0000000..daa8f9d --- /dev/null +++ b/contract/src/termination.rs @@ -0,0 +1,55 @@ +use model::{ + lockup::Lockup, + schedule::Schedule, + termination::{TerminationConfig, VestingConditions}, + TimestampSec, +}; +use near_sdk::{AccountId, Balance, CryptoHash}; + +pub(crate) trait TerminableLockup { + fn terminate( + &mut self, + hashed_schedule: Option, + termination_timestamp: TimestampSec, + ) -> (Balance, AccountId); + + fn make_terminable(&mut self, beneficiary_id: AccountId); +} + +impl TerminableLockup for Lockup { + fn terminate( + &mut self, + hashed_schedule: Option, + termination_timestamp: TimestampSec, + ) -> (Balance, AccountId) { + let termination_config = self.termination_config.take().expect("No termination config"); + let total_balance = self.schedule.total_balance(); + let vested_balance = match &termination_config.vesting_schedule { + VestingConditions::SameAsLockupSchedule => &self.schedule, + VestingConditions::Hash(hash) => { + let schedule = hashed_schedule + .as_ref() + .expect("Revealed schedule required for the termination"); + let hash: CryptoHash = (*hash).into(); + assert_eq!(hash, schedule.hash(), "The revealed schedule hash doesn't match"); + schedule.assert_valid(total_balance); + self.schedule.assert_valid_termination_schedule(schedule); + schedule + } + VestingConditions::Schedule(schedule) => schedule, + } + .unlocked_balance(termination_timestamp); + let unvested_balance = total_balance - vested_balance; + if unvested_balance > 0 { + self.schedule.terminate(vested_balance, termination_timestamp); + } + (unvested_balance, termination_config.beneficiary_id) + } + + fn make_terminable(&mut self, beneficiary_id: AccountId) { + self.termination_config = Some(TerminationConfig { + beneficiary_id, + vesting_schedule: VestingConditions::SameAsLockupSchedule, + }); + } +} diff --git a/integration-tests/src/common.rs b/integration-tests/src/common.rs new file mode 100644 index 0000000..ec62e62 --- /dev/null +++ b/integration-tests/src/common.rs @@ -0,0 +1,44 @@ +use integration_utils::integration_contract::IntegrationContract; +use near_workspaces::result::{ExecutionFailure, ExecutionFinalResult, ExecutionResult, ExecutionSuccess}; +use sweat_model::SweatApiIntegration; + +use crate::context::{prepare_contract, IntegrationContext}; + +pub(crate) trait PanicFinder { + fn has_panic(&self, message: &str) -> bool; +} + +impl PanicFinder for Result { + fn has_panic(&self, message: &str) -> bool { + match self { + Ok(ok) => ok.has_panic(message), + Err(err) => err.has_panic(message), + } + } +} + +impl PanicFinder for ExecutionResult { + fn has_panic(&self, message: &str) -> bool { + self.outcomes() + .into_iter() + .map(|item| match item.clone().into_result() { + Ok(_) => None, + Err(err) => Some(err), + }) + .any(|item| match item { + None => false, + Some(err) => format!("{err:?}").contains(message), + }) + } +} + +pub(crate) fn log_result(result: ExecutionFinalResult) { + let result = result.into_result(); + println!(" 📬 Result: {result:?}"); + + if let Ok(result) = result { + for log in result.logs() { + println!(" 📖 {log}"); + } + } +} diff --git a/integration-tests/src/context.rs b/integration-tests/src/context.rs index 75e3d3b..2d5a1bd 100644 --- a/integration-tests/src/context.rs +++ b/integration-tests/src/context.rs @@ -6,12 +6,15 @@ use integration_utils::{integration_contract::IntegrationContract, misc::ToNear} use model::lockup_api::LockupApiIntegration; use multisig_integration::{Multisig, MULTISIG}; use multisig_model::api::MultisigApiIntegration; +use near_sdk::serde::de::Unexpected::Option; use near_workspaces::Account; use sweat_integration::{SweatFt, FT_CONTRACT}; -use sweat_model::SweatApiIntegration; +use sweat_model::{StorageManagementIntegration, SweatApiIntegration}; use crate::lockup_interface::{GetContractAccount, LockupContract, LOCKUP_CONTRACT}; +const UTILS_CONTRACT: &str = "utils"; + pub type Context = integration_utils::context::Context; #[async_trait] @@ -52,7 +55,11 @@ impl IntegrationContext for Context { } pub(crate) async fn prepare_contract() -> Result { - let mut context = Context::new(&[LOCKUP_CONTRACT, MULTISIG, FT_CONTRACT], "build-integration".into()).await?; + let mut context = Context::new( + &[LOCKUP_CONTRACT, MULTISIG, FT_CONTRACT, UTILS_CONTRACT], + "build-integration".into(), + ) + .await?; let manager = context.manager().await?; @@ -61,6 +68,9 @@ pub(crate) async fn prepare_contract() -> Result { context.multisig().new(0).await?; + // let holding_contract_init_result = context.utils().call("new").max_gas().transact().await?.into_result()?; + // println!("Initialized holding contract: {:?}", holding_contract_init_result); + context .lockup() .new( @@ -70,5 +80,16 @@ pub(crate) async fn prepare_contract() -> Result { ) .await?; + context + .ft_contract() + .with_user(&manager) + .storage_deposit(Some(context.lockup().contract().as_account().to_near()), None) + .await?; + context + .ft_contract() + .with_user(&manager) + .storage_deposit(Some(manager.to_near()), None) + .await?; + Ok(context) } diff --git a/integration-tests/src/lib.rs b/integration-tests/src/lib.rs index aaf41ed..7715ddd 100644 --- a/integration-tests/src/lib.rs +++ b/integration-tests/src/lib.rs @@ -1,4 +1,6 @@ +mod common; pub mod context; mod lockup_interface; +mod termination; mod update; mod utils; diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index 2f3ea16..2d7e389 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -4,15 +4,18 @@ use anyhow::Result; use async_trait::async_trait; use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; use model::{ - draft::{Draft, DraftGroupIndex, DraftIndex}, - lockup::LockupIndex, + draft::{Draft, DraftGroupIndex, DraftGroupView, DraftIndex, DraftView}, + lockup::{LockupIndex, LockupView}, lockup_api::LockupApiIntegration, schedule::Schedule, update::UpdateApiIntegration, + view_api::{LockupViewApi, LockupViewApiIntegration}, TimestampSec, WrappedBalance, }; -use near_sdk::{serde_json::json, AccountId}; -use near_workspaces::{Account, Contract}; +use near_sdk::{json_types::Base58CryptoHash, serde_json::json, AccountId, Timestamp}; +use near_workspaces::{result::ExecutionFinalResult, types::NearToken, Account, Contract}; + +use crate::common::log_result; pub const LOCKUP_CONTRACT: &str = "hodl_lockup"; @@ -21,6 +24,42 @@ pub struct LockupContract<'a> { contract: &'a Contract, } +impl LockupContract<'_> { + pub(crate) async fn terminate_raw( + &mut self, + lockup_index: LockupIndex, + hashed_schedule: Option, + termination_timestamp: Option, + ) -> Result { + println!("▶️ terminate"); + + let result = self + .user_account() + .expect("User account is required") + .call(self.contract.id(), "terminate") + .args_json(json!({ + "lockup_index": lockup_index, + "hashed_schedule": hashed_schedule, + "termination_timestamp": termination_timestamp + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(result) + } + + pub(crate) async fn block_timestamp_ms(&self) -> anyhow::Result { + println!("▶️ block_timestamp_ms"); + let result = self.contract.view("block_timestamp_ms").await?.json()?; + println!(" ✅ {:?}", result); + Ok(result) + } +} + #[async_trait] impl LockupApiIntegration for LockupContract<'_> { async fn new( @@ -56,15 +95,12 @@ impl LockupApiIntegration for LockupContract<'_> { hashed_schedule: Option, termination_timestamp: Option, ) -> Result { - self.call( - "terminate", - json!({ - "lockup_index": lockup_index, - "hashed_schedule": hashed_schedule, - "termination_timestamp": termination_timestamp - }), - ) - .await + let result = self + .terminate_raw(lockup_index, hashed_schedule, termination_timestamp) + .await? + .json()?; + + Ok(result) } async fn add_to_deposit_whitelist( @@ -72,14 +108,23 @@ impl LockupApiIntegration for LockupContract<'_> { account_id: Option, account_ids: Option>, ) -> Result<()> { - self.call( - "add_to_deposit_whitelist", - json!({ + println!("▶️ add_to_deposit_whitelist"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "add_to_deposit_whitelist") + .args_json(json!({ "account_id": account_id, "account_ids": account_ids, - }), - ) - .await + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(result.json()?) } async fn remove_from_deposit_whitelist( @@ -170,6 +215,140 @@ impl LockupApiIntegration for LockupContract<'_> { ) .await } + + async fn make_lockup_terminable(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> Result<()> { + println!("▶️ make_lockup_terminable"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "make_lockup_terminable") + .args_json(json!({ + "beneficiary_id": beneficiary_id, + "lockup_index": lockup_index, + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(()) + } + + async fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> Result<()> { + println!("▶️ recall"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "recall") + .args_json(json!({ + "beneficiary_id": beneficiary_id, + "lockup_index": lockup_index, + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(()) + } +} + +#[async_trait] +impl LockupViewApiIntegration for LockupContract<'_> { + async fn get_token_account_id(&self) -> Result { + todo!() + } + + async fn get_account_lockups(&self, account_id: AccountId) -> Result> { + self.call( + "get_account_lockups", + json!({ + "account_id": account_id + }), + ) + .await + } + + async fn get_lockup(&self, index: LockupIndex) -> Result> { + todo!() + } + + async fn get_lockups(&self, indices: Vec) -> Result> { + todo!() + } + + async fn get_num_lockups(&self) -> Result { + todo!() + } + + async fn get_lockups_paged( + &self, + from_index: Option, + limit: Option, + ) -> Result> { + todo!() + } + + async fn get_deposit_whitelist(&self) -> Result> { + todo!() + } + + async fn get_draft_operators_whitelist(&self) -> Result> { + todo!() + } + + async fn hash_schedule(&self, schedule: Schedule) -> Result { + todo!() + } + + async fn validate_schedule( + &self, + schedule: Schedule, + total_balance: WrappedBalance, + termination_schedule: Option, + ) -> Result<()> { + todo!() + } + + async fn get_next_draft_group_id(&self) -> Result { + todo!() + } + + async fn get_next_draft_id(&self) -> Result { + todo!() + } + + async fn get_num_draft_groups(&self) -> Result { + todo!() + } + + async fn get_draft_group(&self, index: DraftGroupIndex) -> Result> { + todo!() + } + + async fn get_draft_groups_paged( + &self, + from_index: Option, + to_index: Option, + ) -> Result> { + todo!() + } + + async fn get_draft(&self, index: DraftIndex) -> Result> { + todo!() + } + + async fn get_drafts(&self, indices: Vec) -> Result> { + todo!() + } + + async fn get_version(&self) -> Result { + todo!() + } } #[async_trait] diff --git a/integration-tests/src/termination.rs b/integration-tests/src/termination.rs new file mode 100644 index 0000000..be3386b --- /dev/null +++ b/integration-tests/src/termination.rs @@ -0,0 +1,149 @@ +#![cfg(test)] + +use async_trait::async_trait; +use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; +use model::{ + ft_token_receiver::FtMessage, + lockup::LockupCreate, + lockup_api::LockupApiIntegration, + schedule::{Checkpoint, Schedule}, + view_api::LockupViewApiIntegration, +}; +use near_sdk::{json_types::U128, serde_json, serde_json::json, AccountId, Balance, ONE_NEAR}; +use near_workspaces::types::NearToken; +use sweat_integration::SweatFt; +use sweat_model::{FungibleTokenCoreIntegration, StorageManagementIntegration, SweatApiIntegration}; + +use crate::{ + common::{log_result, PanicFinder}, + context::{prepare_contract, IntegrationContext}, +}; + +#[tokio::test] +async fn test_update_termination_config() -> anyhow::Result<()> { + let mut context = prepare_contract().await?; + + let alice = context.alice().await?; + let bob = context.bob().await?; + let manager = context.manager().await?; + + let total_amount: Balance = 1_000_000_000_000_000; + + context + .ft_contract() + .with_user(&manager) + .storage_deposit(Some(alice.to_near()), None) + .await?; + context + .ft_contract() + .with_user(&manager) + .storage_deposit(Some(bob.to_near()), None) + .await?; + + context + .ft_contract() + .with_user(context.ft_contract().contract().as_account()) + .tge_mint(&manager.to_near(), U128(total_amount * 2)) + .await?; + + let now = (context.lockup().block_timestamp_ms().await?) / 1_000; + + let lockup_term = 2 * 60 * 60; + let cliff_end_timestamp = now + 365 * 24 * 60 * 60; + let lockup = FtMessage::LockupCreate(LockupCreate { + account_id: alice.to_near(), + schedule: Schedule(vec![ + Checkpoint { + timestamp: cliff_end_timestamp as _, + balance: 0, + }, + Checkpoint { + timestamp: (cliff_end_timestamp + lockup_term) as _, + balance: total_amount, + }, + ]), + vesting_schedule: None, + }); + let lockup_json = serde_json::to_string(&lockup).unwrap(); + + context + .ft_contract() + .with_user(&manager) + .ft_transfer_call_raw( + context.lockup().contract().as_account().to_near(), + U128(total_amount), + None, + lockup_json, + ) + .await?; + + let alice_lockups = context.lockup().get_account_lockups(alice.to_near()).await?; + let (index, lockup) = alice_lockups.first().expect("Must be a single index"); + let lockup_balance_before_recall = lockup.total_balance; + let manager_balance_before_recall = context.ft_contract().ft_balance_of(manager.to_near()).await?.0; + + context + .lockup() + .with_user(&manager) + .recall(manager.to_near(), *index) + .await?; + + let alice_lockups = context.lockup().get_account_lockups(alice.to_near()).await?; + let lockup_balance_after_recall = alice_lockups.first().expect("Must be a single index").1.total_balance; + let manager_balance_after_recall = context.ft_contract().ft_balance_of(manager.to_near()).await?.0; + + let lockup_balance_diff = lockup_balance_before_recall - lockup_balance_after_recall; + let manager_balance_diff = manager_balance_after_recall - manager_balance_before_recall; + + assert_eq!(lockup_balance_diff, manager_balance_diff); + + Ok(()) +} + +#[async_trait] +trait FtContractHelper { + async fn ft_transfer_call_raw( + &mut self, + receiver_id: AccountId, + amount: U128, + memo: Option, + msg: String, + ) -> anyhow::Result; +} + +#[async_trait] +impl FtContractHelper for SweatFt<'_> { + async fn ft_transfer_call_raw( + &mut self, + receiver_id: AccountId, + amount: U128, + memo: Option, + msg: String, + ) -> anyhow::Result { + println!( + "▶️ Transfer {:?} fungible tokens to {} with message: {}", + amount, receiver_id, msg + ); + + let args = json!({ + "receiver_id": receiver_id, + "amount": amount, + "memo": memo, + "msg": msg.to_string(), + }); + + let result = self + .user_account() + .unwrap() + .call(self.contract().id(), "ft_transfer_call") + .args_json(args) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(result.json()?) + } +} diff --git a/integration-tests/src/utils_interface.rs b/integration-tests/src/utils_interface.rs new file mode 100644 index 0000000..d90eaf7 --- /dev/null +++ b/integration-tests/src/utils_interface.rs @@ -0,0 +1,379 @@ +#![cfg(test)] + +use anyhow::Result; +use async_trait::async_trait; +use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; +use model::{ + draft::{Draft, DraftGroupIndex, DraftGroupView, DraftIndex, DraftView}, + lockup::{LockupIndex, LockupView}, + lockup_api::LockupApiIntegration, + schedule::Schedule, + update::UpdateApiIntegration, + view_api::{LockupViewApi, LockupViewApiIntegration}, + TimestampSec, WrappedBalance, +}; +use near_sdk::{json_types::Base58CryptoHash, serde_json::json, AccountId}; +use near_workspaces::{result::ExecutionFinalResult, types::NearToken, Account, Contract}; + +use crate::common::log_result; + +pub const UTILS_CONTRACT: &str = "utils"; + +pub struct UtilsContract<'a> { + account: Option, + contract: &'a Contract, +} + +#[async_trait] +impl LockupApiIntegration for LockupContract<'_> { + async fn new( + &self, + token_account_id: AccountId, + deposit_whitelist: Vec, + draft_operators_whitelist: Option>, + ) -> Result<()> { + self.call( + "new", + json!({ + "token_account_id": token_account_id, + "deposit_whitelist": deposit_whitelist, + "draft_operators_whitelist": draft_operators_whitelist + }), + ) + .await + } + + async fn claim(&mut self, amounts: Option)>>) -> Result { + self.call( + "claim", + json!({ + "amounts": amounts + }), + ) + .await + } + + async fn terminate( + &mut self, + lockup_index: LockupIndex, + hashed_schedule: Option, + termination_timestamp: Option, + ) -> Result { + let result = self + .terminate_raw(lockup_index, hashed_schedule, termination_timestamp) + .await? + .json()?; + + Ok(result) + } + + async fn add_to_deposit_whitelist( + &mut self, + account_id: Option, + account_ids: Option>, + ) -> Result<()> { + println!("▶️ add_to_deposit_whitelist"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "add_to_deposit_whitelist") + .args_json(json!({ + "account_id": account_id, + "account_ids": account_ids, + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(result.json()?) + } + + async fn remove_from_deposit_whitelist( + &mut self, + account_id: Option, + account_ids: Option>, + ) -> Result<()> { + self.call( + "remove_from_deposit_whitelist", + json!({ + "account_id": account_id, + "account_ids": account_ids, + }), + ) + .await + } + + async fn add_to_draft_operators_whitelist(&mut self, account_ids: Vec) -> Result<()> { + self.call( + "add_to_draft_operators_whitelist", + json!({ + "account_ids": account_ids + }), + ) + .await + } + + async fn remove_from_draft_operators_whitelist(&mut self, account_ids: Vec) -> Result<()> { + self.call( + "remove_from_draft_operators_whitelist", + json!({ + "account_ids": account_ids + }), + ) + .await + } + + async fn create_draft_group(&mut self) -> Result { + self.call("create_draft_group", ()).await + } + + async fn create_draft(&mut self, draft: Draft) -> Result { + self.call( + "create_draft", + json!({ + "draft": draft + }), + ) + .await + } + + async fn create_drafts(&mut self, drafts: Vec) -> Result> { + self.call( + "create_drafts", + json!({ + "drafts": drafts + }), + ) + .await + } + + async fn convert_draft(&mut self, draft_id: DraftIndex) -> Result { + self.call( + "convert_draft", + json!({ + "draft_id": draft_id + }), + ) + .await + } + + async fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex) -> Result<()> { + self.call( + "discard_draft_group", + json!({ + "draft_group_id": draft_group_id + }), + ) + .await + } + + async fn delete_drafts(&mut self, draft_ids: Vec) -> Result<()> { + self.call( + "delete_drafts", + json!({ + "draft_ids": draft_ids + }), + ) + .await + } + + async fn make_lockup_terminable(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> Result<()> { + println!("▶️ make_lockup_terminable"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "make_lockup_terminable") + .args_json(json!({ + "beneficiary_id": beneficiary_id, + "lockup_index": lockup_index, + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(()) + } + + async fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> Result<()> { + println!("▶️ recall"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "recall") + .args_json(json!({ + "beneficiary_id": beneficiary_id, + "lockup_index": lockup_index, + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(()) + } +} + +#[async_trait] +impl LockupViewApiIntegration for LockupContract<'_> { + async fn get_token_account_id(&self) -> Result { + todo!() + } + + async fn get_account_lockups(&self, account_id: AccountId) -> Result> { + self.call( + "get_account_lockups", + json!({ + "account_id": account_id + }), + ) + .await + } + + async fn get_lockup(&self, index: LockupIndex) -> Result> { + todo!() + } + + async fn get_lockups(&self, indices: Vec) -> Result> { + todo!() + } + + async fn get_num_lockups(&self) -> Result { + todo!() + } + + async fn get_lockups_paged( + &self, + from_index: Option, + limit: Option, + ) -> Result> { + todo!() + } + + async fn get_deposit_whitelist(&self) -> Result> { + todo!() + } + + async fn get_draft_operators_whitelist(&self) -> Result> { + todo!() + } + + async fn hash_schedule(&self, schedule: Schedule) -> Result { + todo!() + } + + async fn validate_schedule( + &self, + schedule: Schedule, + total_balance: WrappedBalance, + termination_schedule: Option, + ) -> Result<()> { + todo!() + } + + async fn get_next_draft_group_id(&self) -> Result { + todo!() + } + + async fn get_next_draft_id(&self) -> Result { + todo!() + } + + async fn get_num_draft_groups(&self) -> Result { + todo!() + } + + async fn get_draft_group(&self, index: DraftGroupIndex) -> Result> { + todo!() + } + + async fn get_draft_groups_paged( + &self, + from_index: Option, + to_index: Option, + ) -> Result> { + todo!() + } + + async fn get_draft(&self, index: DraftIndex) -> Result> { + todo!() + } + + async fn get_drafts(&self, indices: Vec) -> Result> { + todo!() + } + + async fn get_version(&self) -> Result { + todo!() + } +} + +#[async_trait] +impl<'a> UpdateApiIntegration for LockupContract<'a> { + async fn update_contract(&mut self, code: Vec) -> Result<()> { + println!("▶️ update_contract"); + + let result = self + .user_account() + .unwrap() + .call(self.contract().id(), "update_contract") + .args(code) + .max_gas() + .transact() + .await? + .into_result()?; + + println!("Result: {result:?}"); + + Ok(()) + } + + async fn set_multisig(&mut self, multisig: AccountId) -> Result<()> { + self.call( + "set_multisig", + json!({ + "multisig": multisig + }), + ) + .await + } +} + +impl<'a> IntegrationContract<'a> for LockupContract<'a> { + fn with_contract(contract: &'a Contract) -> Self { + Self { + contract, + account: None, + } + } + + fn with_user(&mut self, account: &Account) -> &mut Self { + self.account = account.clone().into(); + self + } + + fn user_account(&self) -> Option { + self.account.clone() + } + + fn contract(&self) -> &'a Contract { + self.contract + } +} + +pub trait GetContractAccount { + fn contract_account(&self) -> AccountId; +} + +impl<'a, T: IntegrationContract<'a>> GetContractAccount for T { + fn contract_account(&self) -> AccountId { + self.contract().as_account().to_near() + } +} diff --git a/model/src/ft_token_receiver.rs b/model/src/ft_token_receiver.rs new file mode 100644 index 0000000..1d0d15e --- /dev/null +++ b/model/src/ft_token_receiver.rs @@ -0,0 +1,19 @@ +use near_sdk::serde::{Deserialize, Serialize}; + +use crate::{draft::DraftGroupIndex, lockup::LockupCreate}; + +#[derive(Serialize, Deserialize)] +#[serde(crate = "near_sdk::serde")] +#[serde(untagged)] +pub enum FtMessage { + LockupCreate(LockupCreate), + DraftGroupFunding(DraftGroupFunding), +} + +#[derive(Serialize, Deserialize)] +#[serde(crate = "near_sdk::serde")] +pub struct DraftGroupFunding { + pub draft_group_id: DraftGroupIndex, + // use remaining gas to try converting drafts + pub try_convert: Option, +} diff --git a/model/src/lib.rs b/model/src/lib.rs index 582982d..77b34c3 100644 --- a/model/src/lib.rs +++ b/model/src/lib.rs @@ -1,6 +1,7 @@ use near_sdk::{json_types::U128, AccountId}; pub mod draft; +pub mod ft_token_receiver; pub mod lockup; pub mod lockup_api; pub mod schedule; diff --git a/model/src/lockup_api.rs b/model/src/lockup_api.rs index 899f991..af4f7a3 100644 --- a/model/src/lockup_api.rs +++ b/model/src/lockup_api.rs @@ -1,9 +1,9 @@ use integration_trait::make_integration_version; -use near_sdk::{AccountId, PromiseOrValue}; +use near_sdk::{assert_one_yocto, env, json_types::U128, AccountId, PromiseOrValue}; use crate::{ draft::{Draft, DraftGroupIndex, DraftIndex}, - lockup::LockupIndex, + lockup::{Lockup, LockupIndex}, schedule::Schedule, TimestampSec, WrappedBalance, }; @@ -46,4 +46,8 @@ pub trait LockupApi { fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex); fn delete_drafts(&mut self, draft_ids: Vec); + + fn make_lockup_terminable(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex); + + fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> PromiseOrValue<()>; } diff --git a/model/src/termination.rs b/model/src/termination.rs index a002a16..71e5c32 100644 --- a/model/src/termination.rs +++ b/model/src/termination.rs @@ -24,34 +24,3 @@ pub struct TerminationConfig { /// An optional vesting schedule pub vesting_schedule: VestingConditions, } - -impl Lockup { - pub fn terminate( - &mut self, - hashed_schedule: Option, - termination_timestamp: TimestampSec, - ) -> (Balance, AccountId) { - let termination_config = self.termination_config.take().expect("No termination config"); - let total_balance = self.schedule.total_balance(); - let vested_balance = match &termination_config.vesting_schedule { - VestingConditions::SameAsLockupSchedule => &self.schedule, - VestingConditions::Hash(hash) => { - let schedule = hashed_schedule - .as_ref() - .expect("Revealed schedule required for the termination"); - let hash: CryptoHash = (*hash).into(); - assert_eq!(hash, schedule.hash(), "The revealed schedule hash doesn't match"); - schedule.assert_valid(total_balance); - self.schedule.assert_valid_termination_schedule(schedule); - schedule - } - VestingConditions::Schedule(schedule) => schedule, - } - .unlocked_balance(termination_timestamp); - let unvested_balance = total_balance - vested_balance; - if unvested_balance > 0 { - self.schedule.terminate(vested_balance, termination_timestamp); - } - (unvested_balance, termination_config.beneficiary_id) - } -} diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm index 23f47a618dfb79b150c4dea0b65d08d206721046..9c7e9a08a9aaf9eb6f4a8390fa72d7062df28fb2 100755 GIT binary patch delta 89348 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 Building utils contract" + +rustup target add wasm32-unknown-unknown +cargo build -p utils --target wasm32-unknown-unknown --profile=contract + +cp ./target/wasm32-unknown-unknown/contract/utils.wasm res/utils.wasm From 1d843ba7a7952c73f29ae4228e13a5c36ad1d005 Mon Sep 17 00:00:00 2001 From: Vasily Styagov Date: Mon, 18 Dec 2023 23:02:07 +0100 Subject: [PATCH 11/11] Add 'revoke' method and 'adjustable' marker --- contract/src/adjust.rs | 131 ++++++++++++++++++++++ contract/src/callbacks.rs | 13 --- contract/src/lib.rs | 78 +++---------- contract/src/migration.rs | 37 ++++++ contract/src/update.rs | 4 +- integration-tests/src/lockup_interface.rs | 28 ++++- integration-tests/src/termination.rs | 91 ++++++++++++++- model/src/adjust_api.rs | 11 ++ model/src/lib.rs | 2 + model/src/lockup.rs | 7 ++ model/src/lockup_api.rs | 6 +- model/src/migration.rs | 58 ++++++++++ model/src/schedule.rs | 1 - model/src/termination.rs | 4 +- res/hodl_lockup.wasm | Bin 349028 -> 370973 bytes 15 files changed, 383 insertions(+), 88 deletions(-) create mode 100644 contract/src/adjust.rs create mode 100644 contract/src/migration.rs create mode 100644 model/src/adjust_api.rs create mode 100644 model/src/migration.rs diff --git a/contract/src/adjust.rs b/contract/src/adjust.rs new file mode 100644 index 0000000..5c7efcb --- /dev/null +++ b/contract/src/adjust.rs @@ -0,0 +1,131 @@ +use near_sdk::require; + +use crate::*; + +#[near_bindgen] +impl AdjustApi for Contract { + #[payable] + fn adjust(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> PromiseOrValue<()> { + assert_one_yocto(); + self.assert_deposit_whitelist(&env::predecessor_account_id()); + + let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); + require!(lockup.is_adjustable, "Lockup is not adjustable"); + + let now = current_timestamp_sec(); + let cliff_end = lockup.schedule.0.first().expect("Checkpoint is required").timestamp; + + if now >= cliff_end { + panic_str("Cliff already ended"); + } + + let created_at = cliff_end - ONE_YEAR_SECONDS; + let percent = (now - created_at) as f64 / ONE_YEAR_SECONDS as f64; + + let initial_schedule = lockup.schedule.clone(); + for checkpoint in lockup.schedule.0.iter_mut() { + checkpoint.balance = (checkpoint.balance as f64 * percent) as _; + } + self.lockups.replace(lockup_index as _, &lockup); + + let balance_to_refund = initial_schedule.total_balance() - lockup.schedule.total_balance(); + + if balance_to_refund > 0 { + Promise::new(self.token_account_id.clone()) + .ft_transfer( + &beneficiary_id.clone(), + balance_to_refund, + Some(format!("Adjusted lockup #{lockup_index}")), + ) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_AFTER_FT_TRANSFER) + .after_lockup_adjustment(lockup_index, initial_schedule), + ) + .into() + } else { + PromiseOrValue::Value(()) + } + } + + #[payable] + fn revoke(&mut self, beneficiary_id: AccountId, lockup_indices: Vec) -> PromiseOrValue<()> { + assert_one_yocto(); + self.assert_deposit_whitelist(&env::predecessor_account_id()); + + let mut total_balance = 0; + let mut original_schedules: Vec<(LockupIndex, Schedule)> = vec![]; + + for index in lockup_indices.clone() { + let mut lockup = self.lockups.get(index as _).expect("Lockup not found"); + require!(lockup.is_adjustable, "Lockup is not adjustable"); + + total_balance += lockup.schedule.total_balance(); + + original_schedules.push((index, lockup.schedule)); + lockup.schedule = Schedule::new_unlocked(0); + self.lockups.replace(index as _, &lockup); + } + + if total_balance > 0 { + Promise::new(self.token_account_id.clone()) + .ft_transfer( + &beneficiary_id.clone(), + total_balance, + Some(format!("Revoke for lockups {lockup_indices:?}")), + ) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_AFTER_FT_TRANSFER) + .after_lockups_revoke(original_schedules), + ) + .into() + } else { + PromiseOrValue::Value(()) + } + } +} + +#[ext_contract(ext_self)] +pub trait AdjustmentSelfCallbacks { + fn after_lockup_adjustment(&mut self, lockup_index: LockupIndex, schedule: Schedule); + + fn after_lockups_revoke(&mut self, original_schedules: Vec<(LockupIndex, Schedule)>); +} + +#[near_bindgen] +impl AdjustmentSelfCallbacks for Contract { + #[private] + fn after_lockup_adjustment(&mut self, lockup_index: LockupIndex, schedule: Schedule) { + if is_promise_success() { + return; + } + + let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); + lockup.schedule = schedule; + } + + fn after_lockups_revoke(&mut self, original_schedules: Vec<(LockupIndex, Schedule)>) { + if is_promise_success() { + for (index, _) in original_schedules { + let mut lockup = self.lockups.get(index as _).expect("Lockup not found"); + + let mut account_lockups = self + .account_lockups + .get(&lockup.account_id) + .expect("Account lockups not found"); + account_lockups.remove(&index); + self.account_lockups.insert(&lockup.account_id, &account_lockups); + + lockup.account_id = env::current_account_id(); + self.lockups.replace(index as _, &lockup); + } + } else { + for (index, schedule) in original_schedules { + let mut lockup = self.lockups.get(index as _).expect("Lockup not found"); + lockup.schedule = schedule; + self.lockups.replace(index as _, &lockup); + } + } + } +} diff --git a/contract/src/callbacks.rs b/contract/src/callbacks.rs index 086c7a2..713f335 100644 --- a/contract/src/callbacks.rs +++ b/contract/src/callbacks.rs @@ -1,7 +1,6 @@ use model::{ draft::{DraftGroup, DraftGroupIndex, DraftIndex}, lockup::{Lockup, LockupClaim, LockupIndex}, - schedule::Schedule, util::current_timestamp_sec, WrappedBalance, }; @@ -17,8 +16,6 @@ pub trait SelfCallbacks { fn after_lockup_termination(&mut self, account_id: AccountId, amount: WrappedBalance) -> WrappedBalance; - fn after_lockup_recall(&mut self, lockup_index: LockupIndex, schedule: Schedule); - fn convert_drafts(&mut self, draft_ids: Vec) -> Vec; } @@ -93,16 +90,6 @@ impl SelfCallbacks for Contract { 0.into() } - #[private] - fn after_lockup_recall(&mut self, lockup_index: LockupIndex, schedule: Schedule) { - if is_promise_success() { - return; - } - - let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); - lockup.schedule = schedule; - } - fn convert_drafts(&mut self, draft_ids: Vec) -> Vec { let mut draft_group_lookup: HashMap = HashMap::new(); let mut events: Vec = vec![]; diff --git a/contract/src/lib.rs b/contract/src/lib.rs index baf32e6..1874e95 100644 --- a/contract/src/lib.rs +++ b/contract/src/lib.rs @@ -1,8 +1,9 @@ use std::convert::Into; use model::{ + adjust_api::AdjustApi, draft::{Draft, DraftGroup, DraftGroupIndex, DraftIndex}, - lockup::{Lockup, LockupIndex, LockupView}, + lockup::{Lockup, LockupIndex}, lockup_api::LockupApi, schedule::Schedule, util::current_timestamp_sec, @@ -19,24 +20,14 @@ use near_sdk::{ }, collections::{LookupMap, UnorderedMap, UnorderedSet, Vector}, env, - env::{log_str, panic_str}, + env::panic_str, ext_contract, is_promise_success, json_types::{Base58CryptoHash, U128}, log, near_bindgen, - serde::{Deserialize, Serialize}, + serde::Serialize, serde_json, AccountId, BorshStorageKey, Gas, PanicOnDefault, Promise, PromiseOrValue, }; -pub mod callbacks; -pub mod event; -pub mod ft_token_receiver; -pub mod internal; - -mod integration_test; -mod termination; -mod update; -pub mod view; - use crate::{ callbacks::{ext_self, SelfCallbacks}, event::{ @@ -49,6 +40,18 @@ use crate::{ termination::TerminableLockup, }; +pub mod callbacks; +pub mod event; +pub mod ft_token_receiver; +pub mod internal; + +mod adjust; +mod integration_test; +mod migration; +mod termination; +mod update; +pub mod view; + pub const PACKAGE_NAME: &str = env!("CARGO_PKG_NAME"); pub const VERSION: &str = env!("CARGO_PKG_VERSION"); @@ -83,7 +86,7 @@ pub struct Contract { pub next_draft_group_id: DraftGroupIndex, pub draft_groups: UnorderedMap, - pub miltisig: Option, + pub multisig: Option, } #[derive(BorshStorageKey, BorshSerialize)] @@ -141,7 +144,7 @@ impl LockupApi for Contract { drafts: LookupMap::new(StorageKey::Drafts), next_draft_group_id: 0, draft_groups: UnorderedMap::new(StorageKey::DraftGroups), - miltisig: None, + multisig: None, } } @@ -471,51 +474,6 @@ impl LockupApi for Contract { self.lockups.replace(lockup_index as _, &lockup); } - - #[payable] - fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> PromiseOrValue<()> { - assert_one_yocto(); - self.assert_deposit_whitelist(&env::predecessor_account_id()); - - let mut lockup = self.lockups.get(lockup_index as _).expect("Lockup not found"); - - let now = current_timestamp_sec(); - let cliff_end = lockup.schedule.0.first().expect("Checkpoint is required").timestamp; - - if now >= cliff_end { - panic_str("Cliff already ended"); - } - - let created_at = cliff_end - ONE_YEAR_SECONDS; - log_str(format!("@@ Now {now}, Created at {created_at}").as_str()); - let percent = (now - created_at) as f64 / ONE_YEAR_SECONDS as f64; - log_str(format!("@@ Percent is {percent}").as_str()); - - let initial_schedule = lockup.schedule.clone(); - for checkpoint in lockup.schedule.0.iter_mut() { - checkpoint.balance = (checkpoint.balance as f64 * percent) as _; - } - self.lockups.replace(lockup_index as _, &lockup); - - let balance_to_refund = initial_schedule.total_balance() - lockup.schedule.total_balance(); - - if balance_to_refund > 0 { - Promise::new(self.token_account_id.clone()) - .ft_transfer( - &beneficiary_id.clone(), - balance_to_refund, - Some(format!("Recalled lockup #{lockup_index}")), - ) - .then( - ext_self::ext(env::current_account_id()) - .with_static_gas(GAS_FOR_AFTER_FT_TRANSFER) - .after_lockup_recall(lockup_index, initial_schedule), - ) - .into() - } else { - PromiseOrValue::Value(()) - } - } } /// Amount of fungible tokens diff --git a/contract/src/migration.rs b/contract/src/migration.rs new file mode 100644 index 0000000..34f2ef5 --- /dev/null +++ b/contract/src/migration.rs @@ -0,0 +1,37 @@ +use model::migration::ContractDeprecated; + +use crate::*; + +#[near_bindgen] +impl Contract { + #[private] + #[init(ignore_state)] + pub fn migrate(adjustable_account_ids: HashSet) -> Self { + let old_state: ContractDeprecated = env::state_read().expect("Failed to read old state"); + let mut lockups: Vector = Vector::new(StorageKey::Lockups); + + for lockup in old_state.lockups.iter() { + let modified_lockup = Lockup { + account_id: lockup.account_id.clone(), + schedule: lockup.schedule.clone(), + claimed_balance: lockup.claimed_balance, + termination_config: lockup.termination_config.clone(), + is_adjustable: adjustable_account_ids.contains(&lockup.account_id), + }; + lockups.push(&modified_lockup); + } + + Contract { + token_account_id: old_state.token_account_id, + lockups, + account_lockups: old_state.account_lockups, + deposit_whitelist: old_state.deposit_whitelist, + draft_operators_whitelist: old_state.draft_operators_whitelist, + next_draft_id: old_state.next_draft_id, + drafts: old_state.drafts, + next_draft_group_id: old_state.next_draft_group_id, + draft_groups: old_state.draft_groups, + multisig: old_state.multisig, + } + } +} diff --git a/contract/src/update.rs b/contract/src/update.rs index 1492af8..c85c1ae 100644 --- a/contract/src/update.rs +++ b/contract/src/update.rs @@ -7,7 +7,7 @@ use crate::{Contract, ContractExt}; impl UpdateApi for Contract { #[payable] fn update_contract(&mut self) -> PromiseOrValue<()> { - let Some(ref multisig) = self.miltisig else { + let Some(ref multisig) = self.multisig else { env::panic_str("Multisig account is not set. Operation is impossible"); }; @@ -29,6 +29,6 @@ impl UpdateApi for Contract { #[private] fn set_multisig(&mut self, multisig: AccountId) { - self.miltisig = multisig.into(); + self.multisig = multisig.into(); } } diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index 2d7e389..8f3bc90 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -4,6 +4,7 @@ use anyhow::Result; use async_trait::async_trait; use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; use model::{ + adjust_api::AdjustApiIntegration, draft::{Draft, DraftGroupIndex, DraftGroupView, DraftIndex, DraftView}, lockup::{LockupIndex, LockupView}, lockup_api::LockupApiIntegration, @@ -235,13 +236,16 @@ impl LockupApiIntegration for LockupContract<'_> { Ok(()) } +} - async fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> Result<()> { +#[async_trait] +impl AdjustApiIntegration for LockupContract<'_> { + async fn adjust(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> Result<()> { println!("▶️ recall"); let account = self.user_account().expect("User account is required"); let result = account - .call(self.contract.id(), "recall") + .call(self.contract.id(), "adjust") .args_json(json!({ "beneficiary_id": beneficiary_id, "lockup_index": lockup_index, @@ -255,6 +259,26 @@ impl LockupApiIntegration for LockupContract<'_> { Ok(()) } + + async fn revoke(&mut self, beneficiary_id: AccountId, lockup_indices: Vec) -> Result<()> { + println!("▶️ revoke"); + + let account = self.user_account().expect("User account is required"); + let result = account + .call(self.contract.id(), "revoke") + .args_json(json!({ + "beneficiary_id": beneficiary_id, + "lockup_indices": lockup_indices, + })) + .max_gas() + .deposit(NearToken::from_yoctonear(1)) + .transact() + .await?; + + log_result(result.clone()); + + Ok(()) + } } #[async_trait] diff --git a/integration-tests/src/termination.rs b/integration-tests/src/termination.rs index be3386b..96d650d 100644 --- a/integration-tests/src/termination.rs +++ b/integration-tests/src/termination.rs @@ -3,24 +3,25 @@ use async_trait::async_trait; use integration_utils::{integration_contract::IntegrationContract, misc::ToNear}; use model::{ + adjust_api::AdjustApiIntegration, ft_token_receiver::FtMessage, lockup::LockupCreate, lockup_api::LockupApiIntegration, schedule::{Checkpoint, Schedule}, view_api::LockupViewApiIntegration, }; -use near_sdk::{json_types::U128, serde_json, serde_json::json, AccountId, Balance, ONE_NEAR}; +use near_sdk::{json_types::U128, serde_json, serde_json::json, AccountId, Balance}; use near_workspaces::types::NearToken; use sweat_integration::SweatFt; use sweat_model::{FungibleTokenCoreIntegration, StorageManagementIntegration, SweatApiIntegration}; use crate::{ - common::{log_result, PanicFinder}, + common::log_result, context::{prepare_contract, IntegrationContext}, }; #[tokio::test] -async fn test_update_termination_config() -> anyhow::Result<()> { +async fn test_adjust() -> anyhow::Result<()> { let mut context = prepare_contract().await?; let alice = context.alice().await?; @@ -63,6 +64,7 @@ async fn test_update_termination_config() -> anyhow::Result<()> { }, ]), vesting_schedule: None, + is_adjustable: true, }); let lockup_json = serde_json::to_string(&lockup).unwrap(); @@ -85,7 +87,7 @@ async fn test_update_termination_config() -> anyhow::Result<()> { context .lockup() .with_user(&manager) - .recall(manager.to_near(), *index) + .adjust(manager.to_near(), *index) .await?; let alice_lockups = context.lockup().get_account_lockups(alice.to_near()).await?; @@ -100,6 +102,87 @@ async fn test_update_termination_config() -> anyhow::Result<()> { Ok(()) } +#[tokio::test] +async fn test_revoke() -> anyhow::Result<()> { + let mut context = prepare_contract().await?; + + let alice = context.alice().await?; + let bob = context.bob().await?; + let manager = context.manager().await?; + + let total_amount: Balance = 1_000_000_000_000_000; + + context + .ft_contract() + .with_user(&manager) + .storage_deposit(Some(alice.to_near()), None) + .await?; + context + .ft_contract() + .with_user(&manager) + .storage_deposit(Some(bob.to_near()), None) + .await?; + + context + .ft_contract() + .with_user(context.ft_contract().contract().as_account()) + .tge_mint(&manager.to_near(), U128(total_amount * 2)) + .await?; + + let now = (context.lockup().block_timestamp_ms().await?) / 1_000; + + let lockup_term = 2 * 60 * 60; + let cliff_end_timestamp = now + 365 * 24 * 60 * 60; + let lockup = FtMessage::LockupCreate(LockupCreate { + account_id: alice.to_near(), + schedule: Schedule(vec![ + Checkpoint { + timestamp: cliff_end_timestamp as _, + balance: 0, + }, + Checkpoint { + timestamp: (cliff_end_timestamp + lockup_term) as _, + balance: total_amount, + }, + ]), + vesting_schedule: None, + is_adjustable: true, + }); + let lockup_json = serde_json::to_string(&lockup).unwrap(); + + context + .ft_contract() + .with_user(&manager) + .ft_transfer_call_raw( + context.lockup().contract().as_account().to_near(), + U128(total_amount), + None, + lockup_json, + ) + .await?; + + let alice_lockups = context.lockup().get_account_lockups(alice.to_near()).await?; + let (index, _) = alice_lockups.first().expect("Must be a single index"); + let manager_balance_before_recall = context.ft_contract().ft_balance_of(manager.to_near()).await?.0; + + context + .lockup() + .with_user(&manager) + .revoke(manager.to_near(), vec![*index]) + .await?; + + let alice_lockups = context.lockup().get_account_lockups(alice.to_near()).await?; + assert!(alice_lockups.is_empty()); + + let manager_balance_after_recall = context.ft_contract().ft_balance_of(manager.to_near()).await?.0; + + let manager_balance_diff = manager_balance_after_recall - manager_balance_before_recall; + + assert_eq!(total_amount, manager_balance_diff); + + Ok(()) +} + #[async_trait] trait FtContractHelper { async fn ft_transfer_call_raw( diff --git a/model/src/adjust_api.rs b/model/src/adjust_api.rs new file mode 100644 index 0000000..722b0ac --- /dev/null +++ b/model/src/adjust_api.rs @@ -0,0 +1,11 @@ +use integration_trait::make_integration_version; +use near_sdk::{AccountId, PromiseOrValue}; + +use crate::lockup::LockupIndex; + +#[make_integration_version] +pub trait AdjustApi { + fn adjust(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> PromiseOrValue<()>; + + fn revoke(&mut self, beneficiary_id: AccountId, lockup_indices: Vec) -> PromiseOrValue<()>; +} diff --git a/model/src/lib.rs b/model/src/lib.rs index 77b34c3..3ee46bf 100644 --- a/model/src/lib.rs +++ b/model/src/lib.rs @@ -1,9 +1,11 @@ use near_sdk::{json_types::U128, AccountId}; +pub mod adjust_api; pub mod draft; pub mod ft_token_receiver; pub mod lockup; pub mod lockup_api; +pub mod migration; pub mod schedule; pub mod termination; pub mod update; diff --git a/model/src/lockup.rs b/model/src/lockup.rs index 3bf69d1..2d9c612 100644 --- a/model/src/lockup.rs +++ b/model/src/lockup.rs @@ -32,6 +32,7 @@ pub struct Lockup { pub claimed_balance: Balance, /// An optional configuration that allows vesting/lockup termination. pub termination_config: Option, + pub is_adjustable: bool, } impl Lockup { @@ -41,6 +42,7 @@ impl Lockup { schedule: Schedule::new_unlocked_since(total_balance, timestamp), claimed_balance: 0, termination_config: None, + is_adjustable: false, } } @@ -97,6 +99,7 @@ pub struct LockupCreate { pub account_id: AccountId, pub schedule: Schedule, pub vesting_schedule: Option, + pub is_adjustable: bool, } #[cfg(not(target_arch = "wasm32"))] @@ -106,6 +109,7 @@ impl LockupCreate { account_id, schedule: Schedule::new_unlocked(total_balance), vesting_schedule: None, + is_adjustable: false, } } } @@ -121,6 +125,7 @@ impl LockupCreate { beneficiary_id: payer_id.clone(), vesting_schedule, }), + is_adjustable: self.is_adjustable, } } } @@ -155,6 +160,7 @@ impl From for LockupView { schedule, claimed_balance, termination_config, + is_adjustable: _, } = lockup; Self { account_id, @@ -194,6 +200,7 @@ impl From for LockupCreateView { account_id, schedule, vesting_schedule, + is_adjustable: _, } = lockup_create; Self { account_id, diff --git a/model/src/lockup_api.rs b/model/src/lockup_api.rs index af4f7a3..b64cef4 100644 --- a/model/src/lockup_api.rs +++ b/model/src/lockup_api.rs @@ -1,9 +1,9 @@ use integration_trait::make_integration_version; -use near_sdk::{assert_one_yocto, env, json_types::U128, AccountId, PromiseOrValue}; +use near_sdk::{AccountId, PromiseOrValue}; use crate::{ draft::{Draft, DraftGroupIndex, DraftIndex}, - lockup::{Lockup, LockupIndex}, + lockup::LockupIndex, schedule::Schedule, TimestampSec, WrappedBalance, }; @@ -48,6 +48,4 @@ pub trait LockupApi { fn delete_drafts(&mut self, draft_ids: Vec); fn make_lockup_terminable(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex); - - fn recall(&mut self, beneficiary_id: AccountId, lockup_index: LockupIndex) -> PromiseOrValue<()>; } diff --git a/model/src/migration.rs b/model/src/migration.rs new file mode 100644 index 0000000..25c6384 --- /dev/null +++ b/model/src/migration.rs @@ -0,0 +1,58 @@ +use std::collections::HashSet; + +use near_sdk::{ + borsh::{self, BorshDeserialize, BorshSerialize}, + collections::{LookupMap, UnorderedMap, UnorderedSet, Vector}, + near_bindgen, + serde::Deserialize, + AccountId, Balance, PanicOnDefault, +}; + +use crate::{ + draft::{Draft, DraftGroup, DraftGroupIndex, DraftIndex}, + lockup::LockupIndex, + schedule::Schedule, + termination::TerminationConfig, + util::u128_dec_format, + TokenAccountId, +}; + +#[near_bindgen] +#[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] +pub struct ContractDeprecated { + pub token_account_id: TokenAccountId, + + pub lockups: Vector, + + pub account_lockups: LookupMap>, + + /// account ids that can perform all actions: + /// - manage deposit_whitelist + /// - manage drafts, draft_groups + /// - create lockups, terminate lockups, fund draft_groups + pub deposit_whitelist: UnorderedSet, + + /// account ids that can perform all actions on drafts: + /// - manage drafts, draft_groups + pub draft_operators_whitelist: UnorderedSet, + + pub next_draft_id: DraftIndex, + pub drafts: LookupMap, + pub next_draft_group_id: DraftGroupIndex, + pub draft_groups: UnorderedMap, + + pub multisig: Option, +} + +#[derive(BorshDeserialize, BorshSerialize, Deserialize, Debug, PartialEq, Clone)] +#[serde(crate = "near_sdk::serde")] +pub struct LockupDeprecated { + pub account_id: AccountId, + pub schedule: Schedule, + + #[serde(default)] + #[serde(with = "u128_dec_format")] + pub claimed_balance: Balance, + /// An optional configuration that allows vesting/lockup termination. + pub termination_config: Option, +} diff --git a/model/src/schedule.rs b/model/src/schedule.rs index 9ed23b8..bf8d10f 100644 --- a/model/src/schedule.rs +++ b/model/src/schedule.rs @@ -50,7 +50,6 @@ impl Schedule { ]) } - #[cfg(not(target_arch = "wasm32"))] pub fn new_unlocked(total_balance: Balance) -> Self { Self::new_unlocked_since(total_balance, 1) } diff --git a/model/src/termination.rs b/model/src/termination.rs index 71e5c32..1c3ce8b 100644 --- a/model/src/termination.rs +++ b/model/src/termination.rs @@ -2,10 +2,10 @@ use near_sdk::{ borsh::{self, BorshDeserialize, BorshSerialize}, json_types::Base58CryptoHash, serde::{Deserialize, Serialize}, - AccountId, Balance, CryptoHash, + AccountId, }; -use crate::{lockup::Lockup, schedule::Schedule, TimestampSec}; +use crate::schedule::Schedule; #[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone, Debug, PartialEq)] #[serde(crate = "near_sdk::serde")] diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm index 9c7e9a08a9aaf9eb6f4a8390fa72d7062df28fb2..c1cc5fddb0452823f8e459d718fa279ed6ef0b51 100755 GIT binary patch delta 154031 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 delta 133686 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 qz*|Q;DfnuaAg6Vl!F$wT-#}u&)Y7BZP8Q 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

}>D+QRgL{YdiP1U(mU}^UBVS&bH3goj>lp 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 diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm new file mode 100755 index 0000000000000000000000000000000000000000..025d8abc4888242f77e79becd1ec313a91b09e80 GIT binary patch literal 336492 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 y1Y4d*)z+w7W9zo|7V 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 T)q&SCEo3LLqeSO~+QNSUD1zxm literal 0 HcmV?d00001 diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 0000000..71326c3 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +channel = "1.74" diff --git a/scripts/build-in-docker.sh b/scripts/build-in-docker.sh new file mode 100755 index 0000000..ab42129 --- /dev/null +++ b/scripts/build-in-docker.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -eox pipefail + +HOST_DIR="${HOST_DIR:-$(pwd)}" + +docker run \ + --rm \ + --mount type=bind,source=$HOST_DIR,target=/host \ + --cap-add=SYS_PTRACE \ + --security-opt seccomp=unconfined \ + -t nearprotocol/contract-builder:latest-amd64 \ + /bin/bash -c "cd /host && make build" diff --git a/scripts/build-integration.sh b/scripts/build-integration.sh new file mode 100755 index 0000000..e979dc0 --- /dev/null +++ b/scripts/build-integration.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -eox pipefail + +echo ">> Building contract" + +rustup target add wasm32-unknown-unknown +cargo build -p hodl-lockup --target wasm32-unknown-unknown --profile=contract --features integration-test + +cp ./target/wasm32-unknown-unknown/contract/hodl_lockup.wasm res/hodl_lockup.wasm diff --git a/scripts/build.sh b/scripts/build.sh new file mode 100755 index 0000000..a8c61cb --- /dev/null +++ b/scripts/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -eox pipefail + +echo ">> Building contract" + +rustup target add wasm32-unknown-unknown +cargo build -p hodl-lockup --target wasm32-unknown-unknown --profile=contract + +cp ./target/wasm32-unknown-unknown/contract/hodl_lockup.wasm res/hodl_lockup.wasm diff --git a/scripts/deploy.sh b/scripts/deploy.sh new file mode 100755 index 0000000..5dff159 --- /dev/null +++ b/scripts/deploy.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +source dev.env + +make build + +if [ $? -ne 0 ]; then + echo ">> Error building contract" + exit 1 +fi + +echo ">> Deploying contract" + +near dev-deploy --wasmFile "res/sweat_jar.wasm" --initFunction "init" --initArgs "{\"token_account_id\": \"$TOKEN_ACCOUNT_ID\", \"manager\": \"$ADMIN_ACCOUNT_ID\", \"fee_account_id\": \"$FEE_ACCOUNT_ID\"}" diff --git a/scripts/lint.sh b/scripts/lint.sh new file mode 100755 index 0000000..77c7a73 --- /dev/null +++ b/scripts/lint.sh @@ -0,0 +1,19 @@ +#!/bin/bash +set -eox pipefail + +rustup component add clippy + +cargo clippy --all \ + -- \ + \ + -W clippy::all \ + -W clippy::pedantic \ + \ + -A clippy::module_name_repetitions \ + -A clippy::needless-pass-by-value \ + -A clippy::must-use-candidate \ + -A clippy::missing-panics-doc \ + -A clippy::missing-errors-doc \ + -A clippy::doc-markdown \ + \ + -D warnings diff --git a/scripts/measure.sh b/scripts/measure.sh new file mode 100755 index 0000000..1a5a9ea --- /dev/null +++ b/scripts/measure.sh @@ -0,0 +1,12 @@ +#!/bin/bash +set -eox pipefail + +if [ -z ${MEASURE_JARS_COUNT+x} ]; then echo "MEASURE_JARS_COUNT is unset"; else echo "MEASURE_JARS_COUNT is set to '$MEASURE_JARS_COUNT'"; fi +if [ -z ${MEASURE_JARS_MULTIPLIER+x} ]; then echo "MEASURE_JARS_MULTIPLIER is unset"; else echo "MEASURE_JARS_MULTIPLIER is set to '$MEASURE_JARS_MULTIPLIER'"; fi + +rm -f measured.txt + +cargo test --package integration-tests --lib measure::stake::measure_stake_total_test -- --ignored --exact +cargo test --package integration-tests --lib measure::restake::measure_restake_total_test -- --ignored --exact +cargo test --package integration-tests --lib measure::claim::measure_claim_total_test -- --ignored --exact +cargo test --package integration-tests --lib measure::withdraw::measure_withdraw_total_test -- --ignored --exact diff --git a/scripts/mutation.sh b/scripts/mutation.sh new file mode 100755 index 0000000..8bfc63b --- /dev/null +++ b/scripts/mutation.sh @@ -0,0 +1,7 @@ +#!/bin/bash +set -eox pipefail + +echo ">> Mutation tests" + +cargo install --locked cargo-mutants +cargo mutants From de54745286a7c26409e214cdfb967aaaf60287c8 Mon Sep 17 00:00:00 2001 From: Vladas Zakrevskis <146100@gmail.com> Date: Mon, 27 Nov 2023 16:41:16 +0200 Subject: [PATCH 03/11] updated contract --- contract/src/callbacks.rs | 117 +++++--- contract/src/draft.rs | 107 -------- contract/src/event.rs | 434 ++++++++++++++---------------- contract/src/ft_token_receiver.rs | 48 ++-- contract/src/internal.rs | 41 +-- contract/src/lib.rs | 432 ++++++++++++----------------- contract/src/lockup.rs | 127 --------- contract/src/schedule.rs | 183 ------------- contract/src/termination.rs | 60 ----- contract/src/util.rs | 30 --- contract/src/view.rs | 196 +++----------- 11 files changed, 515 insertions(+), 1260 deletions(-) delete mode 100644 contract/src/draft.rs delete mode 100644 contract/src/lockup.rs delete mode 100644 contract/src/schedule.rs delete mode 100644 contract/src/termination.rs delete mode 100644 contract/src/util.rs diff --git a/contract/src/callbacks.rs b/contract/src/callbacks.rs index 3e16169..713f335 100644 --- a/contract/src/callbacks.rs +++ b/contract/src/callbacks.rs @@ -1,27 +1,28 @@ -use crate::*; - -trait SelfCallbacks { - fn after_ft_transfer( - &mut self, - account_id: AccountId, - lockup_claims: Vec, - ) -> WrappedBalance; - - fn after_lockup_termination( - &mut self, - account_id: AccountId, - amount: WrappedBalance, - ) -> WrappedBalance; +use model::{ + draft::{DraftGroup, DraftGroupIndex, DraftIndex}, + lockup::{Lockup, LockupClaim, LockupIndex}, + util::current_timestamp_sec, + WrappedBalance, +}; + +use crate::{ + emit, ext_contract, is_promise_success, log, near_bindgen, AccountId, Contract, ContractExt, EventKind, + FtLockupClaimLockup, FtLockupCreateLockup, HashMap, Into, +}; + +#[ext_contract(ext_self)] +pub trait SelfCallbacks { + fn after_ft_transfer(&mut self, account_id: AccountId, lockup_claims: Vec) -> WrappedBalance; + + fn after_lockup_termination(&mut self, account_id: AccountId, amount: WrappedBalance) -> WrappedBalance; + + fn convert_drafts(&mut self, draft_ids: Vec) -> Vec; } #[near_bindgen] impl SelfCallbacks for Contract { #[private] - fn after_ft_transfer( - &mut self, - account_id: AccountId, - lockup_claims: Vec, - ) -> WrappedBalance { + fn after_ft_transfer(&mut self, account_id: AccountId, lockup_claims: Vec) -> WrappedBalance { let promise_success = is_promise_success(); let mut total_balance = 0; if promise_success { @@ -56,17 +57,15 @@ impl SelfCallbacks for Contract { let mut modified = false; let mut indices = self.account_lockups.get(&account_id).unwrap_or_default(); for LockupClaim { - index, - claim_amount, - .. + index, claim_amount, .. } in lockup_claims { if indices.insert(index) { modified = true; } - let mut lockup = self.lockups.get(index as _).unwrap(); + let mut lockup = self.lockups.get(u64::from(index)).unwrap(); lockup.claimed_balance -= claim_amount.0; - self.lockups.replace(index as _, &lockup); + self.lockups.replace(u64::from(index), &lockup); } if modified { @@ -77,22 +76,60 @@ impl SelfCallbacks for Contract { } #[private] - fn after_lockup_termination( - &mut self, - account_id: AccountId, - amount: WrappedBalance, - ) -> WrappedBalance { - let promise_success = is_promise_success(); - if !promise_success { - log!("Lockup termination transfer has failed."); - // There is no internal balance, so instead we create a new lockup. - let lockup = Lockup::new_unlocked_since(account_id, amount.0, current_timestamp_sec()); - let lockup_index = self.internal_add_lockup(&lockup); - let event: FtLockupCreateLockup = (lockup_index, lockup, None).into(); - emit(EventKind::FtLockupCreateLockup(vec![event])); - 0.into() - } else { - amount + fn after_lockup_termination(&mut self, account_id: AccountId, amount: WrappedBalance) -> WrappedBalance { + if is_promise_success() { + return amount; } + + log!("Lockup termination transfer has failed."); + // There is no internal balance, so instead we create a new lockup. + let lockup = Lockup::new_unlocked_since(account_id, amount.0, current_timestamp_sec()); + let lockup_index = self.internal_add_lockup(&lockup); + let event: FtLockupCreateLockup = (lockup_index, lockup, None).into(); + emit(EventKind::FtLockupCreateLockup(vec![event])); + 0.into() + } + + fn convert_drafts(&mut self, draft_ids: Vec) -> Vec { + let mut draft_group_lookup: HashMap = HashMap::new(); + let mut events: Vec = vec![]; + let lockup_ids: Vec = draft_ids + .iter() + .map(|draft_id| { + let draft = self.drafts.remove(&draft_id as _).expect("draft not found"); + let draft_group = draft_group_lookup.entry(draft.draft_group_id).or_insert_with(|| { + self.draft_groups + .get(&draft.draft_group_id as _) + .expect("draft group not found") + }); + draft_group.assert_can_convert_draft(); + let payer_id = draft_group.payer_id.as_mut().expect("expected present payer_id"); + + assert!(draft_group.draft_indices.remove(draft_id), "Invariant"); + let amount = draft.total_balance(); + assert!(draft_group.total_amount >= amount, "Invariant"); + draft_group.total_amount -= amount; + + let lockup = draft.lockup_create.into_lockup(payer_id); + let index = self.internal_add_lockup(&lockup); + + let event: FtLockupCreateLockup = (index, lockup, Some(*draft_id)).into(); + events.push(event); + + index + }) + .collect(); + + emit(EventKind::FtLockupCreateLockup(events)); + + for (draft_group_id, draft_group) in &draft_group_lookup { + if draft_group.draft_indices.is_empty() { + self.draft_groups.remove(&draft_group_id as _); + } else { + self.draft_groups.insert(&draft_group_id as _, draft_group); + } + } + + lockup_ids } } diff --git a/contract/src/draft.rs b/contract/src/draft.rs deleted file mode 100644 index faa2a0b..0000000 --- a/contract/src/draft.rs +++ /dev/null @@ -1,107 +0,0 @@ -use crate::*; - -pub type DraftGroupIndex = u32; -pub type DraftIndex = u32; - -#[derive(BorshDeserialize, BorshSerialize, Deserialize, Serialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Clone))] -pub struct Draft { - pub draft_group_id: DraftGroupIndex, - pub lockup_create: LockupCreate, -} - -impl Draft { - pub fn total_balance(&self) -> Balance { - self.lockup_create.schedule.total_balance() - } - - pub fn assert_new_valid(&self) { - let amount = self.lockup_create.schedule.total_balance(); - // any valid near account id will work fine here as a parameter - self.lockup_create - .into_lockup(&env::predecessor_account_id().try_into().unwrap()) - .assert_new_valid(amount); - } -} - -#[derive(BorshDeserialize, BorshSerialize)] -pub struct DraftGroup { - pub total_amount: Balance, - pub payer_id: Option, - pub draft_indices: HashSet, - pub discarded: bool, -} - -impl DraftGroup { - pub fn new() -> Self { - Self { - total_amount: 0, - payer_id: None, - draft_indices: HashSet::new(), - discarded: false, - } - } - - pub fn assert_can_add_draft(&self) { - assert!( - !self.discarded, - "cannot add draft, draft group is discarded" - ); - assert!( - self.payer_id.is_none(), - "cannot add draft, group already funded" - ); - } - - pub fn assert_can_convert_draft(&self) { - assert!( - !self.discarded, - "cannot convert draft, draft group is discarded" - ); - assert!( - self.payer_id.is_some(), - "cannot convert draft from not funded group" - ); - } - - pub fn assert_can_fund(&self) { - assert!( - !self.discarded, - "cannot fund draft, draft group is discarded" - ); - assert!(self.payer_id.is_none(), "draft group already funded"); - } - - pub fn fund(&mut self, payer_id: &ValidAccountId) { - self.assert_can_fund(); - self.payer_id = Some(payer_id.clone()); - } - - pub fn assert_can_discard(&mut self) { - assert!( - !self.discarded, - "cannot discard, draft group already discarded" - ); - assert!( - self.payer_id.is_none(), - "cannot discard, draft group already funded" - ); - } - - pub fn discard(&mut self) { - self.assert_can_discard(); - self.discarded = true; - } - - pub fn assert_can_delete_draft(&mut self) { - assert!( - self.discarded, - "cannot delete draft, draft group is not discarded" - ); - assert!( - self.payer_id.is_none(), - "cannot delete draft, draft group already funded" - ); - } -} diff --git a/contract/src/event.rs b/contract/src/event.rs index e122d32..bbc4a4f 100644 --- a/contract/src/event.rs +++ b/contract/src/event.rs @@ -1,4 +1,10 @@ -use crate::*; +use model::{ + draft::{Draft, DraftGroupIndex, DraftIndex}, + lockup::{Lockup, LockupIndex}, + TimestampSec, WrappedBalance, +}; + +use crate::{log, serde_json, AccountId, Into, Serialize, PACKAGE_NAME, VERSION}; /// Events to be generated by the contract according to NEP-297 @@ -49,7 +55,7 @@ impl From<(LockupIndex, Lockup, Option)> for FtLockupCreateLockup { let (id, lockup, draft_id) = tuple; Self { id, - account_id: lockup.account_id.to_string(), + account_id: lockup.account_id, balance: lockup.schedule.total_balance().into(), start: lockup.schedule.0.first().unwrap().timestamp, finish: lockup.schedule.0.last().unwrap().timestamp, @@ -98,7 +104,7 @@ impl From<(DraftIndex, Draft)> for FtLockupCreateDraft { Self { id, draft_group_id: draft.draft_group_id, - account_id: draft.lockup_create.account_id.to_string(), + account_id: draft.lockup_create.account_id, balance: draft.lockup_create.schedule.total_balance().into(), start: draft.lockup_create.schedule.0.first().unwrap().timestamp, finish: draft.lockup_create.schedule.0.last().unwrap().timestamp, @@ -130,6 +136,7 @@ pub struct FtLockupDeleteDraft { #[serde(crate = "near_sdk::serde")] #[serde(tag = "event", content = "data")] #[serde(rename_all = "snake_case")] +#[allow(clippy::enum_variant_names)] pub(crate) enum EventKind { FtLockupNew(FtLockupNew), FtLockupAddToDepositWhitelist(FtLockupAddToDepositWhitelist), @@ -186,33 +193,42 @@ pub(crate) fn emit(event_kind: EventKind) { #[cfg(test)] mod tests { + use model::{lockup::LockupCreate, schedule::Schedule}; + use near_sdk::{ + serde_json::{from_str, json, Value}, + test_utils, + test_utils::VMContextBuilder, + testing_env, VMContext, + }; + use super::*; - use near_sdk::serde_json::json; - use near_sdk::test_utils::VMContextBuilder; - use near_sdk::{test_utils, testing_env, MockedBlockchain, VMContext}; pub fn get_context() -> VMContext { VMContextBuilder::new().is_view(true).build() } + fn compare_json(log: &str, value: Value) { + let log = log.strip_prefix("EVENT_JSON:").unwrap(); + let json: Value = from_str(log).unwrap(); + + assert_eq!(json, value); + } + #[test] fn test_ft_lockup_init() { testing_env!(get_context()); - let token_account_id = "token.near".into(); + let token_account_id = AccountId::new_unchecked("token.near".to_string()); emit(EventKind::FtLockupNew(FtLockupNew { token_account_id })); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_new", - "data": { "token_account_id": "token.near" }, - }) - .to_string(), - ) + + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_new", + "data": { "token_account_id": "token.near" }, + }), ); } @@ -222,23 +238,17 @@ mod tests { let account_ids: Vec = vec!["alice.near", "bob.near"] .iter() - .map(|&x| x.into()) + .map(|s| AccountId::new_unchecked(s.to_string())) .collect(); - emit(EventKind::FtLockupAddToDepositWhitelist( - FtLockupAddToDepositWhitelist { account_ids }, - )); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_add_to_deposit_whitelist", - "data": { "account_ids": ["alice.near", "bob.near"] }, - }) - .to_string(), - ) + emit(EventKind::FtLockupAddToDepositWhitelist(FtLockupAddToDepositWhitelist { account_ids })); + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_add_to_deposit_whitelist", + "data": { "account_ids": ["alice.near", "bob.near"] }, + }), ); } @@ -248,23 +258,17 @@ mod tests { let account_ids: Vec = vec!["alice.near", "bob.near"] .iter() - .map(|&x| x.into()) + .map(|s| AccountId::new_unchecked(s.to_string())) .collect(); - emit(EventKind::FtLockupRemoveFromDepositWhitelist( - FtLockupRemoveFromDepositWhitelist { account_ids }, - )); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_remove_from_deposit_whitelist", - "data": { "account_ids": ["alice.near", "bob.near"] }, - }) - .to_string(), - ) + emit(EventKind::FtLockupRemoveFromDepositWhitelist(FtLockupRemoveFromDepositWhitelist { account_ids })); + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_remove_from_deposit_whitelist", + "data": { "account_ids": ["alice.near", "bob.near"] }, + }), ); } @@ -274,23 +278,17 @@ mod tests { let account_ids: Vec = vec!["alice.near", "bob.near"] .iter() - .map(|&x| x.into()) + .map(|s| AccountId::new_unchecked(s.to_string())) .collect(); - emit(EventKind::FtLockupAddToDraftOperatorsWhitelist( - FtLockupAddToDraftOperatorsWhitelist { account_ids }, - )); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_add_to_draft_operators_whitelist", - "data": { "account_ids": ["alice.near", "bob.near"] }, - }) - .to_string(), - ) + emit(EventKind::FtLockupAddToDraftOperatorsWhitelist(FtLockupAddToDraftOperatorsWhitelist { account_ids })); + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_add_to_draft_operators_whitelist", + "data": { "account_ids": ["alice.near", "bob.near"] }, + }), ); } @@ -300,23 +298,19 @@ mod tests { let account_ids: Vec = vec!["alice.near", "bob.near"] .iter() - .map(|&x| x.into()) + .map(|s| AccountId::new_unchecked(s.to_string())) .collect(); emit(EventKind::FtLockupRemoveFromDraftOperatorsWhitelist( FtLockupRemoveFromDraftOperatorsWhitelist { account_ids }, )); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_remove_from_draft_operators_whitelist", - "data": { "account_ids": ["alice.near", "bob.near"] }, - }) - .to_string(), - ) + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_remove_from_draft_operators_whitelist", + "data": { "account_ids": ["alice.near", "bob.near"] }, + }), ); } @@ -324,7 +318,7 @@ mod tests { fn test_ft_lockup_create_lockup() { testing_env!(get_context()); - let account_id: AccountId = "alice.near".into(); + let account_id = AccountId::new_unchecked("alice.near".to_string()); let balance: WrappedBalance = 10_000.into(); let timestamp: TimestampSec = 1_500_000_000; let lockup = Lockup::new_unlocked_since(account_id.clone(), balance.0, timestamp); @@ -334,28 +328,24 @@ mod tests { let event: FtLockupCreateLockup = (100, lockup, Some(draft_id)).into(); emit(EventKind::FtLockupCreateLockup(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_create_lockup", - "data": [ - { - "id": lockup_id, - "account_id": account_id, - "balance": balance, - "start": timestamp - 1, - "finish": timestamp, - "terminatable": false, - "draft_id": Some(draft_id), - }, - ], - }) - .to_string(), - ) + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_create_lockup", + "data": [ + { + "id": lockup_id, + "account_id": account_id, + "balance": balance, + "start": timestamp - 1, + "finish": timestamp, + "terminatable": false, + "draft_id": Some(draft_id), + }, + ], + }), ); } @@ -366,29 +356,22 @@ mod tests { let lockup_id: LockupIndex = 100; let amount: WrappedBalance = 10000.into(); - let event = FtLockupClaimLockup { - id: lockup_id, - amount, - }; + let event = FtLockupClaimLockup { id: lockup_id, amount }; emit(EventKind::FtLockupClaimLockup(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_claim_lockup", - "data": [ - { - "id": lockup_id, - "amount": amount, - }, - ], - }) - .to_string(), - ) + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_claim_lockup", + "data": [ + { + "id": lockup_id, + "amount": amount, + }, + ], + }), ); } @@ -407,24 +390,20 @@ mod tests { }; emit(EventKind::FtLockupTerminateLockup(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_terminate_lockup", - "data": [ - { - "id": lockup_id, - "termination_timestamp": termination_timestamp, - "unvested_balance": unvested_balance, - }, - ], - }) - .to_string(), - ) + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_terminate_lockup", + "data": [ + { + "id": lockup_id, + "termination_timestamp": termination_timestamp, + "unvested_balance": unvested_balance, + }, + ], + }), ); } @@ -437,22 +416,18 @@ mod tests { let event = FtLockupCreateDraftGroup { id: draft_group_id }; emit(EventKind::FtLockupCreateDraftGroup(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_create_draft_group", - "data": [ - { - "id": draft_group_id, - }, - ], - }) - .to_string(), - ) + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_create_draft_group", + "data": [ + { + "id": draft_group_id, + }, + ], + }), ); } @@ -460,14 +435,15 @@ mod tests { fn test_ft_lockup_create_draft() { testing_env!(get_context()); - let account_id: ValidAccountId = "alice.near".try_into().unwrap(); + let account_id = AccountId::new_unchecked("alice.near".to_string()); let balance: WrappedBalance = 10_000.into(); let timestamp: TimestampSec = 1_500_000_000; - let lockup_create = LockupCreate { - account_id: account_id.clone(), - schedule: Schedule::new_unlocked_since(balance.0, timestamp), - vesting_schedule: None, - }; + let lockup_create = + LockupCreate { + account_id: account_id.clone(), + schedule: Schedule::new_unlocked_since(balance.0, timestamp), + vesting_schedule: None, + }; let draft_group_id: DraftGroupIndex = 123; let draft = Draft { draft_group_id, @@ -478,28 +454,25 @@ mod tests { let event: FtLockupCreateDraft = (draft_id, draft).into(); emit(EventKind::FtLockupCreateDraft(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_create_draft", - "data": [ - { - "id": draft_id, - "draft_group_id": draft_group_id, - "account_id": account_id.to_string(), - "balance": balance, - "start": timestamp - 1, - "finish": timestamp, - "terminatable": false, - }, - ], - }) - .to_string(), - ) + + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_create_draft", + "data": [ + { + "id": draft_id, + "draft_group_id": draft_group_id, + "account_id": account_id.to_string(), + "balance": balance, + "start": timestamp - 1, + "finish": timestamp, + "terminatable": false, + }, + ], + }), ); } @@ -516,23 +489,20 @@ mod tests { }; emit(EventKind::FtLockupFundDraftGroup(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_fund_draft_group", - "data": [ - { - "id": draft_group_id, - "amount": amount, - }, - ], - }) - .to_string(), - ) + + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_fund_draft_group", + "data": [ + { + "id": draft_group_id, + "amount": amount, + }, + ], + }), ); } @@ -545,22 +515,19 @@ mod tests { let event = FtLockupDiscardDraftGroup { id: draft_group_id }; emit(EventKind::FtLockupDiscardDraftGroup(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_discard_draft_group", - "data": [ - { - "id": draft_group_id, - }, - ], - }) - .to_string(), - ) + + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_discard_draft_group", + "data": [ + { + "id": draft_group_id, + }, + ], + }), ); } @@ -573,22 +540,19 @@ mod tests { let event = FtLockupDeleteDraft { id: draft_id }; emit(EventKind::FtLockupDeleteDraft(vec![event])); - assert_eq!( - test_utils::get_logs()[0], - format!( - r"EVENT_JSON:{}", - json!({ - "standard": PACKAGE_NAME, - "version": VERSION, - "event": "ft_lockup_delete_draft", - "data": [ - { - "id": draft_id, - }, - ], - }) - .to_string(), - ) + + compare_json( + &test_utils::get_logs()[0], + json!({ + "standard": PACKAGE_NAME, + "version": VERSION, + "event": "ft_lockup_delete_draft", + "data": [ + { + "id": draft_id, + }, + ], + }), ); } } diff --git a/contract/src/ft_token_receiver.rs b/contract/src/ft_token_receiver.rs index ff2c63d..e11aeb7 100644 --- a/contract/src/ft_token_receiver.rs +++ b/contract/src/ft_token_receiver.rs @@ -1,4 +1,10 @@ -use crate::*; +use model::{draft::DraftGroupIndex, lockup::LockupCreate}; + +use crate::{ + emit, env, log, near_bindgen, serde_json, AccountId, Contract, ContractExt, Deserialize, EventKind, + FtLockupCreateLockup, FtLockupFundDraftGroup, FungibleTokenReceiver, PromiseOrValue, Serialize, GAS_EXT_CALL_COST, + GAS_MIN_FOR_CONVERT, U128, +}; #[derive(Serialize, Deserialize)] #[serde(crate = "near_sdk::serde")] @@ -18,19 +24,10 @@ pub enum FtMessage { #[near_bindgen] impl FungibleTokenReceiver for Contract { - fn ft_on_transfer( - &mut self, - sender_id: ValidAccountId, - amount: U128, - msg: String, - ) -> PromiseOrValue { - assert_eq!( - env::predecessor_account_id(), - self.token_account_id, - "Invalid token ID" - ); + fn ft_on_transfer(&mut self, sender_id: AccountId, amount: U128, msg: String) -> PromiseOrValue { + assert_eq!(env::predecessor_account_id(), self.token_account_id, "Invalid token ID"); let amount = amount.into(); - self.assert_deposit_whitelist(sender_id.as_ref()); + self.assert_deposit_whitelist(&sender_id); let ft_message: FtMessage = serde_json::from_str(&msg).unwrap(); match ft_message { @@ -62,23 +59,22 @@ impl FungibleTokenReceiver for Contract { if funding.try_convert.unwrap_or(false) { // Using remaining gas to try convert drafts, not waiting for results - if let Some(remaining_gas) = - env::prepaid_gas().checked_sub(env::used_gas() + GAS_EXT_CALL_COST) + if let Some(remaining_gas) = env::prepaid_gas() + .0 + .checked_sub((env::used_gas() + GAS_EXT_CALL_COST).into()) { - if remaining_gas > GAS_MIN_FOR_CONVERT { - ext_self::convert_drafts( - draft_group.draft_indices.into_iter().collect(), - &env::current_account_id(), - NO_DEPOSIT, - remaining_gas, - ); + if remaining_gas > GAS_MIN_FOR_CONVERT.into() { + crate::callbacks::ext_self::ext(env::current_account_id()) + .with_static_gas(remaining_gas.into()) + .convert_drafts(draft_group.draft_indices.into_iter().collect()); } } } - let event = FtLockupFundDraftGroup { - id: draft_group_id, - amount: amount.into(), - }; + let event = + FtLockupFundDraftGroup { + id: draft_group_id, + amount: amount.into(), + }; emit(EventKind::FtLockupFundDraftGroup(vec![event])); } } diff --git a/contract/src/internal.rs b/contract/src/internal.rs index 421495f..dd683b1 100644 --- a/contract/src/internal.rs +++ b/contract/src/internal.rs @@ -1,38 +1,29 @@ -use crate::*; +use model::lockup::{Lockup, LockupIndex}; + +use crate::{AccountId, Contract, HashSet}; impl Contract { pub(crate) fn assert_deposit_whitelist(&self, account_id: &AccountId) { - assert!( - self.deposit_whitelist.contains(account_id), - "Not in deposit whitelist" - ); + assert!(self.deposit_whitelist.contains(account_id), "Not in deposit whitelist"); } pub(crate) fn assert_draft_operators_whitelist(&self, account_id: &AccountId) { assert!( - (self.deposit_whitelist.contains(account_id) - || self.draft_operators_whitelist.contains(account_id)), + (self.deposit_whitelist.contains(account_id) || self.draft_operators_whitelist.contains(account_id)), "Not in draft operators whitelist" ); } pub(crate) fn internal_add_lockup(&mut self, lockup: &Lockup) -> LockupIndex { - let index = self.lockups.len() as LockupIndex; + let index = LockupIndex::try_from(self.lockups.len()).unwrap(); self.lockups.push(lockup); - let mut indices = self - .account_lockups - .get(lockup.account_id.as_ref()) - .unwrap_or_default(); + let mut indices = self.account_lockups.get(&lockup.account_id).unwrap_or_default(); indices.insert(index); - self.internal_save_account_lockups(lockup.account_id.as_ref(), indices); + self.internal_save_account_lockups(&lockup.account_id, indices); index } - pub(crate) fn internal_save_account_lockups( - &mut self, - account_id: &AccountId, - indices: HashSet, - ) { + pub(crate) fn internal_save_account_lockups(&mut self, account_id: &AccountId, indices: HashSet) { if indices.is_empty() { self.account_lockups.remove(account_id); } else { @@ -40,15 +31,12 @@ impl Contract { } } - pub(crate) fn internal_get_account_lockups( - &self, - account_id: &AccountId, - ) -> Vec<(LockupIndex, Lockup)> { + pub(crate) fn internal_get_account_lockups(&self, account_id: &AccountId) -> Vec<(LockupIndex, Lockup)> { self.account_lockups .get(account_id) .unwrap_or_default() .into_iter() - .map(|lockup_index| (lockup_index, self.lockups.get(lockup_index as _).unwrap())) + .map(|lockup_index| (lockup_index, self.lockups.get(u64::from(lockup_index)).unwrap())) .collect() } @@ -64,11 +52,10 @@ impl Contract { .map(|&lockup_index| { assert!( account_lockup_ids.contains(&lockup_index), - "lockup not found for account: {}", - lockup_index, + "lockup not found for account: {lockup_index}", ); - let lockup = self.lockups.get(lockup_index as _).unwrap(); - (lockup_index.clone(), lockup) + let lockup = self.lockups.get(u64::from(lockup_index)).unwrap(); + (lockup_index, lockup) }) .collect() } diff --git a/contract/src/lib.rs b/contract/src/lib.rs index 441fae4..e265b11 100644 --- a/contract/src/lib.rs +++ b/contract/src/lib.rs @@ -1,72 +1,55 @@ -use std::convert::TryInto; - -use near_contract_standards::fungible_token::core_impl::ext_fungible_token; +use std::convert::Into; + +use model::{ + draft::{Draft, DraftGroup, DraftGroupIndex, DraftIndex}, + lockup::{Lockup, LockupIndex}, + lockup_api::LockupApi, + schedule::Schedule, + util::current_timestamp_sec, + TimestampSec, TokenAccountId, WrappedBalance, +}; +// use near_contract_standards::fungible_token::core_impl::ext_fungible_token; use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; -use near_sdk::borsh::maybestd::collections::{HashMap, HashSet}; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; -use near_sdk::collections::{LookupMap, UnorderedMap, UnorderedSet, Vector}; -use near_sdk::json_types::{Base58CryptoHash, ValidAccountId, WrappedBalance, U128}; -use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::{ - assert_one_yocto, env, ext_contract, is_promise_success, log, near_bindgen, serde_json, - AccountId, Balance, BorshStorageKey, CryptoHash, Gas, PanicOnDefault, PromiseOrValue, - Timestamp, + assert_one_yocto, + borsh::{ + self, + maybestd::collections::{HashMap, HashSet}, + BorshDeserialize, BorshSerialize, + }, + collections::{LookupMap, UnorderedMap, UnorderedSet, Vector}, + env, ext_contract, is_promise_success, + json_types::{Base58CryptoHash, U128}, + log, near_bindgen, + serde::{Deserialize, Serialize}, + serde_json, AccountId, BorshStorageKey, Gas, PanicOnDefault, Promise, PromiseOrValue, }; pub mod callbacks; -pub mod draft; pub mod event; pub mod ft_token_receiver; pub mod internal; -pub mod lockup; -pub mod schedule; -pub mod termination; -pub mod util; -pub mod view; - -use crate::draft::*; -use crate::event::*; -use crate::lockup::*; -use crate::schedule::*; -use crate::termination::*; -use crate::util::*; -near_sdk::setup_alloc!(); +pub mod view; -pub type TimestampSec = u32; -pub type TokenAccountId = AccountId; +use crate::{ + callbacks::{ext_self, SelfCallbacks}, + event::{ + emit, EventKind, FtLockupAddToDepositWhitelist, FtLockupAddToDraftOperatorsWhitelist, FtLockupClaimLockup, + FtLockupCreateDraft, FtLockupCreateDraftGroup, FtLockupCreateLockup, FtLockupDeleteDraft, + FtLockupDiscardDraftGroup, FtLockupFundDraftGroup, FtLockupNew, FtLockupRemoveFromDepositWhitelist, + FtLockupRemoveFromDraftOperatorsWhitelist, FtLockupTerminateLockup, + }, + serde_json::json, +}; pub const PACKAGE_NAME: &str = env!("CARGO_PKG_NAME"); pub const VERSION: &str = env!("CARGO_PKG_VERSION"); -const GAS_FOR_FT_TRANSFER: Gas = 15_000_000_000_000; -const GAS_FOR_AFTER_FT_TRANSFER: Gas = 20_000_000_000_000; -const GAS_EXT_CALL_COST: Gas = 10_000_000_000_000; -const GAS_MIN_FOR_CONVERT: Gas = 15_000_000_000_000; - -const ONE_YOCTO: Balance = 1; -const NO_DEPOSIT: Balance = 0; - -uint::construct_uint! { - pub struct U256(4); -} - -#[ext_contract(ext_self)] -pub trait SelfCallbacks { - fn after_ft_transfer( - &mut self, - account_id: AccountId, - lockup_claims: Vec, - ) -> WrappedBalance; - - fn after_lockup_termination( - &mut self, - account_id: AccountId, - amount: WrappedBalance, - ) -> WrappedBalance; - - fn convert_drafts(&mut self, draft_ids: Vec) -> Vec; -} +const GAS_FOR_FT_TRANSFER: Gas = Gas(15_000_000_000_000); +const GAS_FOR_AFTER_FT_TRANSFER: Gas = Gas(20_000_000_000_000); +const GAS_EXT_CALL_COST: Gas = Gas(10_000_000_000_000); +const GAS_MIN_FOR_CONVERT: Gas = Gas(15_000_000_000_000); #[near_bindgen] #[derive(BorshDeserialize, BorshSerialize, PanicOnDefault)] @@ -104,45 +87,44 @@ pub(crate) enum StorageKey { } #[near_bindgen] -impl Contract { +impl LockupApi for Contract { #[init] - pub fn new( - token_account_id: ValidAccountId, - deposit_whitelist: Vec, - draft_operators_whitelist: Option>, + fn new( + token_account_id: AccountId, + deposit_whitelist: Vec, + draft_operators_whitelist: Option>, ) -> Self { let mut deposit_whitelist_set = UnorderedSet::new(StorageKey::DepositWhitelist); - deposit_whitelist_set.extend(deposit_whitelist.clone().into_iter().map(|a| a.into())); - let mut draft_operators_whitelist_set = - UnorderedSet::new(StorageKey::DraftOperatorsWhitelist); + deposit_whitelist_set.extend(deposit_whitelist.clone().into_iter().map(Into::into)); + let mut draft_operators_whitelist_set = UnorderedSet::new(StorageKey::DraftOperatorsWhitelist); draft_operators_whitelist_set.extend( draft_operators_whitelist .clone() - .unwrap_or(vec![]) + .unwrap_or_default() .into_iter() - .map(|a| a.into()), + .map(Into::into), ); emit(EventKind::FtLockupNew(FtLockupNew { - token_account_id: token_account_id.clone().into(), + token_account_id: token_account_id.clone(), })); emit(EventKind::FtLockupAddToDepositWhitelist( FtLockupAddToDepositWhitelist { - account_ids: deposit_whitelist.into_iter().map(|x| x.into()).collect(), + account_ids: deposit_whitelist.into_iter().map(Into::into).collect(), }, )); emit(EventKind::FtLockupAddToDraftOperatorsWhitelist( FtLockupAddToDraftOperatorsWhitelist { account_ids: draft_operators_whitelist - .unwrap_or(vec![]) + .unwrap_or_default() .into_iter() - .map(|x| x.into()) + .map(Into::into) .collect(), }, )); Self { lockups: Vector::new(StorageKey::Lockups), account_lockups: LookupMap::new(StorageKey::AccountLockups), - token_account_id: token_account_id.into(), + token_account_id, deposit_whitelist: deposit_whitelist_set, draft_operators_whitelist: draft_operators_whitelist_set, next_draft_id: 0, @@ -152,18 +134,12 @@ impl Contract { } } - pub fn claim( - &mut self, - amounts: Option)>>, - ) -> PromiseOrValue { + fn claim(&mut self, amounts: Option)>>) -> PromiseOrValue { let account_id = env::predecessor_account_id(); let (claim_amounts, mut lockups_by_id) = if let Some(amounts) = amounts { let lockups_by_id: HashMap = self - .internal_get_account_lockups_by_id( - &account_id, - &amounts.iter().map(|x| x.0).collect(), - ) + .internal_get_account_lockups_by_id(&account_id, &amounts.iter().map(|x| x.0).collect()) .into_iter() .collect(); let amounts: HashMap = amounts @@ -171,35 +147,30 @@ impl Contract { .map(|(lockup_id, amount)| { ( lockup_id, - match amount { - Some(amount) => amount, - None => { - let lockup = - lockups_by_id.get(&lockup_id).expect("lockup not found"); - let unlocked_balance = - lockup.schedule.unlocked_balance(current_timestamp_sec()); - (unlocked_balance - lockup.claimed_balance).into() - } + if let Some(amount) = amount { + amount + } else { + let lockup = lockups_by_id.get(&lockup_id).expect("lockup not found"); + let unlocked_balance = lockup.schedule.unlocked_balance(current_timestamp_sec()); + (unlocked_balance - lockup.claimed_balance).into() }, ) }) .collect(); (amounts, lockups_by_id) } else { - let lockups_by_id: HashMap = self - .internal_get_account_lockups(&account_id) - .into_iter() - .collect(); - let amounts: HashMap = lockups_by_id - .iter() - .map(|(lockup_id, lockup)| { - let unlocked_balance = - lockup.schedule.unlocked_balance(current_timestamp_sec()); - let amount: WrappedBalance = (unlocked_balance - lockup.claimed_balance).into(); - - (lockup_id.clone(), amount) - }) - .collect(); + let lockups_by_id: HashMap = + self.internal_get_account_lockups(&account_id).into_iter().collect(); + let amounts: HashMap = + lockups_by_id + .iter() + .map(|(lockup_id, lockup)| { + let unlocked_balance = lockup.schedule.unlocked_balance(current_timestamp_sec()); + let amount: WrappedBalance = (unlocked_balance - lockup.claimed_balance).into(); + + (*lockup_id, amount) + }) + .collect(); (amounts, lockups_by_id) }; @@ -211,46 +182,38 @@ impl Contract { let lockup_claim = lockup.claim(lockup_index, lockup_claim_amount.0); if lockup_claim.claim_amount.0 > 0 { - log!( - "Claiming {} form lockup #{}", - lockup_claim.claim_amount.0, - lockup_index - ); + log!("Claiming {} form lockup #{}", lockup_claim.claim_amount.0, lockup_index); total_claim_amount += lockup_claim.claim_amount.0; - self.lockups.replace(lockup_index as _, &lockup); + self.lockups.replace(u64::from(lockup_index), lockup); lockup_claims.push(lockup_claim); } } log!("Total claim {}", total_claim_amount); if total_claim_amount > 0 { - ext_fungible_token::ft_transfer( - account_id.clone(), - total_claim_amount.into(), - Some(format!( - "Claiming unlocked {} balance from {}", + Promise::new(self.token_account_id.clone()) + .ft_transfer( + &account_id, total_claim_amount, - env::current_account_id() - )), - &self.token_account_id, - ONE_YOCTO, - GAS_FOR_FT_TRANSFER, - ) - .then(ext_self::after_ft_transfer( - account_id, - lockup_claims, - &env::current_account_id(), - NO_DEPOSIT, - GAS_FOR_AFTER_FT_TRANSFER, - )) - .into() + Some(format!( + "Claiming unlocked {} balance from {}", + total_claim_amount, + env::current_account_id() + )), + ) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_AFTER_FT_TRANSFER) + .after_ft_transfer(account_id, lockup_claims), + ) + .into() } else { PromiseOrValue::Value(0.into()) } } #[payable] - pub fn terminate( + fn terminate( &mut self, lockup_index: LockupIndex, hashed_schedule: Option, @@ -258,29 +221,21 @@ impl Contract { ) -> PromiseOrValue { assert_one_yocto(); self.assert_deposit_whitelist(&env::predecessor_account_id()); - let mut lockup = self - .lockups - .get(lockup_index as _) - .expect("Lockup not found"); + let mut lockup = self.lockups.get(u64::from(lockup_index)).expect("Lockup not found"); let current_timestamp = current_timestamp_sec(); let termination_timestamp = termination_timestamp.unwrap_or(current_timestamp); assert!( termination_timestamp >= current_timestamp, "expected termination_timestamp >= now", ); - let (unvested_balance, beneficiary_id) = - lockup.terminate(hashed_schedule, termination_timestamp); - self.lockups.replace(lockup_index as _, &lockup); + let (unvested_balance, beneficiary_id) = lockup.terminate(hashed_schedule, termination_timestamp); + self.lockups.replace(u64::from(lockup_index), &lockup); // no need to store empty lockup if lockup.schedule.total_balance() == 0 { - let lockup_account_id: AccountId = lockup.account_id.into(); - let mut indices = self - .account_lockups - .get(&lockup_account_id) - .unwrap_or_default(); + let mut indices = self.account_lockups.get(&lockup.account_id).unwrap_or_default(); indices.remove(&lockup_index); - self.internal_save_account_lockups(&lockup_account_id, indices); + self.internal_save_account_lockups(&lockup.account_id, indices); } let event = FtLockupTerminateLockup { @@ -291,22 +246,18 @@ impl Contract { emit(EventKind::FtLockupTerminateLockup(vec![event])); if unvested_balance > 0 { - ext_fungible_token::ft_transfer( - beneficiary_id.clone(), - unvested_balance.into(), - Some(format!("Terminated lockup #{}", lockup_index)), - &self.token_account_id, - ONE_YOCTO, - GAS_FOR_FT_TRANSFER, - ) - .then(ext_self::after_lockup_termination( - beneficiary_id, - unvested_balance.into(), - &env::current_account_id(), - NO_DEPOSIT, - GAS_FOR_AFTER_FT_TRANSFER, - )) - .into() + Promise::new(self.token_account_id.clone()) + .ft_transfer( + &beneficiary_id.clone(), + unvested_balance, + Some(format!("Terminated lockup #{lockup_index}")), + ) + .then( + ext_self::ext(env::current_account_id()) + .with_static_gas(GAS_FOR_AFTER_FT_TRANSFER) + .after_lockup_termination(beneficiary_id, unvested_balance.into()), + ) + .into() } else { PromiseOrValue::Value(0.into()) } @@ -314,11 +265,7 @@ impl Contract { // preserving both options for API compatibility #[payable] - pub fn add_to_deposit_whitelist( - &mut self, - account_id: Option, - account_ids: Option>, - ) { + fn add_to_deposit_whitelist(&mut self, account_id: Option, account_ids: Option>) { assert_one_yocto(); self.assert_deposit_whitelist(&env::predecessor_account_id()); let account_ids = if let Some(account_ids) = account_ids { @@ -327,22 +274,18 @@ impl Contract { vec![account_id.expect("expected either account_id or account_ids")] }; for account_id in &account_ids { - self.deposit_whitelist.insert(account_id.as_ref()); + self.deposit_whitelist.insert(account_id); } emit(EventKind::FtLockupAddToDepositWhitelist( FtLockupAddToDepositWhitelist { - account_ids: account_ids.into_iter().map(|x| x.into()).collect(), + account_ids: account_ids.into_iter().map(Into::into).collect(), }, )); } // preserving both options for API compatibility #[payable] - pub fn remove_from_deposit_whitelist( - &mut self, - account_id: Option, - account_ids: Option>, - ) { + fn remove_from_deposit_whitelist(&mut self, account_id: Option, account_ids: Option>) { assert_one_yocto(); self.assert_deposit_whitelist(&env::predecessor_account_id()); let account_ids = if let Some(account_ids) = account_ids { @@ -351,7 +294,7 @@ impl Contract { vec![account_id.expect("expected either account_id or account_ids")] }; for account_id in &account_ids { - self.deposit_whitelist.remove(&account_id.to_string()); + self.deposit_whitelist.remove(account_id); } assert!( !self.deposit_whitelist.is_empty(), @@ -359,75 +302,71 @@ impl Contract { ); emit(EventKind::FtLockupRemoveFromDepositWhitelist( FtLockupRemoveFromDepositWhitelist { - account_ids: account_ids.into_iter().map(|x| x.into()).collect(), + account_ids: account_ids.into_iter().map(Into::into).collect(), }, )); } #[payable] - pub fn add_to_draft_operators_whitelist(&mut self, account_ids: Vec) { + fn add_to_draft_operators_whitelist(&mut self, account_ids: Vec) { assert_one_yocto(); self.assert_deposit_whitelist(&env::predecessor_account_id()); for account_id in &account_ids { - self.draft_operators_whitelist.insert(account_id.as_ref()); + self.draft_operators_whitelist.insert(account_id); } emit(EventKind::FtLockupAddToDraftOperatorsWhitelist( FtLockupAddToDraftOperatorsWhitelist { - account_ids: account_ids.into_iter().map(|x| x.into()).collect(), + account_ids: account_ids.into_iter().map(Into::into).collect(), }, )); } #[payable] - pub fn remove_from_draft_operators_whitelist(&mut self, account_ids: Vec) { + fn remove_from_draft_operators_whitelist(&mut self, account_ids: Vec) { assert_one_yocto(); self.assert_deposit_whitelist(&env::predecessor_account_id()); for account_id in &account_ids { - self.draft_operators_whitelist.remove(account_id.as_ref()); + self.draft_operators_whitelist.remove(account_id); } emit(EventKind::FtLockupRemoveFromDraftOperatorsWhitelist( FtLockupRemoveFromDraftOperatorsWhitelist { - account_ids: account_ids.into_iter().map(|x| x.into()).collect(), + account_ids: account_ids.into_iter().map(Into::into).collect(), }, )); } - pub fn create_draft_group(&mut self) -> DraftGroupIndex { + fn create_draft_group(&mut self) -> DraftGroupIndex { self.assert_draft_operators_whitelist(&env::predecessor_account_id()); let index = self.next_draft_group_id; self.next_draft_group_id += 1; assert!( - self.draft_groups - .insert(&index, &DraftGroup::new()) - .is_none(), + self.draft_groups.insert(&index, &DraftGroup::default()).is_none(), "Invariant" ); - emit(EventKind::FtLockupCreateDraftGroup(vec![ - FtLockupCreateDraftGroup { id: index }, - ])); + emit(EventKind::FtLockupCreateDraftGroup(vec![FtLockupCreateDraftGroup { + id: index, + }])); index } - pub fn create_draft(&mut self, draft: Draft) -> DraftIndex { + fn create_draft(&mut self, draft: Draft) -> DraftIndex { self.create_drafts(vec![draft])[0] } - pub fn create_drafts(&mut self, drafts: Vec) -> Vec { + fn create_drafts(&mut self, drafts: Vec) -> Vec { self.assert_draft_operators_whitelist(&env::predecessor_account_id()); let mut draft_group_lookup: HashMap = HashMap::new(); let mut events: Vec = vec![]; let draft_ids: Vec = drafts .into_iter() .map(|draft| { - let draft_group = draft_group_lookup - .entry(draft.draft_group_id) - .or_insert_with(|| { - self.draft_groups - .get(&draft.draft_group_id as _) - .expect("draft group not found") - }); + let draft_group = draft_group_lookup.entry(draft.draft_group_id).or_insert_with(|| { + self.draft_groups + .get(&draft.draft_group_id as _) + .expect("draft group not found") + }); draft_group.assert_can_add_draft(); draft.assert_new_valid(); @@ -447,70 +386,18 @@ impl Contract { .collect(); emit(EventKind::FtLockupCreateDraft(events)); - draft_group_lookup - .iter() - .for_each(|(draft_group_id, draft_group)| { - self.draft_groups.insert(&draft_group_id as _, &draft_group); - }); + for (draft_group_id, draft_group) in draft_group_lookup { + self.draft_groups.insert(&draft_group_id as _, &draft_group); + } draft_ids } - pub fn convert_draft(&mut self, draft_id: DraftIndex) -> LockupIndex { + fn convert_draft(&mut self, draft_id: DraftIndex) -> LockupIndex { self.convert_drafts(vec![draft_id])[0] } - pub fn convert_drafts(&mut self, draft_ids: Vec) -> Vec { - let mut draft_group_lookup: HashMap = HashMap::new(); - let mut events: Vec = vec![]; - let lockup_ids: Vec = draft_ids - .iter() - .map(|draft_id| { - let draft = self.drafts.remove(&draft_id as _).expect("draft not found"); - let draft_group = draft_group_lookup - .entry(draft.draft_group_id) - .or_insert_with(|| { - self.draft_groups - .get(&draft.draft_group_id as _) - .expect("draft group not found") - }); - draft_group.assert_can_convert_draft(); - let payer_id = draft_group - .payer_id - .as_mut() - .expect("expected present payer_id"); - - assert!(draft_group.draft_indices.remove(&draft_id), "Invariant"); - let amount = draft.total_balance(); - assert!(draft_group.total_amount >= amount, "Invariant"); - draft_group.total_amount -= amount; - - let lockup = draft.lockup_create.into_lockup(&payer_id); - let index = self.internal_add_lockup(&lockup); - - let event: FtLockupCreateLockup = (index, lockup, Some(draft_id.clone())).into(); - events.push(event); - - index - }) - .collect(); - - emit(EventKind::FtLockupCreateLockup(events)); - - draft_group_lookup - .iter() - .for_each(|(draft_group_id, draft_group)| { - if draft_group.draft_indices.is_empty() { - self.draft_groups.remove(&draft_group_id as _); - } else { - self.draft_groups.insert(&draft_group_id as _, &draft_group); - } - }); - - lockup_ids - } - - pub fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex) { + fn discard_draft_group(&mut self, draft_group_id: DraftGroupIndex) { self.assert_draft_operators_whitelist(&env::predecessor_account_id()); let mut draft_group = self @@ -525,41 +412,35 @@ impl Contract { self.draft_groups.insert(&draft_group_id as _, &draft_group); } - emit(EventKind::FtLockupDiscardDraftGroup(vec![ - FtLockupDiscardDraftGroup { id: draft_group_id }, - ])); + emit(EventKind::FtLockupDiscardDraftGroup(vec![FtLockupDiscardDraftGroup { id: draft_group_id }])); } - pub fn delete_drafts(&mut self, draft_ids: Vec) { + fn delete_drafts(&mut self, draft_ids: Vec) { // no authorization required here since the draft group discard has been authorized let mut draft_group_lookup: HashMap = HashMap::new(); let mut events: Vec = vec![]; - for draft_id in &draft_ids { + for draft_id in draft_ids { let draft = self.drafts.remove(&draft_id as _).expect("draft not found"); - let draft_group = draft_group_lookup - .entry(draft.draft_group_id) - .or_insert_with(|| { - self.draft_groups - .get(&draft.draft_group_id as _) - .expect("draft group not found") - }); + let draft_group = draft_group_lookup.entry(draft.draft_group_id).or_insert_with(|| { + self.draft_groups + .get(&draft.draft_group_id as _) + .expect("draft group not found") + }); draft_group.assert_can_delete_draft(); let amount = draft.total_balance(); assert!(draft_group.total_amount >= amount, "Invariant"); draft_group.total_amount -= amount; - assert!(draft_group.draft_indices.remove(draft_id), "Invariant"); + assert!(draft_group.draft_indices.remove(&draft_id), "Invariant"); - let event = FtLockupDeleteDraft { - id: draft_id.clone(), - }; + let event = FtLockupDeleteDraft { id: draft_id }; events.push(event); } emit(EventKind::FtLockupDeleteDraft(events)); - for (draft_group_id, draft_group) in &draft_group_lookup { + for (draft_group_id, draft_group) in draft_group_lookup { if draft_group.draft_indices.is_empty() { self.draft_groups.remove(&draft_group_id as _); } else { @@ -568,3 +449,22 @@ impl Contract { } } } + +/// Amount of fungible tokens +pub type TokenAmount = u128; +trait FtTransferPromise { + fn ft_transfer(self, receiver_id: &AccountId, amount: TokenAmount, memo: Option) -> Promise; +} + +impl FtTransferPromise for Promise { + fn ft_transfer(self, receiver_id: &AccountId, amount: TokenAmount, memo: Option) -> Promise { + let args = serde_json::to_vec(&json!({ + "receiver_id": receiver_id, + "amount": amount.to_string(), + "memo": memo.unwrap_or_default(), + })) + .expect("Failed to serialize arguments"); + + self.function_call("ft_transfer".to_string(), args, 1, GAS_FOR_FT_TRANSFER) + } +} diff --git a/contract/src/lockup.rs b/contract/src/lockup.rs deleted file mode 100644 index bf8932c..0000000 --- a/contract/src/lockup.rs +++ /dev/null @@ -1,127 +0,0 @@ -use crate::*; -use std::convert::TryInto; - -pub type LockupIndex = u32; - -#[derive(Serialize, Deserialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq))] -pub struct LockupClaim { - pub index: LockupIndex, - pub claim_amount: WrappedBalance, - pub is_final: bool, -} - -#[derive(BorshDeserialize, BorshSerialize, Deserialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Clone))] -pub struct Lockup { - pub account_id: ValidAccountId, - pub schedule: Schedule, - - #[serde(default)] - #[serde(with = "u128_dec_format")] - pub claimed_balance: Balance, - /// An optional configuration that allows vesting/lockup termination. - pub termination_config: Option, -} - -impl Lockup { - pub fn new_unlocked_since( - account_id: AccountId, - total_balance: Balance, - timestamp: TimestampSec, - ) -> Self { - Self { - account_id: account_id.try_into().unwrap(), - schedule: Schedule::new_unlocked_since(total_balance, timestamp), - claimed_balance: 0, - termination_config: None, - } - } - - pub fn new_unlocked(account_id: AccountId, total_balance: Balance) -> Self { - Self::new_unlocked_since(account_id, total_balance, 1) - } - - pub fn claim(&mut self, index: LockupIndex, claim_amount: Balance) -> LockupClaim { - let unlocked_balance = self.schedule.unlocked_balance(current_timestamp_sec()); - let balance_claimed_new = self - .claimed_balance - .checked_add(claim_amount) - .expect("attempt to add with overflow"); - assert!( - unlocked_balance >= balance_claimed_new, - "too big claim_amount for lockup {}", - index, - ); - - self.claimed_balance = balance_claimed_new; - LockupClaim { - index, - claim_amount: claim_amount.into(), - is_final: balance_claimed_new == self.schedule.total_balance(), - } - } - - pub fn assert_new_valid(&self, total_balance: Balance) { - assert_eq!( - self.claimed_balance, 0, - "The initial lockup claimed balance should be 0" - ); - self.schedule.assert_valid(total_balance); - - if let Some(termination_config) = &self.termination_config { - match &termination_config.vesting_schedule { - VestingConditions::SameAsLockupSchedule => { - // Ok, using lockup schedule. - } - VestingConditions::Hash(_hash) => { - // Ok, using unknown hash. Can't verify. - } - VestingConditions::Schedule(schedule) => { - schedule.assert_valid(total_balance); - self.schedule.assert_valid_termination_schedule(&schedule); - } - } - } - } -} - -#[derive(BorshDeserialize, BorshSerialize, Deserialize, Serialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Clone))] -pub struct LockupCreate { - pub account_id: ValidAccountId, - pub schedule: Schedule, - pub vesting_schedule: Option, -} - -#[cfg(not(target_arch = "wasm32"))] -impl LockupCreate { - pub fn new_unlocked(account_id: ValidAccountId, total_balance: Balance) -> Self { - Self { - account_id, - schedule: Schedule::new_unlocked(total_balance), - vesting_schedule: None, - } - } -} - -impl LockupCreate { - pub fn into_lockup(&self, payer_id: &ValidAccountId) -> Lockup { - let vesting_schedule = self.vesting_schedule.clone(); - Lockup { - account_id: self.account_id.clone(), - schedule: self.schedule.clone(), - claimed_balance: 0, - termination_config: match vesting_schedule { - None => None, - Some(vesting_schedule) => Some(TerminationConfig { - beneficiary_id: payer_id.clone(), - vesting_schedule, - }), - }, - } - } -} diff --git a/contract/src/schedule.rs b/contract/src/schedule.rs deleted file mode 100644 index 0f4bed0..0000000 --- a/contract/src/schedule.rs +++ /dev/null @@ -1,183 +0,0 @@ -use crate::*; - -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq))] -pub struct Checkpoint { - /// The unix-timestamp in seconds since the epoch. - pub timestamp: TimestampSec, - #[serde(with = "u128_dec_format")] - pub balance: Balance, -} - -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq))] -pub struct Schedule(pub Vec); - -impl Schedule { - pub fn new_zero_balance_from_to( - start_timestamp: TimestampSec, - finish_timestamp: TimestampSec, - ) -> Self { - assert!(finish_timestamp > start_timestamp, "Invariant"); - - Self(vec![ - Checkpoint { - timestamp: start_timestamp, - balance: 0, - }, - Checkpoint { - timestamp: finish_timestamp, - balance: 0, - }, - ]) - } - - pub fn new_unlocked_since(total_balance: Balance, timestamp: TimestampSec) -> Self { - assert!(timestamp > 0, "Invariant"); - Self(vec![ - Checkpoint { - timestamp: timestamp - 1, - balance: 0, - }, - Checkpoint { - timestamp: timestamp, - balance: total_balance, - }, - ]) - } - - #[cfg(not(target_arch = "wasm32"))] - pub fn new_unlocked(total_balance: Balance) -> Self { - Self::new_unlocked_since(total_balance, 1) - } - - pub fn assert_valid(&self, total_balance: Balance) { - assert!(self.0.len() >= 2, "At least two checkpoints is required"); - assert_eq!( - self.0.first().unwrap().balance, - 0, - "The first checkpoint balance should be 0" - ); - for i in 1..self.0.len() { - assert!(self.0[i - 1].timestamp < self.0[i].timestamp, "The timestamp of checkpoint #{} should be less than the timestamp of the next checkpoint", i - 1); - assert!(self.0[i - 1].balance <= self.0[i].balance, "The balance of checkpoint #{} should be not greater than the balance of the next checkpoint", i - 1); - } - assert!( - self.total_balance() > 0, - "expected total balance to be positive", - ); - assert_eq!( - self.total_balance(), - total_balance, - "The schedule's total balance doesn't match the transferred balance" - ); - } - - /// Verifies that this schedule is ahead of the given termination schedule at any point of time. - /// Assumes they have equal total balance and both schedules are valid. - pub fn assert_valid_termination_schedule(&self, termination_schedule: &Schedule) { - for checkpoint in &self.0 { - assert!( - checkpoint.balance <= termination_schedule.unlocked_balance(checkpoint.timestamp), - "The lockup schedule is ahead of the termination schedule at timestamp {}", - checkpoint.timestamp - ); - } - for checkpoint in &termination_schedule.0 { - assert!( - checkpoint.balance >= self.unlocked_balance(checkpoint.timestamp), - "The lockup schedule is ahead of the termination schedule at timestamp {}", - checkpoint.timestamp - ); - } - } - - pub fn unlocked_balance(&self, current_timestamp: TimestampSec) -> Balance { - // Using binary search by time to find the current checkpoint. - let index = match self - .0 - .binary_search_by_key(¤t_timestamp, |checkpoint| checkpoint.timestamp) - { - // Exact timestamp found - Ok(index) => index, - // No match, the next index is given. - Err(index) => { - if index == 0 { - // Not started - return 0; - } - index - 1 - } - }; - let checkpoint = &self.0[index]; - if index + 1 == self.0.len() { - // The last checkpoint. Fully unlocked. - return checkpoint.balance; - } - let next_checkpoint = &self.0[index + 1]; - - let total_duration = next_checkpoint.timestamp - checkpoint.timestamp; - let passed_duration = current_timestamp - checkpoint.timestamp; - checkpoint.balance - + (U256::from(passed_duration) - * U256::from(next_checkpoint.balance - checkpoint.balance) - / U256::from(total_duration)) - .as_u128() - } - - pub fn total_balance(&self) -> Balance { - self.0.last().unwrap().balance - } - - /// Terminates the lockup schedule earlier. - /// Assumes new_total_balance is not greater than the current total balance. - pub fn terminate(&mut self, new_total_balance: Balance, finish_timestamp: TimestampSec) { - if new_total_balance == 0 { - // finish_timestamp is a hint, only used for fully unvested schedules - // can be overwritten to preserve schedule invariants - // used to preserve part of the schedule before the termination happens - let start_timestamp = self.0[0].timestamp; - let finish_timestamp = if finish_timestamp > start_timestamp { - finish_timestamp - } else { - start_timestamp + 1 - }; - self.0 = Self::new_zero_balance_from_to(start_timestamp, finish_timestamp).0; - return; - } - assert!( - new_total_balance <= self.0.last().unwrap().balance, - "Invariant" - ); - while let Some(checkpoint) = self.0.pop() { - if self.0.last().unwrap().balance < new_total_balance { - let prev_checkpoint = self.0.last().unwrap().clone(); - let timestamp_diff = checkpoint.timestamp - prev_checkpoint.timestamp; - let balance_diff = checkpoint.balance - prev_checkpoint.balance; - let required_balance_diff = new_total_balance - prev_checkpoint.balance; - // Computing the new timestamp rounding up - let new_timestamp = prev_checkpoint.timestamp - + ((U256::from(timestamp_diff) * U256::from(required_balance_diff) - + U256::from(balance_diff - 1)) - / U256::from(balance_diff)) - .as_u32(); - self.0.push(Checkpoint { - timestamp: new_timestamp, - balance: new_total_balance, - }); - return; - } - } - unreachable!(); - } - - pub fn hash(&self) -> CryptoHash { - let value_hash = env::sha256(&self.try_to_vec().unwrap()); - let mut res = CryptoHash::default(); - res.copy_from_slice(&value_hash); - - res - } -} diff --git a/contract/src/termination.rs b/contract/src/termination.rs deleted file mode 100644 index d638dd9..0000000 --- a/contract/src/termination.rs +++ /dev/null @@ -1,60 +0,0 @@ -use crate::*; - -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize, Clone)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq))] -pub enum VestingConditions { - SameAsLockupSchedule, - Hash(Base58CryptoHash), - Schedule(Schedule), -} - -#[derive(BorshDeserialize, BorshSerialize, Serialize, Deserialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Clone))] -pub struct TerminationConfig { - /// The account ID who paid for the lockup creation - /// and will receive unvested balance upon termination - pub beneficiary_id: ValidAccountId, - /// An optional vesting schedule - pub vesting_schedule: VestingConditions, -} - -impl Lockup { - pub fn terminate( - &mut self, - hashed_schedule: Option, - termination_timestamp: TimestampSec, - ) -> (Balance, AccountId) { - let termination_config = self - .termination_config - .take() - .expect("No termination config"); - let total_balance = self.schedule.total_balance(); - let vested_balance = match &termination_config.vesting_schedule { - VestingConditions::SameAsLockupSchedule => &self.schedule, - VestingConditions::Hash(hash) => { - let schedule = hashed_schedule - .as_ref() - .expect("Revealed schedule required for the termination"); - let hash: CryptoHash = (*hash).into(); - assert_eq!( - hash, - schedule.hash(), - "The revealed schedule hash doesn't match" - ); - schedule.assert_valid(total_balance); - self.schedule.assert_valid_termination_schedule(schedule); - schedule - } - VestingConditions::Schedule(schedule) => &schedule, - } - .unlocked_balance(termination_timestamp); - let unvested_balance = total_balance - vested_balance; - if unvested_balance > 0 { - self.schedule - .terminate(vested_balance, termination_timestamp); - } - (unvested_balance, termination_config.beneficiary_id.into()) - } -} diff --git a/contract/src/util.rs b/contract/src/util.rs deleted file mode 100644 index bcb7fab..0000000 --- a/contract/src/util.rs +++ /dev/null @@ -1,30 +0,0 @@ -use crate::*; - -pub(crate) fn nano_to_sec(timestamp: Timestamp) -> TimestampSec { - (timestamp / 10u64.pow(9)) as _ -} - -pub(crate) fn current_timestamp_sec() -> TimestampSec { - nano_to_sec(env::block_timestamp()) -} - -pub mod u128_dec_format { - use near_sdk::serde::de; - use near_sdk::serde::{Deserialize, Deserializer, Serializer}; - - pub fn serialize(num: &u128, serializer: S) -> Result - where - S: Serializer, - { - serializer.serialize_str(&num.to_string()) - } - - pub fn deserialize<'de, D>(deserializer: D) -> Result - where - D: Deserializer<'de>, - { - String::deserialize(deserializer)? - .parse() - .map_err(de::Error::custom) - } -} diff --git a/contract/src/view.rs b/contract/src/view.rs index 6b8b756..18e91b5 100644 --- a/contract/src/view.rs +++ b/contract/src/view.rs @@ -1,164 +1,42 @@ -use crate::*; -use std::convert::TryInto; - -#[derive(Serialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Deserialize))] -pub struct LockupView { - pub account_id: ValidAccountId, - pub schedule: Schedule, - - #[serde(default)] - #[serde(with = "u128_dec_format")] - pub claimed_balance: Balance, - /// An optional configuration that allows vesting/lockup termination. - pub termination_config: Option, - - #[serde(with = "u128_dec_format")] - pub total_balance: Balance, - #[serde(with = "u128_dec_format")] - pub unclaimed_balance: Balance, - /// The current timestamp - pub timestamp: TimestampSec, -} - -impl From for LockupView { - fn from(lockup: Lockup) -> Self { - let total_balance = lockup.schedule.total_balance(); - let timestamp = current_timestamp_sec(); - let unclaimed_balance = - lockup.schedule.unlocked_balance(timestamp) - lockup.claimed_balance; - let Lockup { - account_id, - schedule, - claimed_balance, - termination_config, - } = lockup; - Self { - account_id, - schedule, - claimed_balance, - termination_config, - total_balance, - unclaimed_balance, - timestamp, - } - } -} - -#[derive(Serialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Deserialize))] -pub struct LockupCreateView { - pub account_id: ValidAccountId, - pub schedule: Schedule, - pub vesting_schedule: Option, - - #[serde(with = "u128_dec_format")] - pub claimed_balance: Balance, - #[serde(with = "u128_dec_format")] - pub total_balance: Balance, - #[serde(with = "u128_dec_format")] - pub unclaimed_balance: Balance, - /// The current timestamp - pub timestamp: TimestampSec, -} - -impl From for LockupCreateView { - fn from(lockup_create: LockupCreate) -> Self { - let total_balance = lockup_create.schedule.total_balance(); - let timestamp = current_timestamp_sec(); - let unclaimed_balance = lockup_create.schedule.unlocked_balance(timestamp); - let LockupCreate { - account_id, - schedule, - vesting_schedule, - } = lockup_create; - Self { - account_id, - schedule, - vesting_schedule, - claimed_balance: 0, - total_balance, - unclaimed_balance, - timestamp, - } - } -} - -#[derive(Serialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Deserialize))] -pub struct DraftGroupView { - #[serde(with = "u128_dec_format")] - pub total_amount: Balance, - pub payer_id: Option, - pub draft_indices: Vec, - pub discarded: bool, - pub funded: bool, -} - -impl From for DraftGroupView { - fn from(draft_group: DraftGroup) -> Self { - Self { - total_amount: draft_group.total_amount, - payer_id: draft_group.payer_id.clone(), - draft_indices: draft_group.draft_indices.into_iter().collect(), - discarded: draft_group.discarded, - funded: draft_group.payer_id.is_some(), - } - } -} - -#[derive(Serialize)] -#[serde(crate = "near_sdk::serde")] -#[cfg_attr(not(target_arch = "wasm32"), derive(Debug, PartialEq, Deserialize))] -pub struct DraftView { - pub draft_group_id: DraftGroupIndex, - pub lockup_create: LockupCreateView, -} +use model::{ + draft::{DraftGroupIndex, DraftGroupView, DraftIndex, DraftView}, + lockup::{LockupIndex, LockupView}, + schedule::Schedule, + view_api::LockupViewApi, + WrappedBalance, +}; -impl From for DraftView { - fn from(draft: Draft) -> Self { - Self { - draft_group_id: draft.draft_group_id, - lockup_create: draft.lockup_create.into(), - } - } -} +use crate::{near_bindgen, AccountId, Base58CryptoHash, Contract, ContractExt, Into, VERSION}; #[near_bindgen] -impl Contract { - pub fn get_token_account_id(&self) -> ValidAccountId { - self.token_account_id.clone().try_into().unwrap() +impl LockupViewApi for Contract { + fn get_token_account_id(&self) -> AccountId { + self.token_account_id.clone() } - pub fn get_account_lockups( - &self, - account_id: ValidAccountId, - ) -> Vec<(LockupIndex, LockupView)> { - self.internal_get_account_lockups(account_id.as_ref()) + fn get_account_lockups(&self, account_id: AccountId) -> Vec<(LockupIndex, LockupView)> { + self.internal_get_account_lockups(&account_id) .into_iter() .map(|(lockup_index, lockup)| (lockup_index, lockup.into())) .collect() } - pub fn get_lockup(&self, index: LockupIndex) -> Option { - self.lockups.get(index as _).map(|lockup| lockup.into()) + fn get_lockup(&self, index: LockupIndex) -> Option { + self.lockups.get(u64::from(index)).map(Into::into) } - pub fn get_lockups(&self, indices: Vec) -> Vec<(LockupIndex, LockupView)> { + fn get_lockups(&self, indices: Vec) -> Vec<(LockupIndex, LockupView)> { indices .into_iter() .filter_map(|index| self.get_lockup(index).map(|lockup| (index, lockup))) .collect() } - pub fn get_num_lockups(&self) -> u32 { - self.lockups.len() as _ + fn get_num_lockups(&self) -> u32 { + self.lockups.len().try_into().unwrap() } - pub fn get_lockups_paged( + fn get_lockups_paged( &self, from_index: Option, limit: Option, @@ -170,19 +48,19 @@ impl Contract { .collect() } - pub fn get_deposit_whitelist(&self) -> Vec { + fn get_deposit_whitelist(&self) -> Vec { self.deposit_whitelist.to_vec() } - pub fn get_draft_operators_whitelist(&self) -> Vec { + fn get_draft_operators_whitelist(&self) -> Vec { self.draft_operators_whitelist.to_vec() } - pub fn hash_schedule(&self, schedule: Schedule) -> Base58CryptoHash { + fn hash_schedule(&self, schedule: Schedule) -> Base58CryptoHash { schedule.hash().into() } - pub fn validate_schedule( + fn validate_schedule( &self, schedule: Schedule, total_balance: WrappedBalance, @@ -195,54 +73,54 @@ impl Contract { } } - pub fn get_next_draft_group_id(&self) -> DraftGroupIndex { + fn get_next_draft_group_id(&self) -> DraftGroupIndex { self.next_draft_group_id } - pub fn get_next_draft_id(&self) -> DraftGroupIndex { + fn get_next_draft_id(&self) -> DraftGroupIndex { self.next_draft_id } - pub fn get_num_draft_groups(&self) -> u32 { - self.draft_groups.len() as _ + fn get_num_draft_groups(&self) -> u32 { + self.draft_groups.len().try_into().unwrap() } - pub fn get_draft_group(&self, index: DraftGroupIndex) -> Option { - self.draft_groups.get(&index as _).map(|group| group.into()) + fn get_draft_group(&self, index: DraftGroupIndex) -> Option { + self.draft_groups.get(&index as _).map(Into::into) } - pub fn get_draft_groups_paged( + fn get_draft_groups_paged( &self, // not the draft_id, but internal index used inside the LookupMap struct from_index: Option, to_index: Option, ) -> Vec<(DraftGroupIndex, DraftGroupView)> { let from_index = from_index.unwrap_or(0); - let to_index = to_index.unwrap_or(self.draft_groups.len() as _); + let to_index = to_index.unwrap_or(self.draft_groups.len().try_into().unwrap()); let keys = self.draft_groups.keys_as_vector(); let values = self.draft_groups.values_as_vector(); (from_index..std::cmp::min(self.next_draft_group_id as _, to_index)) .map(|index| { ( - keys.get(index as _).unwrap(), - values.get(index as _).unwrap().into(), + keys.get(u64::from(index)).unwrap(), + values.get(u64::from(index)).unwrap().into(), ) }) .collect() } - pub fn get_draft(&self, index: DraftIndex) -> Option { - self.drafts.get(&index as _).map(|draft| draft.into()) + fn get_draft(&self, index: DraftIndex) -> Option { + self.drafts.get(&index as _).map(Into::into) } - pub fn get_drafts(&self, indices: Vec) -> Vec<(DraftIndex, DraftView)> { + fn get_drafts(&self, indices: Vec) -> Vec<(DraftIndex, DraftView)> { indices .into_iter() .filter_map(|index| self.get_draft(index).map(|draft| (index, draft))) .collect() } - pub fn get_version(&self) -> String { + fn get_version(&self) -> String { VERSION.into() } } From 28e763d169a0983fb236903ad2870cede17035a2 Mon Sep 17 00:00:00 2001 From: Vladas <146100@gmail.com> Date: Tue, 28 Nov 2023 11:27:05 +0200 Subject: [PATCH 04/11] deps cleanup --- .env | 2 +- Cargo.toml | 6 +++++- integration-tests/Cargo.toml | 15 ++++----------- integration-tests/src/lockup_interface.rs | 3 +-- res/hodl_lockup.wasm | Bin 336492 -> 335820 bytes res/multisig.wasm | Bin 0 -> 236016 bytes res/sweat.wasm | Bin 0 -> 218503 bytes 7 files changed, 11 insertions(+), 15 deletions(-) create mode 100755 res/multisig.wasm create mode 100755 res/sweat.wasm diff --git a/.env b/.env index 75759ac..a39a8fe 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -export CONTRACT_NAME=contract_name +export CONTRACT_NAME=hodl_lockup diff --git a/Cargo.toml b/Cargo.toml index 2e1a5bc..fa735f7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -19,9 +19,13 @@ uint = "0.9.5" near-workspaces = "0.9.0" +model = { path = "model" } + near-sdk = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } near-contract-standards = { git = "https://github.com/sweatco/near-sdk-rs", rev = "8c48b26cc48d969c1e5f3162141fe9c824fccecd" } integration-trait = { git = "https://github.com/sweatco/integration-trait.git", rev = "8dd8b63cef5e60448629a8903ea43b642bbf9f45" } integration-utils = { git = "https://github.com/sweatco/integration-utils.git", rev = "0b3c2faf0db31cdb3481be4d35dbb48b62a98618" } -model = { path = "model" } + +sweat-model = { git = "https://github.com/sweatco/sweat-near", rev = "f8709a20edeb06c8196306f5fe6025cae21a854e" } +sweat-integration = { git = "https://github.com/sweatco/sweat-near", rev = "f8709a20edeb06c8196306f5fe6025cae21a854e" } diff --git a/integration-tests/Cargo.toml b/integration-tests/Cargo.toml index 03eeda5..ae5d8b1 100644 --- a/integration-tests/Cargo.toml +++ b/integration-tests/Cargo.toml @@ -8,11 +8,9 @@ edition = "2021" name = "integration_tests" [dependencies] -fake = { workspace = true } -rand = { workspace = true } -futures = { workspace = true } -itertools = { workspace = true } tokio = { workspace = true } +anyhow = { workspace = true } +async-trait = { workspace = true } near-sdk = { workspace = true } near-workspaces = { workspace = true } @@ -20,11 +18,6 @@ near-workspaces = { workspace = true } model = { workspace = true } integration-utils = { workspace = true } +sweat-model = { workspace = true } +sweat-integration = { workspace = true } -dotenv = "0.15.0" - -anyhow = "1.0" -near-units = "0.2.0" -# arbitrary_precision enabled for u128 types that workspaces requires for Balance types -serde_json = { version = "1.0", features = ["arbitrary_precision"] } -async-trait = "0.1.71" diff --git a/integration-tests/src/lockup_interface.rs b/integration-tests/src/lockup_interface.rs index f99ef52..ef82efa 100644 --- a/integration-tests/src/lockup_interface.rs +++ b/integration-tests/src/lockup_interface.rs @@ -10,9 +10,8 @@ use model::{ schedule::Schedule, TimestampSec, WrappedBalance, }; -use near_sdk::AccountId; +use near_sdk::{serde_json::json, AccountId}; use near_workspaces::{Account, Contract}; -use serde_json::json; pub const LOCKUP_CONTRACT: &str = "hodl_lockup"; diff --git a/res/hodl_lockup.wasm b/res/hodl_lockup.wasm index 025d8abc4888242f77e79becd1ec313a91b09e80..1588d612c11add3791e2defd5f23951d75962a8a 100755 GIT binary patch delta 62794 zcmcG%2Vhi17dE^zyPLWpH@zpjX#@x%^bWanlqy9<1XL7>sHiA5Na&!H;2?uY6{MG7 zq^O{g8tGL*Q9!{;Q$avM|L4rTceA0qzW@7uUzEFhr=B@;+MGEvdv!Oq(Y-ta5(v)dhxuy992BzNG8BMQ&x z@R;!M@TgdPb=V!YxH!9mac;+VyPbtQ!o%$j&Uv^k+~(l;&(2gW&TUb6iBI5(D8n2` zOtOWCC!r|^59i6@adtbt`TU7h&U8Nq!=FPObEX!AbGIWrCES4?@DZNkaCjW(mOH|E zc&Y=h++lM#k^ogI{sB?~%J@bf4%9?hd;uuN8&9&O*|;qU^=#pG0E<66MWH#=I3g;_aRGG*EV?ZkoR*!|VYRqBdaSlg) zOk4~`m`r6rFj2q)P-{a4&UjQcG)E7lvXq!`q7#QB0955b%NZgrAfZ9Ho!Rg|{WVC% zBeg*Thd&$4M&UmvGQ#}g>;+6OEG)GJ7ufWpdpE1klO=-!T=s$q7^cpGN3yER`EI_4 z|K`}w_wjew*N*QUKRAA36WL#mQO+sONzM_@{muiz$LGUpr4YU-NsPt#Gb%?sXn=o_0=SbJ+|wi_Kp13^;rFxSvf~fO6~{$Kk#ntco%1{AT<5pWRnC9dYUg{-V&@uXiF31ai*ti> zyW<PB5;<2fWKHS=TGuee?SwacCu?PMAC8@Vd=~Hocmg zYip@bTQIs~`cd>X7O(N5ZOEhPOAKiA)3$tVDSdAp!T{5cwtP3s;tscCrS`7a9}*p9 zf$gZrZ3=7!^Isvo*z%H|m3A{WMK(IZnu>l}?T|2(sLMeTZl;|QBf^?SC{XHg7n*kE zYbQseqmt?2RTwJ~r4c=9SwoIgLk=*8teHb5TtrqFuL}cg8~He!Es7(Tvst2dR2rW- zMvRDxW-G;vs3vS$$&sj68D8#*X^&}`6;qeJFAm1kOD`QmD5-CZP%kR_6mN&eB28N` z0x;QvUto5TH#<_~#RjC#9D^jcBa6E{PWlMItl16ZdHi&j_SG2icx;OO`smH#wb<15 z>!^j`;7}lWrQ5brn`R(A(#G@LtaS)sjcGfKLONpwNCp-33bEIenNJw^Q37hYx1aVrJZH&gGOL=EZdqL*whA@T&OQ>_hQw zd@c5oh)QUN@7)uIhFqpnZo3=RwaemYLQ{5GL?_l^o5bCTZuYSllo*HaV-u^el9J*? zKNfRPRp50wgua_+VZxm>aIq(8Iv+byJen*sOmtmoA$SwdEiS;ItV~pI7YIXjtJ&c zXu+Kdi9Q)|=={Zu8lgLAkOUpL)~0P2Ybr;J-5Ck&Gx1|a1C;S(j$?a}TA7uJ1DUZ% z`8hKl-<_48!1re=H}~cqtDIY)hhi&wab&b z*XqT-7prS!Mg2)FctH0oxRR0y0OgQ4TdP(RH6~Ocm0*tEL1IJajcg8ZFVuidJD~0I?|mKMEg*JtO1b60ioN$u#mn?@4um?}jSoy7;ColCZSYU1Mxnfg1EOCfziwT(in z7wf)2?W56H3j}J!rspcjY|}mvrMshI4WwDk>uXdC;YJHpZr6gsj;*@QrrX=1JvEZ= zL~)%cz`VUqUaSQ#SPlfGe?FE#($HXX-PrisG|1d&L|Y@e)QxIw0b?M@&8yoYwevIz zg=7m+u{V!NDc&s#@(=@Z&uu!Qv6n&_Du{18`2DJhu>ah|{t8X7BcgA;gxHVD=K*qt z2oJEkwDaPPdad1xe$2_W21B?>#|tKii4i$&#YWZHS7LvT9_=Mpw^=6mD9l)S;8_+W z`fc@Rhs3$6ZQK^$cqxp5zd#;J&w;u`w`!FE-n?y5?3kEZElP~cNin(|6Hw?TuLwKP&& zuwFEps3B3GHVL0lj|C0dp+s4O+IU`Xki^!C_=b%uo29`gG_!77z8>VZJ)vDz=u*4_ z{DL`OZJ3T4^BYD5m^FmluREedrTT#;Jf{dA3!hx~;&TUMTs$)+LX-~n6Ny7AiHq6I z^WG(PhV; z5~WI_aZ+igL`rtMbaRr+feH=QXG|ruoHmfvgfW@h5K}%c+v)m2jh))SxYuMyipkaQ z%TzXlEjZGUJxdOvvd*;csc3MN0uP*ZSsZVeP|Zj*OO95vV3jlzS6kIZYNPv2!0oO; z08TRxhG*I@VrrvTF;kTq)4b+2u9{KwIvHUe{pxEzT3Fvdno<+3R57LT5T9D<)dF2G zuJr$|?wBTzRxt)ov|z|mkKN^O!9|v>4LTV>Vg@3brh=gBHEk7d5OaB*RC|cO8=_bH zSxjqMx$Y4{QmUPFg+FwK8l%5=BnQ7~=8fS?sKs+B~X`*?ox9=*LCSTO!LEB_M{aivD8<<-1*g z`^)AT?8qB=tJp=cINfLXCq~x-WVzG>Mv9^c|k9HhX~iBU!+gVLV`{T zcWW*9Xm_yon`qr4Ez&FwGq**-7`OJS%6PR!0{czOXt4dadt6dpuALrp~IEYT|N*kt($IQRU+{^ER4!P1<(`wNGqc1J8}^+qbXC8@H$W z|0-2#;QSgkTVoqpOgA&6 zc=_(zcK75RyCbeCwOM-24uN(Pv;-$FWz8BBF zojt(+h|Uk-`E_SfV7$vfd>_=M8lE${q~iIJdVbS|6yo(ReUZ|;Ycig%bgf@u)&Mid z>fY^#MgO2DbT&jkEDm(7f?9udO^W@Ij1sr92=E9<1p@&>tmSg=d4gRLv+k*mW%bT` zQt$F3_e@8TxjoH-;a3TLG}lGkoNF<$TOan9 z_@!G~HNznRsdWT)5~rtL&Gb?r(Lrg2EMMPGYs!Y*yRx^$>)qos=O}-NLpdv8w`W18 z;v?7cl+a5yJO#VDC&6m@se3}oOjQAzS5tb_?Wk_c^4KvEDET5vruC@LMu-P`j0WT< zdvq;1-_ymyOxJ~`r~osyTm;`I+1`=`_kGW*ji4dJ!~}};y<Wapvh%QSfw{h=1B6 zo*bMis^H)Jr(21}NT+}Pc%L$O37an(Jkt-)x1OmTU%`UBs0MHPro{Kp3s`|J1~~A-$89(mY~H-B?byu(ddNYT1|P7JoMG z4_gZx#!%z=M7C6PP|tzS7blpdtJp#NucFo&#hepazV@f6^Fn2yqW25+%S!>>HOC|Y96VuYZsrO#;lXKepD7syPa#PuZ6l?FJn-VsHi;8MquDC)$Iu2%ij4}&2}fo+ z5s|_D!NJ&$$RiuoraRkEj`kiE4ux}t92olx#mS*jqTt1tmWH&Tj*w+ojRrSyTW}0D z;`MwvhiIl7@FusPIQC+uYlDK)PA-!TBKW1MptX80HD>GO#jcJhW5Gea8`h~>JV7YU zeyLgX^4pDKt@!n&q%dRTsDl9*gHL%m8Q5y}a#n!}N(obWOMo7I1ye@vokm1$yiese zR47N@fD#3~S`Ay@vv?_$-CD8i4E2iifLUgSxcG8RoY|#5-pU3ckp){K+^<9f;QFuB z0zUFzNi8r-YA20RXDR5-;aROfC@ES%H-OE+PhC}}4w4#F9Aq8=Y4|=$%~9-zzk8Kx zKSR~ZMUgtHR&lgZ#Ea2ws@PqyDI&$FVPWZSkg6t$2j8ek4F;m|YOT-3%vYLMHd8?| zmfQC_R^;UORg|cRhH10kcr_td30)7|!P+|_^VPa+f$06}kl1$=>p*E5LKZs)s$8(# z-_=nUC_6uFn|J+CY_12Ot1-pPGVjR)DFe=eYJmp9;(W#=OaW~p zWq^^H_Mylb{Wa8wYfN^cY2$ErU_CyOyLlCREN zJq6d)z6q(=68LRGPr%;(wS}xfW>R%O!+#)FO^mPd8}$iUjzPnOHx0Jn+JswLPyrb*ZQ;08&58As z;&N_Zqkee}-K0<$JZlR@-$`!Kc=E$whdGl+1(pJ6x4_yL6)-7;3p#{6^24iu<_((Tpb6 z-8TK0_$24J>b9oMHns(G2k2i_eEqWG>oKu?T4lKF&QGgbFp5lEOo_i9sINFy3Tw+s z@k7c)m11otxzO?~m9oJQ1b7cLQ>-#nYh#6W0+F)2LW)nBaI<@#LM89NnZ*Fz*VEgw zqas6g^ei2q4dV6Dh{E3M$7@!dp5 zB|Xp`lHjT2j`2jo7Z>af$H?CwM=)AAB@M8(LJGMfPWz^K{aP1SP)%z|XnDKl`E;2U ztnVketmo>5Q+*1n$vkW{D$c!?4IYl4SvN>3G9|(n_s*=x{(NIdv_bWG$qq4j%Cqbr zP<|%6A+n0nlkY(91_Sq#2XsfI7+#bDBXdqsOyqn@_t5gia(=?${PEilVs(@_D~*pF zDfC$>^zrblkqt)@9H|gxYW+&)Wk9}q2?$Ok#)cg5ay7FM;I;)fm7gZq6Gh_eKWl7D9#ipB7*jPmXB-(@Hu#l>5GZ&%`s5|=*Bb#=*N%G^J zRJ*veye=9#usorBlkA@5nTazE@}SK^l&(jfS2srx0WCkpx#jU<)$&xM9sp~zVm_NL z=O#J2iN-72ikiipyd(Uic#-$}yK8EO&7*c{k}MpFAJ&wY&{o|mMy@Qct*v_3TbuGa ztS-;n^Im7Zbfi2bc$BDJvId63nUbfYR;c#v`cXI@BHebq80(&uV&MCIu(Bw7zbQ)j zt?h;RdT8xPsOHmaTe9MktaW|a9V*URUjn1!%=3LpEfw$gPBI+QkKl zL%b^W*g}m@$yDDJ1ySc z*d5JblN9rqxanmmZMkVER?VRwKazHqWGZ~*7^J}>Fb`6h;dN6f5c{8e9A)mt+CeK! zx10iJDW}E}Y5_fxP*Oa08_zc=3~peI^gYOsk0YDkQs)dcV)kc3s6wh{BQqj&6Tb{%B6I-afzBSX_yPLGt<1zLb3@@lcFKq_WE5^#OEqzYx+gi84 z+NPu|%T={eF}1fi?T)6>wz`Rfo0`OqI^})fQ;D|BRafRlH#J3t-1h1=hp~MNe-pMQ zbunsNVuc;aUE7i&=6~Ln8M{ugs5zm35f`~>O;IAUwpS5*KFh;UPi&78X*m&d~;Pgk*p?0?wAv4I7IB^K5@c*64ZjcCUwf@z(sMW z>0@o0jvAqfcGiGjY61YVTgK4_}Z9H7Ze{N4eh)eX2I`OdUjUXgi zZNjv{2dO~@LDY6*3UiBbJ2TQ3nggdYsY)WcG=nBc;*x*_M)vQlqrw9kVHuFOE1Idz z{@ZVO)80R(hQT9wP899RLu}B2U5SVjI(eg5*$1GJjt+p0;9;2#x|ahtdUR4?DXzXhnUJrV5I?RwNH->yfUJ4HK?e~hR@ zwLrwTCn3&a1BFtJCc=y~5TEXjGzAwUE5*#Bjr<#XY6H_X_r}&X#%Am-sIhTn(9oLE z4C$Z*hY`|Y6q8}Jbw71)^-79Qd7jBHV)x#-7&XDEPHM!cW3ZgKzPAqbxG%P@(W4XG z?2V)$+JX9|K1*qa5L^S+H0m1##qfO%>KV*UAtp)|Q2A6<$!OAtxv2~UvKw9;SX}2B z2{yK$0#O?7uLU>;?Ju8IFC2s(b;X7K3G6!& zd>}4I0bhZHXAWNL{*I{-z70XnG;ufS2VnVbgcX~tCrJFO*kTU+fH zFD2Y&;@>)$#`egmPJ6U0?dEWZFAgR^Ui^NrZ6zZzi>YmPZHH)gs4e2WiVoF8_U1!P z(v0jtmllj=CVPgQo`^f7u1JuPdfX#Chg(Nl<>0BnDh9q?%6R#38k(7NxIXOW&kr{+ z`wDbLkUL|CNIa4R!@1Fs+H9M6>IlV`O*%pq)*Pvy>f2s*TOPW_wpMw!cC;S!d4mY6 zSS2M_A!)SrqQ~bsXmIrB18(l`+UFkhk?=)z^wIu{rj>l!Glmf*mVS|o%rC!4#PiA* zP1Akaw}#DhY-mK9qlb9fF77*83p(-jqwP@X@KM^YyKyutqD+acKv$Rv8bcsqgJU$l z-p6VpfN=7$=;}MoGL?eCkWAaHrjSAcbmj?i+dY9UYhVlmJ8+CP+f%-bLK}6zOtrRu z0gAI8tzi{RTA6t2%YI_fS9JvcDm!B>H3_rI4=!kYLj;;9kUFDI+`;s4QpDX?-Pk^{ z@5|ca%dfJ7ed>s?<8f@isCK+L>Hgyh-ae_beb`xhUxG2TEn@cZScF5aJKh-W{C2#J z%j^wKBWR*lUw5<`9qr^?{CX);6n{Ooz`(A9XwR+(HL_{=Aew@EWivtRakv5~EBLlq z2*9vn4Q=|=iLg_3yY{`}C`X7twB3BQ@UiRux2^6M46naQQ#O6tP4)eJ>KF3H>^7hw zM5DaERP`O+{+&McZMUuN2yW=DuZC?ym4gJn+m2n57WS^nelqd#4vhu)FrqcZlP5^4 zPdHJ7Z5AJ#NQ$pm4=q@Dd`Db7K{FG0vH=9Z@DzpsPT4h%#mG%5td{XTN`B>G(O!0- zxM{H0{=X7Lz^STc5mD{BSu@^G6*wS@PJM%Yxu?G!8hwd?b2*5v{M`ZM;7SeDw~FiE zwv2mU1;-vyGXa~Ad@XoHBK-2c@6xfQIPANQ{#%VQ;=p%VDkV)MozAI#_~x3iR5MZg zT(!mEUSjza^-k1sS-g0<9%3<8pN{cgsOpUpdro^0W_jUsP4K+u4Dns-GtZkOhqbux zP*+5Aj-R406 zj>pd@3YRKwQ-Xkp7_17pOJY}<(%KYJ{Cyh?>B{$aLm0IDp&r&6k-^Fx4->_eC;>RRFe&fejJfnYl4U{zhr=(Cr0+J;G z7_|d(jU86Yw?Fk)*^%ObpW6n1rX&MH2W4XA&quLuIrf)6fu@tmrHRSER24C2vytBF zEbVG8P)~l2zCUy>3#&@(e0s|Vi)SuGi_&vJH>C$5J?f3~!8aubQnG9G2sqU0af$-1 z*jj+fo_42ff0aG&PT77cd&QlyohrNZrfiIA;01G3_`b~N`!7D;g5 zzT@4CHL7?WO^UQg{21#4a%h5H@BvE*cwQ;~LY*5T`PZ}n!<{|LA^Kg76c>ID5(9n> zg~%WJYgcss*{?(JZ1!6=I(Xu@1biR&TW9OIhTBc6N)-z{U;Ol2d*s&sy$dMWSi7wH zy;u7!#3!H^hq4c7o|Q@i%~_HWjzJ|EN&R4D$sy*nPpP2c3?N~tlgF&6fcCcU7;^a<28Y<_KCJ zbFI2`^<{Bl*R=+41UddpkG7PyitkjrnUF1hvUm`4V}APnnafs)qCcZ8#f(L(wo4w< zSteUMy#+A6D$6@jc#adre*LS?P2 zl?xbJ*)4kftz*nAfYoK6i#>mL3^T=NxiulG{nP9wq4W(2rP@}#pa1K6pNrWyl5cA3 zRE4%S|JQAOC%+9~xqu-e5U?MR?E_hZTY;BvAUC!g$HXUUl}57ljFPSLDq|kDLB?~2 zodDUEvq#gelMA4A2=@s>cHb0)EcbEtH2X(3x3lW-SDuWBllw|p4BI77I#?I>nXKuA zXW}#2^-~rl`#M?cge$~i>UasXgt5|5c7k2sDnD_uhU|*G<^&9X$V@->P=r-n9mYY( zmQA}VXZo?K{-fU`MjRz~`QiB9bUDzUHFT#w*9rd*KxCzxg3)}Dhzygg*DeN2hOdOj4F#oSN zE!!oq0dhCQ&fPipvGnUP@+< z$sK`SdbY^A&y%5;wrGN6-N(oc7^4S^QduZ}6jl5WXJJhg4|9*s3a>8ToP z%*v*BV$psu;b{OrY3wl!yi1sx`l2w_(F+)ibiZ4i7SuhK`w~Z<`(zlzW2Z&>E$e$# z5GsDV932k286j7PE1^~v&hj#?ijWv&S?^V_hFCF&uzF!B1Gt1=OS3U+EzP(!4S7J-b$L`6tL6M*Xt5cVfqH-##AAR&{H)%dQoUTAx=J?X$1s)Ow)!<8pmHNcrRPL_PLA8zm76 z{SH2^)@S)B@<;%L#9pQQL2i4oj@Fxfw(9eSL#LoHrc;1EA%fKg(P74m&WYAj8Ww{ z%)${4(^2b>)1c%$HgdVlZo-n}m?mKKk#bHG);QX5<1rUPHaMLeRcBPk%L`3dHE&*! zZ{GVdw<)^^Y(AX$r_dZKsTF#50Xdbm%k5gl{V`Nb~=7iLn-i~3NAWPe^Mv(?hS!*av4hf)2?ZJTC zW!3hO0_XD&&@*~PDlPB(H<<4j& z`gX`Vy;x^MrzIQp7WG1vGP$`IYhZe&gUHizt7n?%9x^`Z0cN?TgIq3}rNcHO=Yw&qRR;BDRosR~406#7XYq6o86wmKUOJ=(p@(k0RXam_Gs|Zk zq)4T@tqas)kk@AofT;NX-mHPC4UI-sYm}4tAgjU7$PN#(TBao*RK5(6QyyduK>lS9 zvg~+6WdvE$+xG5xVYK+7&7I*&0T z_^}b72=+hG2O4TV&GQqe@={+`Gj^?#0)ZX{XkhCQ8hbW0gxuVh-FlwVT3UtmV^Pg4 zZ9vkF;4{6%M#oCT(eXuNhtEV2^BHabe$bP<nXZPIx+-Y(0^cPshP@oq(l&)ki5Z<(BNH?v&)4)O@X ziYcyW#n9CiWcFOUn>94&%|X6F<5CN|HgSEM4j@VN^KeHjNXRfrU^`@DC)Ni*ztRcg zD3kAXVoi+0`(`~N%^RKAgQof6q|<)4m>=ra40j03kAlvu7B3tjOFA<>!I*s~ISipm z>hZ^w=s;oU`p_<*+%lQd1?J@r`C=EA7-@(vr=eCOJ!zPvX|F)?aJas~5S|`n+AJ7GxNfKp2d8G%7kOke@50*6pvIeQr4&FkqH4|{FH6wa31pdlhJ+S25C$IKk-vfpdJu4V8 zssWjHuQFsFx)&3>OAfmihK&A@BBDnhQmcughgd66;*p0Ctc|(5WhW8G>CimU&4fp=k|>j_9$~fpN6#?W z{>MjHLz4@XjZIRlMt|_hR@u3~;)0j@xAU}N+dkNd*rAJxgo8f5sn8m-w)}t(VOrc`d zW2~WRs5@Ly{|Ob>9%HRcPEjRq;S_~4WvD+qfK`cBXMt#ED_mK%21Y-V^9Qi1v1T53 zhjlS*UL*Ik{BD3+l2w14xkFVU_&>;LPN?ktIE#xl7|DT^g3di5`WQv{E->As$01N4pb$fDf_<2XqFSS;WO3BrsTeNT`*2V#!a%0d)I9XSw& zfh9oI)?Pcs;wX*Yz8c70lHH$R)#ZqMtb6v$=8xN>QTd;I)&rE>;|aFV+G;~g*na64 z#2#nU2FBb)l7%wnxVx~$xS*io_BLoF1sO`wl5xuylH<6U|x8?8vK{YJ}c zEwI4cEE~7PoNbo~kJ0T22*V3jPBvRG_L84a0lxBF9P>w9{cXH!^80() z4|3*Hta+Wwgh=wu+v(mBS~y}mHXkl}m4O$ye9RyzBdCpQQ)S50tf6&q+Kq|I*WKD> z+4E@#;>&W{(@^A><%drL^OxnwudXQ&cVtv^x+4^Ph(;}Jw zGKg}vJoz#Je0%*fuQ0gVSIMYh(1t~_U>JOi#WHX>u3pLZ)XJ=W?Amu0tVx>8YT5I*DssV5VNOzz4GnS$5oP#i#IOm}l~^VntVV!ZK2sCz398Amcj`CL!p=gzC31&1i)V-;G{853?sE1K9tjt-C!i^pZB`<8rh6m!QK$g%?( z+G&bS#Z6o4wl`TkilrsIOVBFsjh_X9DnJ09AH{maFIK~0Zhs;VlvS&K1HuPKBj3ap zaOzRVoFj3_%wZ7g?$K;`ZG+ntau5QfFCm0@dEG&WE&PFfb)F9OP()iUhmB!X{8v!N zJWq}o!{X%jG0=lxZF~n^Um1fXk99aZTZPiOaW?}Hmz5fz&6iEbvh>`gR6o^K9|xd7 z=V%*&&jH#>N{u&qA}NENH;O-SX{+Sau`Dap%nzc*+5rb;V__t%lHVgQ(agh6y2>ML zplQ6MqhQr>ER($}yN+X74;#15A)^6~kK!W_lN4xljW_~xm?oX59eg!z>%KiyXky^n z9Yg|M^@GF!5RbRJug0lAJu_$Xp(jDc|a2O}l9qDnY%V4b2jN{G1 z*Na$^+e(~aBoeUTia-x6{2*LYB4xv=Fr_D~e{3p5GX&W?Z$LJ`B|`NvH8CCd; zTM=z%!Rn_QL>tnA-J`@yfTl!EJeE~F4`dVqLR~7C3D&T{$Us^pV2~oSC)1>miECH> z1BgM&(oFWx;@wjb51qw(r1IdB>a1<}7Wja3e{u2?j@DQo2FX{>2u#WL`e8bFz{(XKB0A}Gx}CW8pD4ko25 znDRildDB^PB-7Rq$D%&gI%;IvYB_s0OAN@RN_9|f*qc~N`}Q87sotx~-`->q|0M{j zR|^CPRWPjqf;;^70L06Q(^*)kDHGK^lFVE&oq4=6)8&fIjAV=8^vs^Y5-P7%7(!4hDJ(lq(Q9T( z3w2;hwT%#M`P2;Ta37TOW?*S?S?-*{>Ia*LINU(6?Dq~lte&@EI?R+s90HE#`04@l%TX^84!2@#mEFf@^ zES|;ccnOX!UbBJVexFs5+>!1jcc>^k?iR7gUG)g%q6E9b2jo4Gdwi_fno08I^@!xt zGL0Gx{Oe105b~-eg-N1~?`Ok(^1gh24orf%@~t^+Bi?$>W$s&#G|6#u;g>F!U(RKn z?s`vk>j1TZ9+cw3?JT6fEGdGok(gzCBx)Z~VauGcKv1O#glFfmM?q>ZS94&=`p;)g zoKvZS44V%(^W*bb`xx&sfX=v=+Xb?0K1*~iSA|38GpKcSK}eAde+SOz64~w@Y#Y2S ze|ZNc|56#YfPD-jbN>Ps6R)s9>k7=gW!6Fp64kPW?A~n45Vp=+?JhTjZ>h0<^g>pK zdpTssMbK*{^7%zDxi`v1i&(7!uXd-KbAbyt*_4)cM~aUTNEWJk_tEW;66VCCuFGg5 zQZugBRrtg0x~hO`95O?_I3WMh@eL@vcQNY?!e{wdH|$&tBl~0d^fIt+^Ci&On`Fl& z@Jf})flFYxY?9-afOR&?noC)v+_Z!}XMA6SobQ&x_D1n#D4<$MP15|3h=~-Q}!#v}tKDeLr0`L_q0TSfTv6oMo5iZJ;}g zsD#REvVtwou<|BEcnB~Z8tKb^?PzJBY zqVPjGX*H|HWAkNBF>bV_MIn8wEzhsU-j~X)D*G0*yX8Y`Sh6fDhGnmsX=SvKA=|HE zvCfYatshtgcmL!yDDt6vcMaTeCGx@=)-c1=Tl$Qd6yoi~)bJMW@ry0H2Cqc19p8f+ zmM+PTmP_7aufZb=rb(1VAy`D?QOVdq8dd^^DU)xNu!r#RR|(5_V5^dZ<=YS2=$(#> z>EVdCPQ*lLRuRj|RbB)k5;}!tC-@e#oL<}HEAO-RW^Hv4iUJw8%VQrxE?#;c%bTsT z(pt4)P<1VPFwyWJF}F>RhP#VM5FtpeXw|e_uofQcE%K|iEDezVv)1dgRq+>2uOr!j z)#wd7LcP{8>y(5UenCrJZL@rL9qY#4k=NF-rFZBUPFW0He!L#yaErXKUUeL?fi*I> z-joL$QP}38kefOlyn%K124bjC4GW8iuOi2RT5@B9O#ZlmHK}fS&(wJb7&mZ$C;>$# zkjG!AOS8#%g80R{PImnOR`(V;`~whanOyJz%P{vv?1q=M0xX;5cOS6(AVr&eh)drU z`Wu6^qdtOcTPf>(#Ig(4QeQCamAf?-`cQ?bS}nk=Q2gjF0SHo{ev{|s># zw^Rfd1L(mXRp2OW0(E~0bpx--dU6!#(I6luPkn@~ge}sw5sI!%*4oH&O*eV~ZQRf- z4BiNVTqa-N$S9g))kZcj)C$!wfZZT7H(^G%$d@;%M&@l|xu#FjYJ>oJy^$b=ZW%B69%neYkeas#; zL4n{=c-tVK{DgJ#25Q?;c>5>pZBYBerL2v=d0)0%UCQe7KgY;Z4(#&!h72}DstCQD zb!(vRKjgxJ;_(LR{zHMfX!xJaEIr|lLAoQyickM&DMxH!5C2bR6=aXCtdVt0K~CSw za{t%U39;ts1eyw)x(LU-(psL{p(1lq%b?^}%8_Mk9$T_L?K4PMxOzs!Iih6$T?n^X zCl4QBnexY7`0auf>&NY8jkt9m0NfkeSh;5}`xZ5d_pw#Ro&9t)h}H}G#NSFmyXM+> zr#}zDIh<&@F4i$m);<6e-t1<`0YIR-!Np}V`5+9C6=HsV-1=z;87DJI9%7%P@Kc9j zp)ZlM4rAX_UDy9Bm@4~oNU4Le|L1HHK7RWgHuO1}{snds{*Z&dfc5c*ocsl3??!p? z3l^Vd9BX6xb@0X!VyaXdUA;l?ZaZQ+n08Kv9)r8I)lmSrNe({BqGQ!{%w|EH{C(9Z zuN{$dj|HP04lWn{#PtbvXfZ*otGEBQt0tJuG(pIoW+M! zz`1p6|iHHhlPI*&cJzkx#~1HW9tc)R?9*Il^`6I zy=|gFv#^Jp3KS>fPO_{VA9w>Pz=_~>7N=>$c|H)G<4KqIV6lUrpx#|?QS}mBBzt)%iPMl&{zBmr>fmtSh zt8iTRTOSym6=1wo2*{#uEf`be!Ef(?cftcnB*HsMBn5Zv?^v37>AJ#HMeIKHT}ABD z4bL}Wmtd>Fep|ouft)TCpg!-2-IUXcl@!JFKYa(ttvMpdaR8qnC-(a3v_iJu8O3Ee zXJCm=m+j7g*(^e$ibP00{8Y|tR_1ucY%aQGAzS-Y&OL((I4{?o!M4N^dEyLH9-P5_0-X zjGXg>BB8ZE_)G*sU416vHYB9|SPt+#Ki&agYdR~CP|1%zB!m(bAwBmKUmGreKS0^&_@(%dAjjaBZ|2UR=_Fvfe@QG?~0x7TovUnjbM3J+9f$_d@z5L`C zRwvAx4<{f@b!0ovvUHE>a>4Dslnl2r^-f=#(1U!z2zYSIfoECu2bArr78Tg~0nkRY zsH#C5_Kd;23ZO6*Rv`JsmeLnHtS@Ma|qa3C!aSy-ZVbe zo>N868AamGt0E1JkNeNVU|%4ooM$ak3^jYxWeVz;4bY*T_1(!%xPY4#uF2dB*uD8s zK6-&=l;5jM7Yyh>z6Irhow>Oeu>1R=JaGZer4Qwe3I(Yrecnu?VEv1%P4G3f?+J?3 zHp=lAu`XLBS6*b~%H4Mn!49TJ7#=>gg{CmBmUQrd$-rM(jf8om=dqQ=fgkOn*_wTE zsy`wEy8X)Dhdmka8%x8+PxfyReI@dq-ypu`$d`X(o_4Bv?1wPg@oi0RGAmEbluYEeAPQ(jMg_Zv&EWo#rP)g%oRa-k4DurCKe?%g0IZ=mvU%Z9&W zqUOkFerIv*lxte;=^*ppfbrcmM)54=W;N=`gTJ%%U;`MMM))=_DSuzmB`gNF$p)9O z;F~8WUV>0xAa`71os#D$jv!|v+QCNvxo|0rML%iNR><0yu^q5dK6n{)v_KBK4D)=3 zTzwghu2{e8GAw-%VAd6!E;uNky23h}zun}I4R>5efR8MU9lzZq4_|@!zA6K*Vv%@I zHouC{?}f7HDrV=ZoO6xUh)3B%>|oL%5)+61pOv-BnO z>Gcvg=$2Z{LNR6muE;k(<}nGsP&28xy0IRg0Y@;X((UICL8yy%_RWj@1T5kGjHiT| zPDuxy=7)z-J3F28Nywbc`Qk@@RK3;J=S}hL4ZkI(A65OEw=Q~jL8ndhDF=@R!J4a| zq)!W0eIb?6-TFl%RnD;UyMWT~?0kBtl{e4K8}HyNW4t#C(dkz3HhE~^GnE~jd@%b! zZgTP@5ZqTzeh)h>bNqM>wp#Y_5tn=dqaqlSJw5w~^?Rp{4*SF3g?z}8J`SVyd zSq|{$Rj|yQ>d#{kj=mIc34*8rhw0rad60faaf(EHCX{Ex$22FDH-*FMI6lHGUt2t#z{H{M9kQy1N&7-} z);NW%zM^qDK{;3BIjFf;L=fy0jwqZ2FJpDX;2b+&X^dq~m8+&UiUI zj1P#d&~0Kq;#thzZ-jB2MK&TIbHnk|o@MghaNffF-7_aetYR^sT%Se_rO}MmRl*** zC7j=Dj?3wa^p2}q1ZZ-*Y#qVrOxfTF(DhGpd;|ttELTQglx6Zj1h}S5UWnkHa3dHM zeLWZ-imx7lBZO&LcS4i>et%CZjRB0*@8({P3@MYkvx)( zmq#MG?u{E^`up#IRJ|wfsz-5hJ+_MiY-{D9DE=Ho^vNimBmar!m1JTxe-?45Q=)lw z?;&)97(kU+i36;I$YcAa$MB&j_+kuyJKHe1)b&wEQKB4q+9ygN5O{zQv#4E=&0}%i zXP$f|mhS^4+#Sa=Yfe>E=Q4_@!MFofrfS-|W=n;1W|*q$$7d7UEt2oV@%yo(bv+I= zw^lZa=Zo3A_20>$!lkNxV9SgUdy+ZRF63WO5>Jj>y73iF^>s?@HvottbnFonQyOi@;rH?K5eI-p zyhc>GXfn<0Cd+L`c$8rZ6-K!q02I(Gp0~+5xy`bWbB6QNowt_kb&~$8i z$zEA0g*QmvN@D?kK&z==P~4{8jTG#E^iSb+|EgI5hZSdW%Z$mfVE2|MbJY)1OMP1?}$N{ccXn8_1jtmAKV zpN$t1?X+y1$$Of@2VlT7DUowBAs}|j&6zwO98egPN1l-6bfadAA>=} z`{68}nyRRS_D(<^>Ga65OnG|QO*|P}g{OsE(gx<78Xlxg$140Fl$*OMPmL=i)aVTm zOZb*DtZlS~t2clOe4r}F&)3P>CX%k!} zQI1*DkKZUQ=RwSpnvY#_Rs(w-|FXH1w?J;G#yh7hrOW%>_(>9X3mfi*()W`uU-#%6 z={8qHw$;prx>_o`Wb^JJXVnd_XUAc;6xG*c^C)z`BO4NEtvrVhet5K;kmm5ny4Cp> z=N=+T`S%DOBO`OT1{%)Dft1=J`{nRv;RX$Hb)AuZ71DTzEY1Omos~y&cn>g6wHhSa z<^45yC&>0CHFz`ge41HjG|%_=VO*;2^juCS{t|OJu9uUYav@>MQO^<{;y`7hWBZx7YtZ9vpZYQaj}E05KJ_SiqY3^HS_ zY+f5L2uZ8WQw&Zp{Q3d-cH`aBQQ_BB3CeA!*~2wyW0i-Ge% z4L|^2$Q})pyc^a)$-B7?AXm4^oeel$X!1AZmC4M8UgOH41ZH*HX+N^(yaEiP#M>S@ zrlHrkqJuF8CXus2e%_GxF$uwhVj+ImAkYgE-!t=l#h2(W6;`mxwJ9QjyL6{&F#V=Mm61L^`GR0 z#ymY){r-WX1?~w|r>)Sj=|jhwqGl7Gh}BD{CcF#KGq(v?txSI0gnJ@VIG?S|HF$}?jP%MCw`gd!o~-rSw?nWj9tgVg}`!(HA`%@Axv zt445unBoT9ylG<2H(}LY|NY?9E0+8Y~BC+z6 zY^agP--T>AlE>GXb{_;?7QbYz4h;Ug4cDyKc~1CZW3dMfMwMofM7^T(S8?cNNDDq3 z3&h`Bz=qo<6I){SSvX3zX{iYOsg}Gxdwu<)mJn9R-PMY3z*+3kt@#-`N%=$@p5$Lh zExWkv+6EKK<3()c`c3WlJjM>K?{gP_g_*x$Mu*KTR3EO0 zYBKXilL9|19Ub^x$tFD@ekSOebfz5C0rR;^j_UyAl*rW`K+tRC?hgEA z|6+5n9Xs+%CX9Atu%IZI4H)crd0!_bv0v-N@9%g>QJx*n&RcG*fV(rq9c{+r!M#F9 zPLyQCklprrm^}dOY-F23pG2^0WNv2&)^YNo&RAk?ljA${IZ4L3e%!gh5U8Lteb!c&%3ZZ!`s8s-6MYY&$rdf1cXFWq>ZQ_iFOTpyeM zEbqIQ_lY&_7Wg#`;4fY!;FlN5DfjXO`P04JRsH57E6gGQ17fo>|nRakHz--c-V*7x&{u}Vg}9m>+fs6atV8f=rx z?&q0FhW-t9M|jtgUQBD>%5(QCy&KZYYn~}#vYRHkQ7;hSd-921yiu4HA&tfrdG3FcVBkoerw7mv5sqE|&x5=dgFm2GU%m$Ixcc!P z@#e(D105}Bp%{uq8;Nf1+WJ@e@!H%v{Ll`*no{_ErcEH^T8AGB$+m=v_~R%_T`RwQ znD?q~&9#+z)W|dhxIRx=mH5?Mv&ut{@Ty)D*=IpM`w<==YPgY9WJw{e+>`T`!-V|$ z5um74UU`I*AGcM1jP#1^w*qR_m?0(k%gFrxx(Jk0+@HSlS3a>cBuXW zkCL+=tU+=S?2r+UK^lJ{8@{fL(kZVi#k1*kUW4PD+xgew zPT4PA6L~Z5ZI!C-C1x0>stv*cRufodd;INrpn#L`1Q;%eJ+fec5`b$4D3kTq0X`jLYMs~=#la$H&;Uu0EXo=<#^5i7t0lGSgr{M0EVi`9Owju(s zCi6tErRqnPs=v3PupOYX3YMyMSf04zv>kQl2=n>f#m-GY_!$P-WkE9LbkU>mNKxr6vqprN^g zcrQpK*K2U{KB;94}QCcCW!O_{-$4$n!2( zyrbPC6PEC{CT%)t$IxfmW9@dV-KRbeYq!%gnC>#!>|>s3nvZa!s3npC)!b)zEmIFW zX+zP+6ZVwj_X|+%}uoTl*CVyGVTgr{E^FUdD8OL?eGW$7Vn(krD$thj5SayM#OshJ|s1nR4+hlk9mICf*5s?0G(?f>=m-K}{$m z0RQwX}3aCzOzgY?p-x$NaRSICbhrJA%-zlf=P>g=& z<%;XoDB157p5<$WpDmwqYSm(5FC-V_`>*g8*e|~F3U8il@-qE?gwmk68p{9&TU^*) z?EWerf})?j3aj@`dEr$^sTI;S3~yIutzo=9`1sXfijQXvQ+)jKFvZ8e4pV%bGn`k= zG$BB>t5B{>q`k^Q1eMyJf>|inuaI@}^$8LZAOiSCdEbwqAlN2ht?KTL_9SspF%- zLL+3=QBX49%GRTl!Wue?=RIPqQkh!dn#4mgITaUDb28&Ol-^g%OABeKU@c{Wg2AK# zI>%0s%0Hv>oj&;(wUc@Y#~FlYiU5HW^@pGLLgw@2mv@jS1|zcfwvfBcVa zC(3mblzY6~&@xq|va#m8c8iVWwLHr87-3%4d=A^Ymv6PR$oco*+gEmFUzPgUSA`QT z`zk_iA7afIz-G9}z@;cQfeHtSh7hyl+J=w8H z8P%pX{isOMDa`21a>c1n#j5w995fZ8Y^t0(6)aF9Kb;DuS|I=W|JwTw=&FkC?|aV7 zO(6-~KtdXXo6tfBksu)DQUpbsRHZki7e(~R(*zO_6_CCGDFLH|YN!`|2oXU7p%YL9 zF(@hu2r4`y_51BP<=z1L-utirx7N45^~A}!GiT1!J$rVYnFS1iGZs>3L!!Bf_Ra?C zeV=a3R`Q;DbM)0F0-Zk>73WgYT;SwSY4BV>aiY?n9stDdCGT9U9XRQ8W*o9L4~@A> zmFFo@Ovibc%wK8JJiRsE?VqPNM|olM)y`XKK6H6Ly{e>F<}1P9()oUZKWKD)7*f?| zB0fXY!6^qRjQj+Dek~hHO7J(C`~`o`Fvilp&o5FQVT@MMRRVsPNMQ@`I8RjFLAEFl(i2A&z0e@^)4|7Q(Se1Sge?@j2zrn$RBsVxcNO(pq(4C)z5}7$wnh2^ z09vPausdy`ly@+dhv}ntl(?nX1Gk=AS`^jnb3cY^9Ur-52`Vs9x1VRk; zepj#X*IyoZ;Fqy<=Uu&W>j&0ZMGV1ErD}XhrOWW>*DPi|o%c+aVHl^#8Mn65*RpAu zY5{|EiJ`rj7J4>0nAhG@pp^l3_b)h@%J2V64(7R)ii4TFQgJYwR{rmCFgvsU=Nt@8 zT=l=m!Zh;(^W8prmhrU(=k^|95tMj|c`Jm4wZJ-iat#<2CBmp1{Vn4faM0kLaX-1* zqpo5l?4*mFX%jVFYYR0Ho5U=r&A8lJ3nPP@)NP$U6xJL$>+YdS7p+&bx_$k>N05GC z5TqX%1nCC`LHdC~kY*bMY4(E%QXh+OBpbFthK6t2dhBn>d({3`X+u$R6#5C%l7(q1 zi*2!~yMy!}lB3M*>Km~$fE?XukfR$7a&%)6a+I-*s`1|=N1Z-$^o}A&gZ`Wx-Sodg zj&3eOj&9cLclQIeYd%opPFSF351R>URm2!{bE-Bhv6v4>gjhIYu7M-yo6V4REb?~R zf;o>q_cpm1Sdgl1(wgEysdg-MJwOtBKd&f71W|po=2goF6l*?o2b4Q z#K}4u!m(pC-HYx2IOTZtmgNjz6ZM%XI~K6mH;M^xouu;HU`X*fJ-tmY-}=FMm8pl* zwNuTb@iDBsuQDL=+Bv~X3fFDIWg3><@Lf4YpKjBun64ar6%|zVrn`(2FU5yw>KpX% zhoEgXQO^(6g8Tc23STb$5DRWAo&FHuWs~O3KKic&i2kP%pe}we{V(ZKe+dxpw9MRm z0ox4MO_N0P34-G2Mh(8QHWF7(Wv|A*v49y;`yLgW9jaOj!6|Cw;e z4;mhf;b>N_-dwvu`ME$!i>Smtm`<#tiu<6;xIwA=K(EcGs{8dvVvOs>VKAqA0>|;r z%g6}=!*w)aKUTNGM+x-telR-6>F|ENt&Nm$NP~$#B;QD-j&%qGQfiQ=kkaTpy?nfd zl#1q6NGZtm5oPD;Q6&u=#AO6oIOtTKUd_ZotXG1z5y#}Q>q!uBP}~8%1Auk-0e|GP z{s0(*PwC(RP{CX2@&OwMS%>T7>zbsiQ(@uzm(&Lqi4!W5cMhTt$LQ!m;JF+sJgE4) zR)h*Aq)Zquuw2Ud2>Y3efeOp%C`i7qXd({f(9% z!Dcv-P9M?xV_X^^1&YQoLr1Z_Z=yGjVnHsXHAg{g9;1Cn_5S*rH2USJUOA+cI|2ov zIJj~2IR;C*>)dSP%0Hy~9R{=E7$oB}Y2PuuLA2^8lo+=9dz)&-7K%NtufU;>A0Nj= z?4&ctb$8@y!`M>QaZ2GQ9S-y1`Fd5$SUZ(X#knt+{>gn=Lr>-VEV=EMS?0@G`JmpG z(#?E5F5K`d(cCdSPSe;0qw)zozH6pgWq}$c?uNfl39=UG39-J96l#oRZ4AyHZ0IP| z-6h?TrfS>`W9cOQDi^)zgkH6}aY!IOHZ_@;$U;3K=D}ZFJpllkNR>{)N`DrOJqZ?j z9ld!Hg8zy1#Yw%qK4}u&KB<@EXZ+`SOx$`NAAm$D>EQ?T|h>VcM7=obGmv8=E{30 z_Dd|9%hd2oWpXt5OO$YhW__vN{o_l}&1)(0w4eEyDku}?W32Zw3LJS_2@h7C)`vcn z%YzCjbTQDbVa3^K$GYmn%&i6;-WZH+`16C*@{B$(=Kk-j(sRxLmOrD@XY^{8MH#H% z!<_iuF62il_Z2`rn>=4Bxj~<=0JC4y_^-gutf56;>1{A9-+l$WkV_$F^|GdlhYf(( z3eM<8qq7*7TTrEVQ+**`T1!fSx_`g1VMI80xi z(|7m|iZF_y)!*oE!jz}pxB8P!{KydVj4-{Kb?A$61QlAS#t;P_YG=%ULPNBz2i?LTzPJKcc0foG@O@pS@7Fon~qpSf!N{4wArc%X9zi6o2lLRdVG1~D7Ij1bJBAWI(IWq1}fyF zf3g~W#`nOHun7NNZ*N?u!ewGeb13i!{ZU&0!&@CgOCELk0edUl{C?2SVdagzpcwgO z7m)ZVeR)A|X8J+sY;FvWmRFt$`i1ZaF;WgvlONTJ9rh!(nkh8vM}XcQ`s7EwUr~KV zx-iz8Dux>Uq|{{He^Sib8$anotYea)8eo<&gx8&qd-Sh7!(g!0!mD@@Cc(Kh^P&;~ zuDYlMbbBr;UAps<-n6FDP%!Kn#j0QN(3zq>!Rr#>XE~@5_2an*Ot1nRZ;(+g3E-8)qR}_Etqr+m!9` zM^y7?tokF=_Gi60AbQ5n`iqGccNW-6*@XK}oo8&%7R&Zm&9CT{n}5VB$5g7PW0K+R zYO#@umY!xE0&0wa#Z>xwe}&du!4^21+Fyk@B7;_3)u-Tsjw-)kG?&uQU(mp{H02k) zhIOY>0oyca3A)})N!>B77~QGPVXl>w{|hwj3*c6%KC1Yu-U>i5{8w~t53T=IKLI{7 z{Wok1TfB9z>2o#h6L0QyeUy&lKI#|hgFyi;DFo>;jS8_t0j6XBfL|BRgZl#}OIh^! zA28mTNK0PO*6~{iWp#Bz6DF0 zV>I`+GI#pq4m7l9ZtIO6HI5+A`Is(`0`eq1GaxY(q?>sJfl9XRpsZ}6z>mkN^Bujd zdAvf=Y|1ngO9lt>0C!v_)YlmP}t>%`p&r%kDxc#o)#P+?}ye=md8V%2Ge!700 z7cL@Om=NZJXZ6lXwPXO7*76rtYQ{}2r;O(aKT*z5(M?-3FGs-WYTkL_v$+BsK&mj& zw7CigOA)egDpP}qZDTibp>nVzjX>0$HoQ-%Q9XVj$Js)5%kWm08tSJ zB{KsAE+D6!0U{pc)Y$;RmW|FpJbt0-fue=!U;@jVK*kTN=(RxcsBJ9G-fW&T4g(Dv z<>m*9#!Pet2}N`T2{xO5El5O{vM_y?TGX8TAgu}#9c>dSr57@VQd#|}eaFqsZFYV$BXk##dD2q-8i*~(DT1s7=f^A^&yFBTUriY0Rq{C7q zRl6nNV{eoY&+ILn5tk=$GDNLmAs|444e6d$NG_!o6Q!Zarec8IT>7~f>fJ&mLof(i zs7Z*3GmrLX3u?Q>{WLN}l!cPytq@U*Mudu1xEE0bJiJN~EKqd2**FSh41`YHIPC3z ze&tz%P*E3Xeq^Y40wrz>6&3Ak&de|AQmCkcccsHbjT(OR%XuFZW9)3vAcg{Ua>^AN z6DC?4Y>ttHzx>*{F0lk?@xx*0<~q6=COY8Jwm3j(A`L4p7DcRKIs`XR!zK_qm9=<6 zsS;g6bOfvoEg_Oxn2MNeEGMqYvwM9GmY`)7SU8!1Jkpaj1y9$nJS+hHZ5;E|^jt7f zz4;}?;~Fy!<-)~ie$EUR_3-rW4Hr(mrEzUlXozhvxQ$D-k&k6uxb1cSRLi(9D_y0M zD?-@bv=_J=1x}oyZaBnHhX@gQpRr=0@uj(3ty-oUb<-?-0?0tIWx}Stg*uY;0%LTJ z@S8Qpn?kmcEb=DG8XBv>EVIA|HZWJU0SER+it*UUeu)%`n3;&u7_SWKQ(BZyFuVyt zlm_t;&PKmn=NQ|Cc%s>ph*p#qBe3n2h!P2S)QJ*Zut83V5_7QE#YPJ@?d=dPMkX4# z%i+lYBD6LSrhs#RwBdE`aGj&G(ZaW}fPObOmIY31EFm$1jWBz}_~CnuF{t~ACccjb zzMmB%mLpf)Si$`Kpjg2M;?rUQaNp3HSivrhd3cyEjS5FIbkiTPSR8p&BTg`NIwVdk ziv5m@b%Z21u$p17-xl;7C@$2OMrF!~W>_b^%ZTV$!(2XmfgA&zihI}^|c`TCv>k~6A3)H4vjG4wZLqYfC10!da=_*p@ROB_w ztm?8Fu%uB61&4M4^8X-psOMmu?9vU?`_#GnOeYz3LV< zOU>uaE2s^&u__YGl{>S)Lo+EHDkm%h%$no^h`j3gf* z;5sqqz@eC^OZ+O)37Azf8k}Qb&l%fJvXh6sBTF) z1h#pJe0H&4(a}2CZ9kyvb;MJsyv;)(z;bEiL!zwdkFJ}WyK3&@hXh}4_2EOJy6r*2 zu9v<7Pt&c3!~pBIRmG&SG_05@uE0zk-mU-NI7=}w*sBAqDPlu^@J#o;!2%u=eC=+Zb z|1k@uPRU~We`HB$uYS$N~BMp)uC_zIHgJ4M)3dzAj>RBH|!!IM$WTI3q@KmXFi z=U)NlJIxhf?rAPQyB`v3;F|c)S^x{?)7=&#(xNCK{F9IRhxcrtL zCo8a3>4%RApR2L5y1Jzq-W)(27#7KT1R0yBCET)tTxx`sQ9YUZO}8E=h0EHKzJR;*3kNnU>$NP z{&8XXatJUVz@03TFxuG>?|_(!dL1u(9N1ooX4#GJ>WZ9HcKh8=`yLl{X~<)uY7kTR zzzS=r<`W>*Y?IlhPl?9Oj1Sp0jvX@jZz=?){~4UHXLGr>q8=ltKD4nd1~Z2?bjFUB zN4MK5M*P1M{r}TMV|CZ=EK-ZkvZdDiR%(K>$BH;=*hN&aUBcYV&Vrl;JNsf6@en{J zs|$#&)zrAFC|7bfGnddi>aB5L0j@*C&Nr&7Xs(^54R{T{;%HZ49hIV>l-132r>l5W z-(q+cmS4;4U@~kXQIE;jrZVKCPR{~UCG|=-aR>|j@$O1G@?v*IpncF?_`Kki{rpTA zRPH5Q*LHffL$tzTE&jA%*PqHyi}omX{L^4_a^YkM z3(#D;gm<>kWt)KXA&J4+m*PYwBs3(6lV&?VK`<BRpC%EaY^T2HXG*C?u|XpPqQ?TMjXM=N@QTwF(2dV<`^ zC08#IZ<}&MByLD#jG-`(JLumFD0d4@=_OjiZzQi5x_gN3_5!=Mj+*rrove#h`G_e# za|?rSlUs1ly+>S5J9>-fY+Z@j)WcM-kLZQ+X7>@ko8rxa=wu(&@R+{fJlBz@uju)N zrE6giPexxEme5gwiFt>SF<`cAr9jD6c$}5p6?8WW;=b<-k=;5f+YjBFL<9PP4LM7b z`ziQ)4-bF7Hk+NxkM~16^5|wih2tLSFLD6|+5iPyH3on#|CELd5KZi(?UmLg71dg@ zxC_eoic=2K{s9Vl?hF8&O(yq1e7=Wz4um-GFkN{L+uE*yz^F&)$AR`{rcTvYq^Hst zs*=ewNbtcKy$3FXDazI}z>F{8+U;Q*# zl#j6WE{1Ide}8}yo)r;jZSu2d+Ft7YtQZ$;3F<;<)?i$!@Xu!j9~2V!9ER%Nt*hsA zqH3^pI)UK)akT0=$l(?Y6jdpDi0ZHD;L&Xe*o#fHYKTa%Ptf2tSXvLeQ&;H15Wy#C zL=ROn_sCEib0`2|FD4p16l`uDEgC8w4Km5(gEV?1w)~84BAyC<&;w}37kWvmJ4}o> zEqy*2A);u{Fx8!t!<2M4Y`7n7qQ=eGsCy3wbGMtO3@FBILQJqVXlmUv z6~e2;_-M%pQP!-g*~@wvIz2+Lv)PX$gyj$9EULQx6B?w`Na6D>RP`9;gZMCf3-^q~ z_~g>{k>XyrLL(#G3QJSVQHoLPKMIIrAH6gRywHB~jslF@v&i0r0S2E`WB-^s1`A*k9UG&T@%1qZ7~lyJ6QQUfKRtrlOPY`Mr&rz| zD-N4;(f>`oapB#eM2|d-~0#2$2tV4xhJZJdJq)kg|tXzMx=kGnjs+g)fOp{!WK{{*u{iZm%`vb{ntI z6EBO0YWd|s&mi`Lx1sK`j#9`~coyG#rfvY001KrxFN-F8Yw61(K04b}FLC+GC@91v zLEL{6O+yXRgk6WAcOQ-vO8|G3;g-w1^#_-^hCcb5NV41&?3bI3m)r$NlXyqwYVyeS zirO^Vy`m_RG85FM(Po0$G}0#6aAh8i#K%?brQ;K@|6ZcP3Bc)lsN>%i%k$dbA@@H* zhyIQZ!FA?U5nWkrFKlvwVECtJDawLNQ5N2YaFE;+L{zv))*nHu@D6_;;d`UUy(*g8 zu2g_QAJ?OrVa~=QoL`klXI~XvYFQ+U!Z@I4iWbTrL7QUGGpaNFUsHR_-(M5=9m-@E zeTqJMO|UjC6z44!B~F+tQq7?Up2hTfir}-D4y8a;4H_i{gX4D=QzT7D6-kZ#FiW~m z3&W*aU}m?(@&y0}Gi~X-1*u>&VPAG(BIu``6g)}P0Yo*L1TxBks8mSf4Tyr~bT^Hj zgf8dMo0CNSy2fFqP`g+&<5{3U^SYvh0VOJ35eRV8mx(&8?ygM&&z(i_Y2X`wqvSL& z*b`}Vn&@SLREUHUZwbGa;WjXJG$-waXt#t1XQ^aj8 z+7#%z9c~-|>@MahJkD*ooldu=innz8#JGx6c-YuW zmGuZ*9OlF=9*^_UmpJd!OK*yHB4{t?4GFnIouXvSoSoYP=-^VZkv^Uw2I6>`gtxKr zt)nJyL!0{sm7NJ183(b}k>zRnOfemrj-9haB-NfJW@z7d@f*(a*IAi?n)&8o&()*o z1FVj&Q_5U1OS|n2p9ka_VpjT*2JR?)fmX^pV7}<2S5DHj6c5zK!q$c1adSZug=M zC~7-5EQFJkvIoA{1~LtCAqfMdL#b13sdzN}pwjZd&JVI|90-leN^7>1F-(Rp6_@ol zC(*=ZqT|!YRB>R_T*E40!qH7fNKJ+UEsOM5Zw5>o zidmho1S;4A(?xWEF;2973CO*+GWR47JUGoWx7>Gemm^r0+98 zplE4yYq{uN!ZL73-?@u*j5J^c5avvJeT5hWQPe+IfE385n0G}#JYIQMRK?@HcSV)b z#&-_vw!u*P4D(cW%i%Z+=KQI{tv&2yC96h&6JP(lha+MehXnArqRIh0Jk~QLGEzMhct#ER* z%sP<*w7z&92=`00ZJj97=n{`~Ebo&VOrK2(;K+8&Dh|6T@=`ZnPW_l)#^L<-66-M{ zX;g7NmVTDE-Fh&rs4VRRtO%EH!AVaBn^bSg7M1Ipr$3|nNuJ#oP>!7s2cerO56DB| z8-y45Xx|3$ayzSJoFRNq8G-kvcz)(OJY~&%CY=bQ0Q*atu@M66G>YFO_Mw6co3Jfr zQTffHZ7I7Q0K?ooZmX9jZU!ag^)A{hR%^DBY3%{7B*AlppMZs)Tfx?yql~RQ6(onq zF?e7`qG|dNSrOhXVzDKsOaQRr5MoaOeKlA{d(*dxWG6u7A0LZKE%K)Vw1(AkI2t(| zFe7~hyI}K~ha9QR&pRfq^l0Ne_hfjPGvuT<_RByOc7Vsrr^j|EcpSO|%tAiR-XZ$n z@yiZK9r7t^C*Uog9^I*819pneh;21uXLdp&kxvzKK-lF|*BsHLp*e;%crgN-Ff!6S zXBeBp;!s(-K(L{C&Z!h>+P)kQ(VQu?e3TY9r}nZ?@3kCJz>soc7kI+fsq49)D5{|Y zw|3y$(D9xUV?BP!Y_q0$T=ymyQ^^r#GELYm>g%cNsrqN48b8nN7Txtb>C|wKsL0R$ zcw(ks$K(HIo%LzvXChX=n@(##6NgJ}Gxw`dKwZWe1Bzzs6$5MxGE*gPp}Tvqdln;7rVuip6`CMjiwKkWa*qtKLrzLYxa+Q*cOZ zi7@L52V#dd*TWmhIa+mCJP~}3aS84x(rNS&FxXK?Krenn&mB?gz_$QO9~Fa8*o32E zik`NEM%9o>RP7j8&_BElj){p}QIU7U^C7!`lbk1jj`O`8Pl!fZ$v2hu*~tTiBgC-1 zyy;zX67!G6dEyIETSwaiPQyee-`o2%?!vRz>bpBII50uGx}OJW3#FbF{{V;a=+{sI z|4fI!7S$tu=3cNdWPrP*XPa91X;h*BIPPbvUjW3A#hPt(gM08WOwnQuzMAt2M5n0B z3YT)5aP$?wbB7K81U7rO3$XkylKUJ?hb~h6b69ZeyuHpby7YQye@w zKZx7N%1}yUimen2MaB72=>6}-Hj5UKp7X_qsoQ}@{U8#3sZ&8c@Lf$AMN-#>v3c@k z@39{Mzd-1he-ydS6bs!(`RXu1y3BnkK^U>@ojkHu%fj!=bN^TOl?*84eIAyf0dCs% zz34&Hu8P=*`&*KhMn|qf9KhFkU@N-!5&nz#9U~n4s~D*PtH1OcL|j?4nd|gb|0AC;dQ%n~Cw>CG#vuMEw zH$)^$iZ9$iE$8Wn8$iJ4y}>s{YaMSp-4`^IhYIa+e;4j>_me#fJ<2~;q&09Anh zO}MIaS9Gptz!f&l92jX}-V~T2dLEpV6=kS1KE{Ef3hF+*E6OKdwDKCC+EL?EBWi!@ z4#CmiVyx@pyppnffFbXs)XG znOb-cNU38VpyefHODYv0+gcDRJZqgM+y+P+Zs8gfV8U&Y)WSd$ZUbcXK&-60VREw$ zh23VCT$*A5VpYG|v3$WH`#0K1xvyjR##(BB+Iden{^c-Qv1u8QTEvXzqT34a{hauu|z zK()(Dw<2XMAULYDYzkJRduhqXE?|#lOT5L{mG^OM6uN5~$tX1S9952z5XXlJ9>jVA$v#6=FgeDcL5}$)zOh#>DL%p2@GOPtXv3{ z>84ougf_=}Csyh}HKdi5OJL5ttgL)do9>N_mt8d9{Xgt7XWJgVR!(-pB0N$~M)F}I zi^Zem)E4xmRcDalB@b~HHc-uVYBK$_Skx%~2D4(05d7Z)i~*IaBg7o?H+AZx!b(D*mTDo)EWns z^R1|03WJ8ZgWW;H!IzEsOk0G~LiTF0)%@t05^jk?99$;%2Aydb_8k?1l z+p9esah)NEnH$`FHvJQ9UYhHB+P+tF2br~REy`W$8Iu(crC(2_&HiZv{X{$ zuOeKhxp0<%@r9nic*#0wILw!u&tU>92u=*i@c4mQD1OnZ@^Ty;1L7-4zS{GN3i5dE zRa^vX!_?qGoab73UrLsl!dGd~=>9UcR0bPUVk1wVqZlwAB--9fmerBrbT9d4MJvPR z*>(mDBdo}9eKBfs0?DFlxJ4?Gmi3n55dCcE4dF-DWIEAX*5P7;`pDWPa#TGDo_wPi zYTZYcZ?>A7!{@+SmF)Jf#7;f$pKA9n049a2`^cJH#g~0#V?#&7O~YO7nkz4rD)*JR zW|lhkm5`uMo2b&T>&>eRvaMv#VIkMx~jtI zDbC}|bE!snA7u=X<)~M6nKqB z*_#XN4CfNdRNk{$?zCPsTfdK$jJ}z;^ns-@Li?WlgP`y^e6D z@(!*IWrNX^o|IvUSQ8i^C@nQUWOXkkG?0BjDWo=#6^d(RH-?JjGC`a0+wJw&ULEZSU$t2G)-+Rm%&3Osfm0N?lvzrkt3R# zNYazKg6mE2Y%An(uu!Ljy2Y(G=edQ=r?LoD*G6ep61kgV`&&(&nqp_d34u)|A6#;% zsZ4xaUGR~}SU1_YU_@`m|A2=bZ44pMb{;MEv~+-6!mS@h91-~I7_ac@wnNmQnM~|( zh9xzOr2;IaeJE#CmztoKlqb0qh2+i4P57<4#3T%im^;u;^?*^`eu!2#lhuNAcy1jb zuD9uIGg;M=7UJeCNSY!%vIF(=$VOOEi#?K!hW2}88$$%d$IUV4&wrw^$1bO&=787b z^ip$BPkWlnKT23zKA;pgy5K13FHkqm@k7znn~?-w`t&&g9XF1x!ND$uOcWt-#RQ3AkwE_s*)|}E_R=G5WVKqEUIiIL(4)6_A4%4GVaSC?AD1XR+qocPCv&OP z0-D`MRtn4FRfjM5BDm$Wr;SViM*E?Ste5iMO1$wzyUz01gvEs7_2YRy zbZBWa{R@>IYoB~B{;uPQypOfStoJu3aJEG|FPOpoN7rc^qq^inD2iwM3YLA_XQ zyfD*C@tp`N{bQA0+)OX29A>zoc}3F0`P_At|CCC%Ds~w+$sqrCMe?T@cNK6!zZH2= zoOLp)poy!v2c^u4!&n!n(&wslYa~M1WLTxISLsd6{2}Z^tkN&3^awM(SSaqX)IBMv zICV8w@UZzJn9m(nA8c0X)y?!EcDYgM1uDIQnH~t=VIw_#4VPn$Pyp|`D*tSiZgs%P zSJ$ib_mJKQREb%TWGRAr@rnAtgbCvedG&(D<-8met%Os!I=7X>q3GG!7CXgqwK5eB z?!kz-mumw2%{N{B6Gj-n<0C4mastuvY7VtoiG<#n-$&iYDp$rN%#rHvO zN_kScXvLHAA$Pu7<*Fs>k94Uom~X_Yh4kmzld=Zr&N(AimZ7HYWM~;@K9A z$#ce@D@DUP%c?jLbY5rqx0K&G6QpTSb84PM*Ex;?Cp&lc~>` zx9(tJAx`gso!}NV=pmD9ZQkhD9`J-tPo_#S8FkN*bOz@#p1DRoTG~U#G^R{X&MEt!v18CW=l7Nm;p4zQvQCMaZ}EWL!;GadS;@?pHJnA6F)Q`2nK9IGs*h|^ zLP4j^i`}3~ePtEUZx3X}Lj72=-Sk*L*`v;%a$xDIk>J2)GLMEXSRB~lesWB$`+2NX z&R>Kno@l0MQ16fGFUtp-oG&ftFB_xzC;Q8C4`9~RXGNGb)y2PH*0k5CScVqg`4-Cw z^kzC1GSC#(F+BOI=%L`_4GDJ%UMgUv%{3u;l_Mu|G1HK#uor9Tu>$#9Sbs=*c%ZDN zFYr?TfmrK>G=HG%p)dTHt|FT9&c{45&@;36GlL_pJdof@lymg@Oqufn0Y>obRyAW6 zKsP-Hd^NiYtu}&?XFAr&XaQfi6c4CyCM(Loo&aGen%{GViVp^({Red%ET`e3Ht7E9 zrC42KV!*#^cFnNVxW8IOdMGM_`AV=8p5K|z@dVgIH$?oQe?Ob+6#F~eokpt%NcE{0DcBd87b>NXBB!r&%e-Yj(HM1 zMN|Je?=}FXd%r(j-_b6HV5i2p@zcRE`9~Y8{RgPal5E=uiTb(lNr%|J1_mE}W zn}k60WCa}=B`2T@PmY!gOIVrb9#jpWYojGQ-qsoeths`o9wXa#va*~%;NM28KiB?^ zRI7w^vy#FwGRdwv-zdOaYpk5^gox(j@$y8um1^*dV@SO zJZE~xzA86Kz072)G)aD=Jw?H3pbnq%KAtA?M1qxlmeb(~=j`U^i>)}-dtH{Zv$YQ_ znk~_adtZEA{!qfx5k)jW=!6i8fJQi;x+mV*Ov{gRIlAC?SA=c|{JXn%3CY7DS{EAm zuB@x|pylt%&f3#-{ayKX#V+r-kj3G+n&fimc(z5bDtQLKdm{AmuF90BHC-(8PI+H` zAFTDJk=e4A*2lXfTV9mpo&*V{oCKcX+C=qR=m8}LNH3@RpJJ1#b1lu~Xotij!U4k2;qZ^w^o!@?y_@6I;4|5%>`45KK;YJoLhx_XXz#4g z@h04qr}a+$t>nq`k6V*BV$uU9@1DHl z5PuP2AcfzNqz9$Z>N~Peok8eh2P78@FdFS2=RRBUI{-oM)F5hb7qZf8-i3Do65(Yg zyVOj7j#nCjW8Nv}Tezoeu!cuV`bBd#4R1Nc$g>z=5{xV@$)h{#*Rhhz0BTXV!-_A) zAe8ruXIODsr8`@5p}KQ)o$S|L4hEH{QD|*Et#}mTwfy3H@w+m|X_jy{4GThd8B))p z&@ft_Cfif|E?JTqOJ^W#v06!I(@xf^g95@4jl5R8EaGu~@p#0;{NmAwyZz$55HH1X z?+NLADKz$*c`gS=*>M3+p6si57Q<64qi4gNmGm<6X-2p+F{R~vm!mk+pTaW)&t`L6 z3XacUfMfjPXAw{Ei+_VSuMjK$4~TPnt@w}ko`-l{zxWBn8~Vj{3?$mo z!Y&{b39xXoL;ViD{t_9xtkC|u5??{8J8AR_?!lbdUB$wIg-eZ@ z;+c$fHq^^3qZP5v#ELzZxg2Hi&Fcs}kXF14+QS3*7(yrxpm4_3W1zG!z^nNE8bS&J zBU!+zBNbsH!V?JmABM=$gBrv+D{GUy{o|a6^^~>1$lDPPB7BW-1>r72$;B>51%x^X zO%b{v^g|eqkcu!5AroOE!XAW+2<4Z!9FHP&M(B$$1mSsvNeBxOHX`I897H&W@Z%C! zqC;XBN+Kj8Jc7^;p$Eb!gb4^!=xDriWlBT_Mg^fdLSuv{5qctwM0gG1O@uiJ?;@;6 z*oLqN;V{A(gbN6NAcQP;IbslMAv8jG452+jcZ2~5BN5UOW+E&`SdXxExvQdMH+~#J z_!{9?giDyF+jtgR;c`SG#3Jx69!=ZRWKA02cE-bib)wr@4UctD_=FwEbU6lM1~wr$ zsgrcp4Y!ika}vSX OneQ8W7_V<$O8*C##%DGF delta 63279 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 PPrr9OddFdC;idFnOT29o diff --git a/res/multisig.wasm b/res/multisig.wasm new file mode 100755 index 0000000000000000000000000000000000000000..bc0300476f8cc20cddf3a4e842d529a4b060162b GIT binary patch literal 236016 zcmeFa54>eXb?3YPopb-3b8hdx{g>`W_Br-UZby(#WN1Q6(siGr1c}7Q%!lNY&jTWD z;DQKEOU&mH`T`Ah5>yh&1Pw|@TboH}Ln20!U~CM@kc1?R!I3D&R#8bb2}U$zV&r{) zt7`AF&$;K`zBCY>dG>{~_pV*LYSpT>R;{&aRaJEU6|aq>D2l(5oOE8gd-v{m_j!r^ z#=9fkMdwBF)#s&GUwt)~#D3$eBTIEno2K)AW5)PfAXd!`}G|PYqsN%`07%#h$NLaaUjM;lIkhv!-0dZ&c>xo_enq zbks$&_}(rmE+wt1n4H;eav2Wvg|AWot3dvrwA$^5Cw5faUT=A2ayzbQ(pS$a#*Y3Dt*ZHr#EXtHRec8^}z4oFjcAWc@=kI#; zh3D?NaL1)lLoZejzIgS{9p~@b5jFMd`Gc>{fAy}5UU%uaKF7J|zxvg$d;O)mqA}&% zJTm76J1)EAbw6|Nt6z8NuAO`wjVo(!WY*Wb{?btT`IlT0O(^4*BWFDKr*~ZRQy1=v zCYAr#k@>0l(kouGV`tP-o(&`OfToLgL~Ug_VPuB$FSy{`i+B9Yxj%i;t_#n7&Fe3@ zM6KU(#TEXW6PNQ%y?Gtgblk|VF4%F&j$J!cna9@XE(p2GE-<{d%JR;?^a9^~Q)SA| z9lKt?^HSealb4-;=|!(T_w~D8bBaevd*_ayy6B2sJ9eIX2_!Kk&^pk-1?QIOKHK!G zU%zwbj!Soy{eJF67x)5KUUAV+UCP%1m~$_?*r%_(Z0C*(b_h$a>%S~NYFu>bWv>sk zlb^q9*ZHr$aK{DbLNBko;-Zk;zViG_UcUn<40h|i&K0{}xAXj;+Hvkr@4N^aT_IT8 zWtw326g|~XdhP43+~E^fl!+Ife}$p9nSMQcB1`i;P1BXrX}T&|y?S~&T{AtsW=$Hc zT|1qwT^p~9qBM?^^~W5O9COU{`aI1yq)`%0^HrWF>2%8be0nL&4JOh4~=$3@X9 z<=L=d!}N3!$5FmvIv(+_n+hoEN|R~*=s$k=?dit<(`%(ae>&Mb4YZV*r!jwP)=mG1 zbX__fr_n0lS(oM%Rirt0wSUtaHpJ-$up~qpHo4I5^gn)=<%%N9K23q?OtNmx78<+- zRHU(hpI)D?Ypz>0ovfRVSEk?xKsS6hL&)YA6o3q{aU!7Btt*NoIexlG3vT$If7H2Z z-Kv!C09tS#$KCjZB%Yo=ejP31ZM;E=$qTzeP7;&n#5H!Oj*7O%(_6{FJN}El=X;fx zkNA@E_&-k8ZkRrv9*fhpB(9u&*ejdIq`PA`KYu7{?T*|vpS{AKqExp2OO?Q1UD`P%3&(y1UN%FKV6j+HMTOj|#- zV^>woN7Ge$y!7?2Et9Sg8~;_BUxH*P)8P0kqKDFz${GqfUjxDw(Z|v?<@bXx{-@6! zAUOBZ*IoMR9nr_r$#c)W;QU?ZpS$DI3(~lC?ztE4IR7%nr7L!%$;9eDa0l!f&Q;OrMDNWY=Z?nqHsXlKr>rK=zL8FSGxVy(Rlb`sVD`?Dp&v*(bA~ zPreX;CH`Xk&+$LSZ%Q7@-jjSY{>sm#$-bF=Bm1}P z>)AhNPiFs+P2Tt6_7mCpakAU3?Iy|gBA!X2mv$mu$9t(R?bGyFq%NO3IT=^BB0V9B zda+xpH&KypiQ;WhTtsesj%?#|TcT)N#5dif#p~qMC~B=HWB$(h`T3|9xm|OP$BnJ` zLDjpTPvU&!@{4=%X1h(c14cBHtnWlF>PGFjm26J|Or=NpZ(c`kgU-dLb*NNXbGL6d zz~%mFyqAy{Sb0pgq|xl|>u2Y$xpvRqoAw==-+kS-G-^k!mNkvGSOM#uzF+Ul;;V~Y z`;xhCL?&A8!78HG9;m2<_on#bUJ~BKZv9+0EfTkRuA6aLKS%xD26u;}IhXD1HdWcy z?wBZGt%5!F zu%{mOttIF$N)q(&A}(UcvX{)pSLsfCMu(r>%Qixre4T7dMZ4KS9$VKS=*#977xz+6 zbJjYQQY7a9nz+uGLO--Ie}}P2>Q=*%;$--j7x}MRvhuH<%irl)NpIS|Mf4wB907HU zEJX?S^&2J=3=Y{K&D|+iwIaUy`CtfodN8e^V$@7dPF}(V1Z<~>+ha+DL(yFR(6xq6 z!ELZp>Fu#ce!3;OBZgh-**{ihm#n!x_8q`CWNZq`bW6(TW3x}i*Ue_H>ZHZkY_a!1 zx7niFW+$4Bx{zphT-_6OV;7weJ@lD-=c5hDb~g^mABybf^o@v$=C1rtRaN=8Ey6<6`&NHGrLe@)`gH7Mgv^wq(0uzyMn9?sy9sVCoO44a#t5(#J~+ zyo`evIGqNa8r_!6X5Fb_fc!H|_EdcN)Od1Cnl+kHJgGL(Xnxg!|I_z~`s2=|>W{k; zki6ddqh9Y==#TOCy1`OHzm6(p?SfJoRVix*OZm8O>r8TI^3u*K8l3>gSi3Qp>*0VA zdnqahLi#v^I9ALyx>N0;QvbS^KMy$ZUr~#&FN&aZihNtLKPmD9-IY)qIbPCBct7EW zI-|V`c=UdIucHBT{M6{H>f2(j=z#3lJvrF7NS$6_A3iF29e9We#;4HWQxUdmnOsoI zO4U+Ua2pje{*10*OS&H7vF1m8Do_P+G$q{aOUvG_FuX5ikhM3EIr65v!gw$3PS3{O zp^uEm)f@ZMF1<37>`QyA`FvG(O~8d-ZA~t89h|0+Oj9@u2Hu6)bu0n4y9gD97^Z%cc@6lyq9*8;WmA;Bqy4%M(r|u zNXYO29n4U)h7}Vhi0nsveyeGvUhk#GRXI$hk({xKhbT;Wusi+5&?rITE zyQ5m5(*45k{nsLUU<&SM<88?uN<&g9&0|-R^5o=p(s}dMg!_5jJz-J>YRf-mjfQo6 zYW_ERZm&=!ebG~A%rQaZ896aZ9)pp^Xtn$m=8+0{$iMofo#sHMx^%D(rceYi<=09w zHmHjN^_MZc8$aC`L!*Lc4Dhriy*m-*yRD25%7{d#`yQ5v&OcrD?@4a_v`)i4`6dbO z7x?*yUi^M zDSCPrOV`Z^+CHF%J)kOm26<7eg42qr+2V#h-7#JFA_G<(=#I~hgL>;KM*F)Y+4fy$ z^l&HlqKA8wMq#1{(Tj439_}Wc``bhh`*ioH(E}|E^w2hXAl1`@wKIk$C&ld8Vm#k)h z2wIiCERZ<&tKES4kgh9`QMyiVgJ_Cr;dn*BF<0R@Emmzy9!L!T2f6@*1V|r74)FQ_ z%s)*Z2sQU7-RV}5TPlKM3+0RKx1{?L1h3%Rg2?S^v{MOpn=(M!-6#qMZ`CX$R8p+; zP?Ou;8qei#GmaD$*%#`6-c)3dNcMywr~rCOgpooRNo#hJOWc~B&^Xbu*4co*XB%p( zjiL`oD^F_AKX&{?;bQ$&E zo8Bg9UxMw8_#wO0eiBeHWFH6d@wu{NtfFNOhTuYW5y6% zm=+Qu01U$V5CnDAJ&E}%2xYwqX4#BVYXtctScm==OedF60-SLn7tntmmv~DOZA;GP z4g|h}3;27vN0ymvUf*8h9{uG*v}Zc#zutN&gh>W84Va8lXs_NpO=X)|Le-n*! z@I5K-LQzC`31m9IM}@Su_l-L|Ai=n!)(mqFg8gsGMDY;7xEd3hC(R}RI*Xd?17#crW7kn?}Kqtv*zkhs7FAcj5(oAJ(=I5 zX8IA4YSGokD^;y+T8J<|-pl%mT4sVNk?4k0L*I?hxdmNkUv5hxbxGth+(t!YAV~ki z9Ojieq-y%vecbg8V=}boPyh{LYc_+5=tAhEHIP zgS*N)IL2os+D$qF#Vlk7K7&p`#_kPsMy^@wC59ZKSqz#K*_o&bTyT-RFLZ~V8~JaR zouj-L2Y*2!xe~SB826ioi=!e7!A(zi_kub^ZB2Yz3q3eYdX2W~E;_Hx} z<;%_1@`9QeB}mS=o6(&-KGw|@Hl9sD_CNXz0C`r>`m$%(H!j&_-SbPvF;@lu2ecO) zffZZegkgp&ibb&T3(|3OEv2VM=vYPieJKtaV?}q|oZG(#tmN-kw{>IBsYX!{gz;4hj};t(R2P3~G2o7}A~t+C1P>Un@omeZ9-pdJs(zZ>-o zR<}Ir`G5O70^wBBNeaj~s%tNWMIO8jR(G4+p+DkUsS3stx1bw>tlA2|a)%mxj(DG|`JR^##)W=p30UKwDeC z8TZHWzKS9aPWfN{JhcNmYlgA^ld4H&Z2z>&>5ET0%$chaHhB^V* z)d?7I+y^Akiu_*HD}hiW*fyEyTd%*rl?ipGH^R`~r(adt|MLiH7=jEvLP|qO={4L7 zH7(h2e-uHqTtBaCYZkgTFJX~lCxW?5I0gAp{)dJO=%0Dl1bDf_)L{Z>7FTIBnD@R~ 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