diff --git a/.github/workflows/basic.yml b/.github/workflows/basic.yml index 03f35dc39..b7cf15682 100644 --- a/.github/workflows/basic.yml +++ b/.github/workflows/basic.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - rust-version: [1.72.0] + rust-version: [1.75.0] steps: - name: Checkout sources uses: actions/checkout@v3 @@ -28,7 +28,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - rust-version: [1.72.0] + rust-version: [1.75.0] steps: - name: Checkout sources uses: actions/checkout@v3 @@ -48,7 +48,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - rust-version: [1.72.0] + rust-version: [1.75.0] steps: - name: Checkout sources uses: actions/checkout@v3 diff --git a/.github/workflows/codecov.yml b/.github/workflows/codecov.yml index f3a84650c..01fbd503b 100644 --- a/.github/workflows/codecov.yml +++ b/.github/workflows/codecov.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-20.04 strategy: matrix: - rust-version: [1.72.0] + rust-version: [1.75.0] steps: - name: Checkout sources uses: actions/checkout@v3 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d0fcc0efd..31b315054 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - rust-version: [1.72.0] + rust-version: [1.75.0] steps: - name: Checkout sources uses: actions/checkout@v3 diff --git a/.gitignore b/.gitignore index 4cdce8968..29304db24 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,5 @@ target/ /artifacts/ cobertura.xml + +**/test_snapshots diff --git a/Cargo.lock b/Cargo.lock index d0bc9b527..af67fc208 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -34,9 +34,9 @@ dependencies = [ [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ "derive_arbitrary", ] @@ -82,9 +82,9 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" [[package]] name = "base64" -version = "0.21.4" +version = "0.21.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" +checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9" [[package]] name = "base64ct" @@ -116,7 +116,7 @@ dependencies = [ "num-bigint", "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -144,26 +144,26 @@ dependencies = [ "iana-time-zone", "num-traits", "serde", - "windows-targets", + "windows-targets 0.48.5", ] [[package]] name = "const-oid" -version = "0.9.5" +version = "0.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28c122c3980598d243d63d9a704629a2d748d101f278052ff068be5a4423ab6f" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" [[package]] name = "core-foundation-sys" -version = "0.8.4" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" [[package]] name = "cpufeatures" -version = "0.2.9" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ "libc", ] @@ -181,9 +181,9 @@ dependencies = [ [[package]] name = "crypto-bigint" -version = "0.5.3" +version = "0.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" dependencies = [ "generic-array", "rand_core", @@ -203,12 +203,12 @@ dependencies = [ [[package]] name = "ctor" -version = "0.2.5" +version = "0.2.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37e366bff8cd32dd8754b0991fb66b279dc48f598c3a18914852a6673deef583" +checksum = "30d2b3721e861707777e3195b0158f950ae6dc4a27e4d02ff9f67e3eb3de199e" dependencies = [ "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -238,13 +238,13 @@ dependencies = [ [[package]] name = "curve25519-dalek-derive" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -268,7 +268,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.38", + "syn", ] [[package]] @@ -279,7 +279,7 @@ checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5" dependencies = [ "darling_core", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -301,22 +301,23 @@ dependencies = [ [[package]] name = "deranged" -version = "0.3.8" +version = "0.3.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946" +checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4" dependencies = [ + "powerfmt", "serde", ] [[package]] name = "derive_arbitrary" -version = "1.3.1" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e0efad4403bfc52dc201159c4b842a246a14b98c64b55dfd0f2d89729dfeb8" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -345,9 +346,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "ecdsa" -version = "0.16.8" +version = "0.16.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4b1e0c257a9e9f25f90ff76d7a68360ed497ee519c8e428d1825ef0000799d4" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" dependencies = [ "der", "digest", @@ -359,9 +360,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "2.2.2" +version = "2.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60f6d271ca33075c88028be6f04d502853d63a5ece419d269c15315d4fc1cf1d" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" dependencies = [ "pkcs8", "signature", @@ -389,9 +390,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.6" +version = "0.13.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" dependencies = [ "base16ct", "crypto-bigint", @@ -412,11 +413,17 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" +[[package]] +name = "escape-bytes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bfcf67fea2815c2fc3b90873fae90957be12ff417335dfadc7f52927feb03b2" + [[package]] name = "ethnum" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8ff382b2fa527fb7fb06eeebfc5bbb3f17e3cc6b9d70b006c41daa8824adac" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" [[package]] name = "ff" @@ -430,9 +437,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.2.1" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" [[package]] name = "fnv" @@ -453,9 +460,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "js-sys", @@ -466,9 +473,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.28.0" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "group" @@ -489,9 +496,9 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] name = "hashbrown" -version = "0.14.1" +version = "0.14.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" [[package]] name = "hex" @@ -502,6 +509,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hmac" version = "0.12.1" @@ -513,16 +526,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.57" +version = "0.1.59" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613" +checksum = "b6a67363e2aa4443928ce15e57ebae94fd8949958fd1223c4cfc0cd473ad7539" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows", + "windows-core", ] [[package]] @@ -553,12 +566,12 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" dependencies = [ "equivalent", - "hashbrown 0.14.1", + "hashbrown 0.14.3", "serde", ] @@ -570,24 +583,24 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "itertools" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] [[package]] name = "itoa" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" [[package]] name = "js-sys" -version = "0.3.64" +version = "0.3.66" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a" +checksum = "cee9c64da59eae3b50095c18d3e74f8b73c0b86d2792824ff01bbce68ba229ca" dependencies = [ "wasm-bindgen", ] @@ -617,9 +630,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.149" +version = "0.2.152" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" [[package]] name = "libm" @@ -635,9 +648,9 @@ checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" [[package]] name = "memchr" -version = "2.6.4" +version = "2.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" [[package]] name = "miniz_oxide" @@ -667,7 +680,7 @@ checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -691,18 +704,18 @@ dependencies = [ [[package]] name = "object" -version = "0.32.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" dependencies = [ "memchr", ] [[package]] name = "once_cell" -version = "1.18.0" +version = "1.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" [[package]] name = "paste" @@ -780,9 +793,15 @@ dependencies = [ [[package]] name = "platforms" -version = "3.1.2" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4503fa043bf02cee09a9582e9554b4c6403b2ef55e4612e96561d294419429f8" +checksum = "626dec3cac7cc0e1577a2ec3fc496277ec2baa084bebad95bb6fdbfae235f84c" + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" [[package]] name = "ppv-lite86" @@ -807,31 +826,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.38", -] - -[[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 1.0.109", - "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", + "syn", ] [[package]] @@ -909,9 +904,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.15" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] name = "sec1" @@ -929,35 +924,35 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.20" +version = "1.0.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "836fa6a3e1e547f9a2c4040802ec865b5d85f4014efe00555d7090a3dcaa1090" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" [[package]] name = "serde" -version = "1.0.188" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.188" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] name = "serde_json" -version = "1.0.107" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -966,15 +961,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ca3b16a3d82c4088f343b7480a93550b3eabe1a358569c2dfe38bbcead07237" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ - "base64 0.21.4", + "base64 0.21.5", "chrono", "hex", "indexmap 1.9.3", - "indexmap 2.0.2", + "indexmap 2.1.0", "serde", "serde_json", "serde_with_macros", @@ -983,14 +978,14 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.3.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e6be15c453eb305019bfa438b1593c731f36a289a7853f7707ee29e870b3b3c" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] @@ -1016,9 +1011,9 @@ dependencies = [ [[package]] name = "signature" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" dependencies = [ "digest", "rand_core", @@ -1026,15 +1021,27 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.1" +version = "1.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" +checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" + +[[package]] +name = "soroban-builtin-sdk-macros" +version = "20.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a10c4f54b2f546429395dc76b7cca7d89f49a920bfa39834998fc89ad2ac0c8d" +dependencies = [ + "itertools", + "proc-macro2", + "quote", + "syn", +] [[package]] name = "soroban-env-common" -version = "20.0.0-rc2" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2508a41765935d3bef43b2264667c4603725cf7ddd851321f1dc2b3bca8bb88" +checksum = "803553ca3023ed9fe53b4cdac9f0603da4ef967823bd58b52ea24d73639e1996" dependencies = [ "arbitrary", "crate-git-revision", @@ -1050,9 +1057,9 @@ dependencies = [ [[package]] name = "soroban-env-guest" -version = "20.0.0-rc2" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41f1b3ebb747487ff9920822112a5816030e053734ed63c05f1a7db476f2768" +checksum = "06b756e50b27df7ed8722f8709833fe88a8ced5e1499e81cfc379d74c8330a93" dependencies = [ "soroban-env-common", "static_assertions", @@ -1060,13 +1067,16 @@ dependencies = [ [[package]] name = "soroban-env-host" -version = "20.0.0-rc2" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347fc729270de2fc8e312ba1872ef90fdc8dfcd0dacdd07a3bb7a038c41ea6d6" +checksum = "80edcbfca555940b538349bdf4c19b96c1845b7a160d22e528e9096a33c4eb7e" dependencies = [ "backtrace", + "curve25519-dalek", "ed25519-dalek", "getrandom", + "hex-literal", + "hmac", "k256", "num-derive", "num-integer", @@ -1075,8 +1085,8 @@ dependencies = [ "rand_chacha", "sha2", "sha3", + "soroban-builtin-sdk-macros", "soroban-env-common", - "soroban-native-sdk-macros", "soroban-wasmi", "static_assertions", "stellar-strkey", @@ -1084,9 +1094,9 @@ dependencies = [ [[package]] name = "soroban-env-macros" -version = "20.0.0-rc2" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16b7a75d77ae47143a07f92a35661c21e965f63bb4362d8491188a993687745" +checksum = "f7a4be3a2737115035b062be921a86ba78374937e4b0918071c7ea4c531240bb" dependencies = [ "itertools", "proc-macro2", @@ -1094,45 +1104,36 @@ dependencies = [ "serde", "serde_json", "stellar-xdr", - "syn 2.0.38", + "syn", ] [[package]] name = "soroban-ledger-snapshot" -version = "20.0.0-rc2" +version = "20.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d202c5870aeec1cb97bfd06a94b8fe691c513ba6da8638deb07d8660e90056ba" +checksum = "900b090cdcd3e81bdb8b6a1712e3b53ae682ca0653c27e1cbddff585e13f0a52" dependencies = [ "serde", "serde_json", + "serde_with", "soroban-env-common", "soroban-env-host", "thiserror", ] -[[package]] -name = "soroban-native-sdk-macros" -version = "20.0.0-rc2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8cf96e5c9308347bc6fa0735d0591475a20b43ed00f96ad2df623bbe9c1e88" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "syn 2.0.38", -] - [[package]] name = "soroban-sdk" -version = "20.0.0-rc2" +version = "20.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d771d43a66ba0df14ff28ac1b37a6568da00afa12f28273a67fe92853ab28f8" +checksum = "2b20b89f388b28eedce486b81edf9b5c4f852bc09a592ebe6ebceda6e2a82a2b" dependencies = [ "arbitrary", "bytes-lit", "ctor", "ed25519-dalek", "rand", + "serde", + "serde_json", "soroban-env-guest", "soroban-env-host", "soroban-ledger-snapshot", @@ -1142,9 +1143,9 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" -version = "20.0.0-rc2" +version = "20.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf5a6dd2e08217fdd75f3f849256dda2614badda9095df233a47c7c8f9783493" +checksum = "d5b36fa6f88360bb9092378056cd860d9a8702027306fbfde701a8040f440531" dependencies = [ "crate-git-revision", "darling", @@ -1157,14 +1158,14 @@ dependencies = [ "soroban-spec", "soroban-spec-rust", "stellar-xdr", - "syn 2.0.38", + "syn", ] [[package]] name = "soroban-spec" -version = "20.0.0-rc2" +version = "20.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2a55aab81d7cd1df66f85de3d815fb08fc5fa412270dc374e031e27528c711" +checksum = "315e7d51ff27ff8044f251c55ed3b21f62c13b220f95382584822637d026f7bd" dependencies = [ "base64 0.13.1", "stellar-xdr", @@ -1174,9 +1175,9 @@ dependencies = [ [[package]] name = "soroban-spec-rust" -version = "20.0.0-rc2" +version = "20.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bcfa549d3362e6eafa3a51ad29d571f3dbae2cb9fe33d9f94c00a9f742f71df" +checksum = "0744c5b6011bfc5f933e26662ff874e75b8d8453c5d54c52d1ffe70db7a01788" dependencies = [ "prettyplease", "proc-macro2", @@ -1184,7 +1185,7 @@ dependencies = [ "sha2", "soroban-spec", "stellar-xdr", - "syn 2.0.38", + "syn", "thiserror", ] @@ -1192,25 +1193,24 @@ dependencies = [ name = "soroban-token-contract" version = "0.0.6" dependencies = [ - "pretty_assertions", "soroban-sdk", "soroban-token-sdk", ] [[package]] name = "soroban-token-sdk" -version = "20.0.0-rc2" +version = "20.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7294182d2197ac4da58163ca8f9c2e4df2045e5b81752928d82da9289ef366ee" +checksum = "23f745e0a5a3331349736d1b448129e41c85ccd50ba66bc4f5b22ff467a8a70b" dependencies = [ "soroban-sdk", ] [[package]] name = "soroban-wasmi" -version = "0.31.0-soroban1" +version = "0.31.1-soroban.20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6e3e79c1f227ec98ea1e8fbf43d0267b9ca748616c9c8c0162fa2a8ca4d5d2" +checksum = "c1aaa682a67cbd2173f1d60cb1e7b951d490d7c4e0b7b6f5387cbb952e963c46" dependencies = [ "smallvec", "spin", @@ -1227,9 +1227,9 @@ checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" -version = "0.7.2" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d1e996ef02c474957d681f1b05213dfb0abab947b446a62d37770b23500184a" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" dependencies = [ "base64ct", "der", @@ -1243,26 +1243,29 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-strkey" -version = "0.0.7" +version = "0.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0689070126ca7f2effc2c5726584446db52190f0cef043c02eb4040a711c11" +checksum = "12d2bf45e114117ea91d820a846fd1afbe3ba7d717988fee094ce8227a3bf8bd" dependencies = [ "base32", + "crate-git-revision", "thiserror", ] [[package]] name = "stellar-xdr" -version = "20.0.0-rc1" +version = "20.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e09a3734914a7427dbcd4f06b6dcd2b1cf38e934202f6abe4d73658f718b6113" +checksum = "e9f00a85bd9b1617d4cb7e741733889c9940e6bdeca360db81752b0ef04fe3a5" dependencies = [ "arbitrary", "base64 0.13.1", "crate-git-revision", + "escape-bytes", "hex", "serde", "serde_with", + "stellar-strkey", ] [[package]] @@ -1279,19 +1282,9 @@ checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" [[package]] name = "syn" -version = "1.0.109" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.38" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -1309,58 +1302,57 @@ dependencies = [ [[package]] name = "test-case-core" -version = "3.2.1" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c25e2cb8f5fcd7318157634e8838aa6f7e4715c96637f969fabaccd1ef5462" +checksum = "adcb7fd841cd518e279be3d5a3eb0636409487998a4aff22f3de87b81e88384f" dependencies = [ "cfg-if", - "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] name = "test-case-macros" -version = "3.2.1" +version = "3.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37cfd7bbc88a0104e304229fba519bdc45501a30b760fb72240342f1289ad257" +checksum = "5c89e72a01ed4c579669add59014b9a524d609c0c88c6a585ce37485879f6ffb" dependencies = [ - "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.38", + "syn", "test-case-core", ] [[package]] name = "thiserror" -version = "1.0.49" +version = "1.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" +checksum = "6e3de26b0965292219b4287ff031fcba86837900fe9cd2b34ea8ad893c0953d2" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.49" +version = "1.0.55" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" +checksum = "268026685b2be38d7103e9e507c938a1fcb3d7e6eb15e87870b617bf37b6d581" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", ] [[package]] name = "time" -version = "0.3.29" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" +checksum = "f657ba42c3f86e7680e53c8cd3af8abbe56b5491790b46e22e19c0d57463583e" dependencies = [ "deranged", "itoa", + "powerfmt", "serde", "time-core", "time-macros", @@ -1374,9 +1366,9 @@ checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.15" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" +checksum = "26197e33420244aeb70c3e8c78376ca46571bc4e701e4791c2cd9f57dcb3a43f" dependencies = [ "time-core", ] @@ -1407,9 +1399,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342" +checksum = "0ed0d4f68a3015cc185aff4db9506a015f4b96f95303897bfa23f846db54064e" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1417,24 +1409,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd" +checksum = "1b56f625e64f3a1084ded111c4d5f477df9f8c92df113852fa5a374dbda78826" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn 2.0.38", + "syn", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d" +checksum = "0162dbf37223cd2afce98f3d0785506dcb8d266223983e4b5b525859e6e182b2" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1442,22 +1434,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" +checksum = "f0eb82fcb7930ae6219a7ecfd55b217f5f0893484b7a13022ebb2b2bf20b5283" dependencies = [ "proc-macro2", "quote", - "syn 2.0.38", + "syn", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.87" +version = "0.2.89" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1" +checksum = "7ab9b36309365056cd639da3134bf87fa8f3d86008abf99e612384a6eecd459f" [[package]] name = "wasmi_arena" @@ -1496,12 +1488,12 @@ dependencies = [ ] [[package]] -name = "windows" -version = "0.48.0" +name = "windows-core" +version = "0.52.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" dependencies = [ - "windows-targets", + "windows-targets 0.52.0", ] [[package]] @@ -1510,13 +1502,28 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc", - "windows_i686_gnu", - "windows_i686_msvc", - "windows_x86_64_gnu", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc", + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", ] [[package]] @@ -1525,42 +1532,84 @@ version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + [[package]] name = "windows_i686_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + [[package]] name = "windows_i686_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + [[package]] name = "yansi" version = "0.5.1" @@ -1569,6 +1618,6 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" [[package]] name = "zeroize" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/Cargo.toml b/Cargo.toml index 2a94bce34..629167a82 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -13,8 +13,8 @@ curve = { path = "./packages/curve"} decimal = { path = "./packages/decimal"} phoenix = { path = "./packages/phoenix"} num-integer = { version = "0.1.45", default-features = false, features = ["i128"] } -soroban-sdk = "20.0.0-rc2" -soroban-token-sdk = "20.0.0-rc2" +soroban-sdk = "20.0.3" +soroban-token-sdk = "20.0.3" test-case = "3.1" pretty_assertions = "1.4.0" diff --git a/contracts/factory/src/contract.rs b/contracts/factory/src/contract.rs index d7ccfb47e..7039a6d0d 100644 --- a/contracts/factory/src/contract.rs +++ b/contracts/factory/src/contract.rs @@ -197,7 +197,7 @@ fn validate_token_info( #[cfg(test)] mod tests { use super::*; - use soroban_sdk::BytesN; + use soroban_sdk::{BytesN, String}; #[test] #[should_panic( @@ -206,14 +206,17 @@ mod tests { fn validate_token_info_should_fail_on_token_a_less_than_token_b() { let env = Env::default(); - let contract1 = BytesN::from_array(&env, &[1u8; 0x20]); - let contract2 = BytesN::from_array(&env, &[0u8; 0x20]); - let token_wasm_hash = BytesN::from_array(&env, &[8u8; 0x20]); let stake_wasm_hash = BytesN::from_array(&env, &[15u8; 0x20]); - let token_a = Address::from_contract_id(&contract1); - let token_b = Address::from_contract_id(&contract2); + let token_a = Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )); + let token_b = Address::from_string(&String::from_str( + &env, + "CAOUDQCLN3BYHH4L7GSH3OSQJFVELHKOEVKOPBENVIGZ6WZ5ZRHFC5LN", + )); let token_init_info = TokenInitInfo { token_a, @@ -237,14 +240,17 @@ mod tests { fn validate_token_info_should_fail_on_min_bond_less_than_zero() { let env = Env::default(); - let contract1 = BytesN::from_array(&env, &[0u8; 0x20]); - let contract2 = BytesN::from_array(&env, &[1u8; 0x20]); - let token_wasm_hash = BytesN::from_array(&env, &[8u8; 0x20]); let stake_wasm_hash = BytesN::from_array(&env, &[15u8; 0x20]); - let token_a = Address::from_contract_id(&contract1); - let token_b = Address::from_contract_id(&contract2); + let token_a = Address::from_string(&String::from_str( + &env, + "CAOUDQCLN3BYHH4L7GSH3OSQJFVELHKOEVKOPBENVIGZ6WZ5ZRHFC5LN", + )); + let token_b = Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )); let token_init_info = TokenInitInfo { token_a, @@ -267,14 +273,17 @@ mod tests { fn validate_token_info_should_fail_on_min_reward_less_than_zero() { let env = Env::default(); - let contract1 = BytesN::from_array(&env, &[0u8; 0x20]); - let contract2 = BytesN::from_array(&env, &[1u8; 0x20]); - let token_wasm_hash = BytesN::from_array(&env, &[8u8; 0x20]); let stake_wasm_hash = BytesN::from_array(&env, &[15u8; 0x20]); - let token_a = Address::from_contract_id(&contract1); - let token_b = Address::from_contract_id(&contract2); + let token_a = Address::from_string(&String::from_str( + &env, + "CAOUDQCLN3BYHH4L7GSH3OSQJFVELHKOEVKOPBENVIGZ6WZ5ZRHFC5LN", + )); + let token_b = Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )); let token_init_info = TokenInitInfo { token_a, diff --git a/contracts/factory/src/storage.rs b/contracts/factory/src/storage.rs index 09b0f458c..f1b8e86fa 100644 --- a/contracts/factory/src/storage.rs +++ b/contracts/factory/src/storage.rs @@ -105,24 +105,3 @@ pub fn is_initialized(e: &Env) -> bool { pub fn set_initialized(e: &Env) { e.storage().persistent().set(&DataKey::Initialized, &true); } - -#[cfg(test)] -mod tests { - use super::*; - - #[test] - #[should_panic(expected = "HostError: Error(Context, MissingValue)")] - fn test_get_admin_should_panic_when_no_admin_saved() { - let env = Env::default(); - - get_config(&env); - } - - #[test] - #[should_panic(expected = "HostError: Error(Context, MissingValue)")] - fn test_get_lp_vec_should_panic_when_no_vec_saved() { - let env = Env::default(); - - get_lp_vec(&env); - } -} diff --git a/contracts/factory/src/tests.rs b/contracts/factory/src/tests.rs index adddf50eb..42343fa3a 100644 --- a/contracts/factory/src/tests.rs +++ b/contracts/factory/src/tests.rs @@ -1,5 +1,5 @@ use crate::contract::{Factory, FactoryClient}; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; use self::setup::install_multihop_wasm; @@ -14,7 +14,10 @@ fn test_deploy_factory_twice_should_fail() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let multihop = FactoryClient::new(&env, &env.register_contract(None, Factory {})); let multihop_wasm_hash = install_multihop_wasm(&env); diff --git a/contracts/factory/src/tests/config.rs b/contracts/factory/src/tests/config.rs index d9a1a3f01..aa192f8f1 100644 --- a/contracts/factory/src/tests/config.rs +++ b/contracts/factory/src/tests/config.rs @@ -4,14 +4,16 @@ use super::setup::{ }; use phoenix::utils::{LiquidityPoolInitInfo, StakeInitInfo, TokenInitInfo}; -use soroban_sdk::arbitrary::std; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{testutils::arbitrary::std, Address, Env, String}; use soroban_sdk::{Symbol, Vec}; #[test] fn factory_successfully_inits_itself() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let factory = deploy_factory_contract(&env, Some(admin.clone())); @@ -23,7 +25,10 @@ fn factory_successfully_inits_multihop() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let factory = deploy_factory_contract(&env, Some(admin.clone())); @@ -38,13 +43,31 @@ fn factory_successfully_inits_multihop() { #[test] fn factory_successfully_inits_lp() { let env = Env::default(); - let admin = Address::random(&env); - let mut token1_admin = Address::random(&env); - let mut token2_admin = Address::random(&env); - let user = Address::random(&env); - - let mut token1 = Address::random(&env); - let mut token2 = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut token1_admin = Address::from_string(&String::from_str( + &env, + "CDJ4KQHEFNC5GBCRBKGIDGNLVVXORIDHXU5EYFQIXMDPJ3ACJVPXUOFY", + )); + let mut token2_admin = Address::from_string(&String::from_str( + &env, + "CC6TPVKWO2ZHGIMAIBPKE3RA74TGPCD6637FAT5NS3UCFDQ7OHMIIG6I", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + + let mut token1 = Address::from_string(&String::from_str( + &env, + "GCHM6Y4BYTUJZQ4KABLTC73IWDZNFBZ2NML5W4AQG7XAJEOMLF5I774H", + )); + let mut token2 = Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )); env.mock_all_auths(); env.budget().reset_unlimited(); diff --git a/contracts/factory/src/tests/queries.rs b/contracts/factory/src/tests/queries.rs index 97869cf41..5e23eeab4 100644 --- a/contracts/factory/src/tests/queries.rs +++ b/contracts/factory/src/tests/queries.rs @@ -3,8 +3,7 @@ use super::setup::{ }; use phoenix::utils::{LiquidityPoolInitInfo, StakeInitInfo, TokenInitInfo}; -use soroban_sdk::arbitrary::std; -use soroban_sdk::{contracttype, testutils::Address as _, Address, Env, Symbol, Vec}; +use soroban_sdk::{contracttype, testutils::arbitrary::std, Address, Env, String, Symbol, Vec}; #[contracttype] #[derive(Clone, Copy, Debug, PartialEq, Eq)] @@ -34,15 +33,39 @@ pub struct LiquidityPoolConfig { #[test] fn test_deploy_multiple_liquidity_pools() { let env = Env::default(); - let admin = Address::random(&env); - let user = Address::random(&env); - - let mut token1 = Address::random(&env); - let mut token2 = Address::random(&env); - let mut token3 = Address::random(&env); - let mut token4 = Address::random(&env); - let mut token5 = Address::random(&env); - let mut token6 = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + + let mut token1 = Address::from_string(&String::from_str( + &env, + "GCHM6Y4BYTUJZQ4KABLTC73IWDZNFBZ2NML5W4AQG7XAJEOMLF5I774H", + )); + let mut token2 = Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )); + let mut token3 = Address::from_string(&String::from_str( + &env, + "CDWLHFNUQ2CM5WJKIFGEMY5LMXPARVKHD5FJONZTCPXKEYPCUT5PW2L2", + )); + let mut token4 = Address::from_string(&String::from_str( + &env, + "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + )); + let mut token5 = Address::from_string(&String::from_str( + &env, + "CC4W4EIZMCCUG2R5FHQGQDSBZY6S2V2CIIJQZ5XBXCKUVVSBR7HC6267", + )); + let mut token6 = Address::from_string(&String::from_str( + &env, + "CCIEUAD63OGWJ3FKBI5SZG7HZ34PPYF4RCPWVB5SOP6G7FBBNAVPYHKW", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -228,18 +251,41 @@ fn test_deploy_multiple_liquidity_pools() { } #[test] -#[should_panic(expected = "Factory: query_for_pool_by_token_pair failed: No liquidity pool found")] fn test_queries_by_tuple() { let env = Env::default(); - let admin = Address::random(&env); - let user = Address::random(&env); - - let mut token1 = Address::random(&env); - let mut token2 = Address::random(&env); - let mut token3 = Address::random(&env); - let mut token4 = Address::random(&env); - let mut token5 = Address::random(&env); - let mut token6 = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + + let mut token1 = Address::from_string(&String::from_str( + &env, + "GCHM6Y4BYTUJZQ4KABLTC73IWDZNFBZ2NML5W4AQG7XAJEOMLF5I774H", + )); + let mut token2 = Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )); + let mut token3 = Address::from_string(&String::from_str( + &env, + "CDWLHFNUQ2CM5WJKIFGEMY5LMXPARVKHD5FJONZTCPXKEYPCUT5PW2L2", + )); + let mut token4 = Address::from_string(&String::from_str( + &env, + "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + )); + let mut token5 = Address::from_string(&String::from_str( + &env, + "CC4W4EIZMCCUG2R5FHQGQDSBZY6S2V2CIIJQZ5XBXCKUVVSBR7HC6267", + )); + let mut token6 = Address::from_string(&String::from_str( + &env, + "CCIEUAD63OGWJ3FKBI5SZG7HZ34PPYF4RCPWVB5SOP6G7FBBNAVPYHKW", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -377,6 +423,26 @@ fn test_queries_by_tuple() { assert_eq!(first_lp_address_by_tuple, lp_contract_addr); assert_eq!(second_lp_address_by_tuple, second_lp_contract_addr); assert_eq!(third_lp_address_by_tuple, third_lp_contract_addr); +} + +#[test] +#[should_panic(expected = "Factory: query_for_pool_by_token_pair failed: No liquidity pool found")] +fn test_queries_by_tuple_errors() { + let env = Env::default(); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let factory = deploy_factory_contract(&env, Some(admin.clone())); - factory.query_for_pool_by_token_pair(&Address::random(&env), &Address::random(&env)); + factory.query_for_pool_by_token_pair( + &Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )), + &Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )), + ); } diff --git a/contracts/factory/src/tests/setup.rs b/contracts/factory/src/tests/setup.rs index 983883f4e..3abbdd43d 100644 --- a/contracts/factory/src/tests/setup.rs +++ b/contracts/factory/src/tests/setup.rs @@ -1,6 +1,7 @@ use crate::contract::{Factory, FactoryClient}; -use soroban_sdk::testutils::Address as _; -use soroban_sdk::{Address, BytesN, Env}; + +use soroban_sdk::{Address, BytesN, Env, String}; + #[allow(clippy::too_many_arguments)] pub mod lp_contract { soroban_sdk::contractimport!( @@ -37,7 +38,12 @@ pub fn deploy_factory_contract<'a>( env: &Env, admin: impl Into>, ) -> FactoryClient<'a> { - let admin = admin.into().unwrap_or(Address::random(env)); + let admin = admin + .into() + .unwrap_or(Address::from_string(&String::from_str( + env, + "CDALIOEQHREN5DJANC3O6WN3KF2MVRXAYAWCKF3XJIBQJTFVXJHI6HWE", + ))); let factory = FactoryClient::new(env, &env.register_contract(None, Factory {})); let multihop_wasm_hash = install_multihop_wasm(env); diff --git a/contracts/multihop/src/storage.rs b/contracts/multihop/src/storage.rs index 3dde62ece..a88f8aa0b 100644 --- a/contracts/multihop/src/storage.rs +++ b/contracts/multihop/src/storage.rs @@ -1,14 +1,5 @@ use soroban_sdk::{contracttype, Address, Env, Vec}; -#[contracttype] -#[derive(Clone, Debug, PartialEq, Eq)] -pub struct Referral { - /// Address of the referral - pub address: Address, - /// fee in bps, later parsed to percentage - pub fee: i64, -} - #[contracttype] #[derive(Clone, Debug, Eq, PartialEq)] pub struct Swap { diff --git a/contracts/multihop/src/tests.rs b/contracts/multihop/src/tests.rs index b4de9ca6b..adc8bfc0a 100644 --- a/contracts/multihop/src/tests.rs +++ b/contracts/multihop/src/tests.rs @@ -1,6 +1,6 @@ use crate::contract::{Multihop, MultihopClient}; use crate::tests::setup::deploy_factory_contract; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; mod query; mod setup; @@ -13,7 +13,10 @@ fn test_deploy_multihop_twice_should_fail() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let multihop = MultihopClient::new(&env, &env.register_contract(None, Multihop {})); let factory = deploy_factory_contract(&env, admin.clone()); diff --git a/contracts/multihop/src/tests/query.rs b/contracts/multihop/src/tests/query.rs index ed008f1a3..d0a4b3026 100644 --- a/contracts/multihop/src/tests/query.rs +++ b/contracts/multihop/src/tests/query.rs @@ -4,7 +4,7 @@ use crate::tests::setup::{ deploy_multihop_contract, deploy_token_contract, }; -use soroban_sdk::{testutils::Address as _, vec, Address, Env}; +use soroban_sdk::{vec, Address, Env, String}; #[test] fn simulate_swap_single_pool_no_fees() { @@ -12,7 +12,10 @@ fn simulate_swap_single_pool_no_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let token1 = deploy_and_mint_tokens(&env, &admin, 100_000_000i128); let token2 = deploy_and_mint_tokens(&env, &admin, 200_000_000i128); @@ -62,7 +65,10 @@ fn simulate_swap_three_equal_pools_no_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let token1 = deploy_and_mint_tokens(&env, &admin, 10_000_000i128); let token2 = deploy_and_mint_tokens(&env, &admin, 10_000_000i128); @@ -165,7 +171,10 @@ fn simulate_swap_single_pool_with_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let token1 = deploy_and_mint_tokens(&env, &admin, 1_001_000i128); let token2 = deploy_and_mint_tokens(&env, &admin, 1_001_000i128); @@ -217,7 +226,10 @@ fn simulate_swap_three_different_pools_no_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let token1 = deploy_and_mint_tokens(&env, &admin, 10_000_000i128); let token2 = deploy_and_mint_tokens(&env, &admin, 10_000_000i128); @@ -320,7 +332,10 @@ fn simulate_swap_three_different_pools_with_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let token1 = deploy_and_mint_tokens(&env, &admin, 10_000_000i128); let token2 = deploy_and_mint_tokens(&env, &admin, 10_000_000i128); @@ -447,10 +462,19 @@ fn simulate_swap_three_different_pools_with_fees() { fn query_simulate_swap_panics_with_no_operations() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let factory = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let factory = Address::from_string(&String::from_str( + &env, + "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + )); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); let token = deploy_token_contract(&env, &admin); token.mint(&recipient, &50i128); @@ -467,10 +491,19 @@ fn query_simulate_swap_panics_with_no_operations() { fn query_simulate_reverse_swap_panics_with_no_operations() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let factory = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let factory = Address::from_string(&String::from_str( + &env, + "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + )); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); let token = deploy_token_contract(&env, &admin); token.mint(&recipient, &50i128); diff --git a/contracts/multihop/src/tests/setup.rs b/contracts/multihop/src/tests/setup.rs index 50e38bc78..b106f48fe 100644 --- a/contracts/multihop/src/tests/setup.rs +++ b/contracts/multihop/src/tests/setup.rs @@ -1,9 +1,8 @@ use crate::contract::{Multihop, MultihopClient}; use crate::tests::setup::factory::{LiquidityPoolInitInfo, StakeInitInfo, TokenInitInfo}; -use soroban_sdk::arbitrary::std; -use soroban_sdk::testutils::Address as _; -use soroban_sdk::{Address, Bytes, BytesN, Env}; +use soroban_sdk::testutils::arbitrary::std; +use soroban_sdk::{Address, Bytes, BytesN, Env, String}; pub mod factory { soroban_sdk::contractimport!( @@ -66,7 +65,12 @@ pub fn deploy_multihop_contract<'a>( admin: impl Into>, factory: &Address, ) -> MultihopClient<'a> { - let admin = admin.into().unwrap_or(Address::random(env)); + let admin = admin + .into() + .unwrap_or(Address::from_string(&String::from_str( + env, + "CDALIOEQHREN5DJANC3O6WN3KF2MVRXAYAWCKF3XJIBQJTFVXJHI6HWE", + ))); let multihop = MultihopClient::new(env, &env.register_contract(None, Multihop {})); diff --git a/contracts/multihop/src/tests/swap.rs b/contracts/multihop/src/tests/swap.rs index 5d84c6f89..f3b26d2f8 100644 --- a/contracts/multihop/src/tests/swap.rs +++ b/contracts/multihop/src/tests/swap.rs @@ -7,7 +7,7 @@ use crate::tests::setup::{ }; use soroban_sdk::contracterror; -use soroban_sdk::{testutils::Address as _, vec, Address, Env}; +use soroban_sdk::{testutils::Address as _, vec, Address, Env, String}; #[contracterror] #[derive(Copy, Clone, Debug, Eq, PartialEq, PartialOrd, Ord)] @@ -20,7 +20,10 @@ pub enum ContractError { fn swap_three_equal_pools_no_fees() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -66,7 +69,10 @@ fn swap_three_equal_pools_no_fees() { // 4. swap with multihop let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &50i128); assert_eq!(token1.balance(&recipient), 50i128); assert_eq!(token4.balance(&recipient), 0i128); @@ -101,7 +107,10 @@ fn swap_three_equal_pools_no_fees() { fn swap_three_equal_pools_no_fees_referral_fee() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -147,7 +156,10 @@ fn swap_three_equal_pools_no_fees_referral_fee() { // 4. swap with multihop let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &50i128); assert_eq!(token1.balance(&recipient), 50i128); assert_eq!(token4.balance(&recipient), 0i128); @@ -166,7 +178,7 @@ fn swap_three_equal_pools_no_fees_referral_fee() { }; let operations = vec![&env, swap1, swap2, swap3]; - let referral_addr = Address::random(&env); + let referral_addr = Address::generate(&env); // FIXM: Disable Referral struct // let referral = Referral { // address: referral_addr.clone(), @@ -197,7 +209,10 @@ fn swap_three_equal_pools_no_fees_referral_fee() { #[test] fn swap_single_pool_no_fees() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -221,7 +236,10 @@ fn swap_single_pool_no_fees() { // 4. swap with multihop let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &5_000i128); // mints 50 token0 to recipient assert_eq!(token1.balance(&recipient), 5_000i128); assert_eq!(token2.balance(&recipient), 0i128); @@ -247,7 +265,10 @@ fn swap_single_pool_no_fees() { #[should_panic(expected = "HostError: Error(Contract, #1)")] fn swap_should_fail_when_spread_exceeds_the_limit() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -269,7 +290,10 @@ fn swap_should_fail_when_spread_exceeds_the_limit() { ); let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &5_000i128); // mints 50 token0 to recipient let swap1 = Swap { @@ -287,7 +311,10 @@ fn swap_should_fail_when_spread_exceeds_the_limit() { #[test] fn swap_single_pool_with_fees() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -311,7 +338,10 @@ fn swap_single_pool_with_fees() { // 4. swap with multihop let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &1000i128); assert_eq!(token1.balance(&recipient), 1000i128); assert_eq!(token2.balance(&recipient), 0i128); @@ -339,7 +369,10 @@ fn swap_single_pool_with_fees() { fn swap_three_different_pools_no_fees() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -385,7 +418,10 @@ fn swap_three_different_pools_no_fees() { // 4. swap with multihop let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &5_000i128); assert_eq!(token1.balance(&recipient), 5_000i128); @@ -423,7 +459,10 @@ fn swap_three_different_pools_no_fees() { fn swap_three_different_pools_with_fees() { let env = Env::default(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); env.mock_all_auths(); env.budget().reset_unlimited(); @@ -469,7 +508,10 @@ fn swap_three_different_pools_with_fees() { // 4. swap with multihop let multihop = deploy_multihop_contract(&env, admin.clone(), &factory_client.address); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); token1.mint(&recipient, &10_000i128); assert_eq!(token1.balance(&recipient), 10_000i128); @@ -522,10 +564,19 @@ fn swap_three_different_pools_with_fees() { fn swap_panics_with_no_operations() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let factory = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let factory = Address::from_string(&String::from_str( + &env, + "CDLZFC3SYJYDZT7K67VZ75HPJVIEUVNIXF47ZG2FB2RMQQVU2HHGCYSC", + )); - let recipient = Address::random(&env); + let recipient = Address::from_string(&String::from_str( + &env, + "CCDS5FMXB4M7HP7E6SCYAQASHLL2SG4OPZL3BNORDXVYMOCVG2WRYYZX", + )); let token = deploy_token_contract(&env, &admin); token.mint(&recipient, &50i128); diff --git a/contracts/multihop/src/utils.rs b/contracts/multihop/src/utils.rs index 505bb31b5..ad6a106f3 100644 --- a/contracts/multihop/src/utils.rs +++ b/contracts/multihop/src/utils.rs @@ -29,10 +29,10 @@ mod tests { fn verify_operations_in_swap_should_work() { let env = Env::default(); - let token1 = Address::random(&env); - let token2 = Address::random(&env); - let token3 = Address::random(&env); - let token4 = Address::random(&env); + let token1 = Address::generate(&env); + let token2 = Address::generate(&env); + let token3 = Address::generate(&env); + let token4 = Address::generate(&env); let swap1 = Swap { offer_asset: token1.clone(), @@ -56,10 +56,10 @@ mod tests { fn verify_operations_in_reverse_swap_should_work() { let env = Env::default(); - let token1 = Address::random(&env); - let token2 = Address::random(&env); - let token3 = Address::random(&env); - let token4 = Address::random(&env); + let token1 = Address::generate(&env); + let token2 = Address::generate(&env); + let token3 = Address::generate(&env); + let token4 = Address::generate(&env); let swap1 = Swap { offer_asset: token3.clone(), @@ -84,10 +84,10 @@ mod tests { fn verify_operations_should_fail_when_bad_order_provided() { let env = Env::default(); - let token1 = Address::random(&env); - let token2 = Address::random(&env); - let token3 = Address::random(&env); - let token4 = Address::random(&env); + let token1 = Address::generate(&env); + let token2 = Address::generate(&env); + let token3 = Address::generate(&env); + let token4 = Address::generate(&env); let swap1 = Swap { offer_asset: token1.clone(), @@ -108,10 +108,10 @@ mod tests { fn verify_operations_reverse_swap_should_fail_when_bad_order_provided() { let env = Env::default(); - let token1 = Address::random(&env); - let token2 = Address::random(&env); - let token3 = Address::random(&env); - let token4 = Address::random(&env); + let token1 = Address::generate(&env); + let token2 = Address::generate(&env); + let token3 = Address::generate(&env); + let token4 = Address::generate(&env); let swap1 = Swap { offer_asset: token1.clone(), diff --git a/contracts/pool/src/tests/config.rs b/contracts/pool/src/tests/config.rs index c197d32ea..3e4eb1712 100644 --- a/contracts/pool/src/tests/config.rs +++ b/contracts/pool/src/tests/config.rs @@ -1,5 +1,5 @@ extern crate std; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; use super::setup::{deploy_liquidity_pool_contract, deploy_token_contract}; use crate::storage::{Config, PairType}; @@ -10,8 +10,14 @@ fn update_config() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -19,7 +25,10 @@ fn update_config() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -100,8 +109,14 @@ fn update_config_unauthorized() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -109,7 +124,10 @@ fn update_config_unauthorized() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -122,7 +140,10 @@ fn update_config_unauthorized() { ); pool.update_config( - &Address::random(&env), + &Address::from_string(&String::from_str( + &env, + "CCWOWNUBYTZTUEVNMA3KYCNQKBJ23QUSSJTVSLTFWVAJMZKLCDO37JVI", + )), &None, &Some(500i64), // 5% fees &Some(admin2.clone()), @@ -137,8 +158,14 @@ fn update_config_update_admin() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -146,7 +173,10 @@ fn update_config_update_admin() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -189,8 +219,14 @@ fn update_config_too_high_fees() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -198,7 +234,10 @@ fn update_config_too_high_fees() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, diff --git a/contracts/pool/src/tests/liquidity.rs b/contracts/pool/src/tests/liquidity.rs index e6746ed36..2455696da 100644 --- a/contracts/pool/src/tests/liquidity.rs +++ b/contracts/pool/src/tests/liquidity.rs @@ -3,7 +3,7 @@ extern crate std; use pretty_assertions::assert_eq; use soroban_sdk::testutils::{AuthorizedFunction, AuthorizedInvocation}; -use soroban_sdk::{symbol_short, testutils::Address as _, Address, Env, IntoVal, Symbol}; +use soroban_sdk::{symbol_short, Address, Env, IntoVal, String, Symbol}; use super::setup::{deploy_liquidity_pool_contract, deploy_token_contract}; use crate::{ @@ -18,8 +18,14 @@ fn provide_liqudity() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -27,7 +33,10 @@ fn provide_liqudity() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -130,8 +139,14 @@ fn withdraw_liquidity() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -139,7 +154,10 @@ fn withdraw_liquidity() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -234,8 +252,14 @@ fn provide_liqudity_single_asset_on_empty_pool() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -243,7 +267,10 @@ fn provide_liqudity_single_asset_on_empty_pool() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -274,8 +301,14 @@ fn provide_liqudity_single_asset_equal() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -283,7 +316,10 @@ fn provide_liqudity_single_asset_equal() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -342,8 +378,14 @@ fn provide_liqudity_single_asset_equal_with_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -351,7 +393,10 @@ fn provide_liqudity_single_asset_equal_with_fees() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 1_000i64; // 10% bps let pool = deploy_liquidity_pool_contract( &env, @@ -419,8 +464,14 @@ fn provide_liqudity_single_asset_one_third() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -428,7 +479,10 @@ fn provide_liqudity_single_asset_one_third() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -483,8 +537,14 @@ fn provide_liqudity_single_asset_one_third_with_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -492,7 +552,10 @@ fn provide_liqudity_single_asset_one_third_with_fees() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 1_000i64; // 10% bps let pool = deploy_liquidity_pool_contract( &env, @@ -544,8 +607,14 @@ fn provide_liqudity_too_high_fees() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -573,8 +642,14 @@ fn swap_with_no_amounts() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -582,7 +657,10 @@ fn swap_with_no_amounts() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -608,8 +686,14 @@ fn withdraw_liqudity_below_min() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -617,7 +701,10 @@ fn withdraw_liqudity_below_min() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, diff --git a/contracts/pool/src/tests/setup.rs b/contracts/pool/src/tests/setup.rs index e829eec5d..fe3a78bc0 100644 --- a/contracts/pool/src/tests/setup.rs +++ b/contracts/pool/src/tests/setup.rs @@ -1,4 +1,4 @@ -use soroban_sdk::{testutils::Address as _, Address, BytesN, Env}; +use soroban_sdk::{Address, BytesN, Env, String}; use crate::{ contract::{LiquidityPool, LiquidityPoolClient}, @@ -35,11 +35,21 @@ pub fn deploy_liquidity_pool_contract<'a>( max_allowed_slippage_bps: impl Into>, max_allowed_spread_bps: impl Into>, ) -> LiquidityPoolClient<'a> { - let admin = admin.into().unwrap_or(Address::random(env)); + let admin = admin + .into() + .unwrap_or(Address::from_string(&String::from_str( + env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + ))); let pool = LiquidityPoolClient::new(env, &env.register_contract(None, LiquidityPool {})); let token_wasm_hash = install_token_wasm(env); let stake_wasm_hash = install_stake_wasm(env); - let fee_recipient = fee_recipient.into().unwrap_or_else(|| Address::random(env)); + let fee_recipient = fee_recipient.into().unwrap_or_else(|| { + Address::from_string(&String::from_str( + env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )) + }); let max_allowed_slippage = max_allowed_slippage_bps.into().unwrap_or(5_000); // 50% if not specified let max_allowed_spread = max_allowed_spread_bps.into().unwrap_or(500); // 5% if not specified let share_token_decimals = 7u32; diff --git a/contracts/pool/src/tests/stake_deployment.rs b/contracts/pool/src/tests/stake_deployment.rs index 0a920da1a..10ed920d6 100644 --- a/contracts/pool/src/tests/stake_deployment.rs +++ b/contracts/pool/src/tests/stake_deployment.rs @@ -1,6 +1,6 @@ extern crate std; use phoenix::utils::{StakeInitInfo, TokenInitInfo}; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; use super::setup::{deploy_liquidity_pool_contract, deploy_token_contract}; use crate::{ @@ -17,8 +17,14 @@ fn confirm_stake_contract_deployment() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -26,7 +32,10 @@ fn confirm_stake_contract_deployment() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -78,9 +87,18 @@ fn second_pool_deployment_should_fail() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); - let user = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); diff --git a/contracts/pool/src/tests/swap.rs b/contracts/pool/src/tests/swap.rs index 497fd3b90..3320b122d 100644 --- a/contracts/pool/src/tests/swap.rs +++ b/contracts/pool/src/tests/swap.rs @@ -1,7 +1,7 @@ extern crate std; use pretty_assertions::assert_eq; use soroban_sdk::testutils::{AuthorizedFunction, AuthorizedInvocation}; -use soroban_sdk::{symbol_short, testutils::Address as _, Address, Env, IntoVal}; +use soroban_sdk::{symbol_short, Address, Env, IntoVal, String}; use test_case::test_case; use super::setup::{deploy_liquidity_pool_contract, deploy_token_contract}; @@ -14,8 +14,14 @@ fn simple_swap() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -23,7 +29,10 @@ fn simple_swap() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -153,8 +162,14 @@ fn simple_swap_with_referral_fee() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -162,8 +177,14 @@ fn simple_swap_with_referral_fee() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); - let referral_addr = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + let referral_addr = Address::from_string(&String::from_str( + &env, + "CCWOWNUBYTZTUEVNMA3KYCNQKBJ23QUSSJTVSLTFWVAJMZKLCDO37JVI", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( @@ -273,8 +294,14 @@ fn test_swap_should_fail_when_referral_fee_is_larger_than_allowed() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -282,7 +309,10 @@ fn test_swap_should_fail_when_referral_fee_is_larger_than_allowed() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -306,13 +336,14 @@ fn test_swap_should_fail_when_referral_fee_is_larger_than_allowed() { ); let spread = 100i64; // 1% maximum spread allowed - // FIXM: Disable Referral struct - // let referral = Referral { - // address: Address::random(&env), - // // in tests/setup.rs we hardcoded the max referral fee - // // to 5_000 bps (50%), here we try to set it to 10_000 bps (100%) - // fee: 10_000, - // }; + + // FIXM: Disable Referral struct + // let referral = Referral { + // address: Address::random(&env), + // // in tests/setup.rs we hardcoded the max referral fee + // // to 5_000 bps (50%), here we try to set it to 10_000 bps (100%) + // fee: 10_000, + // }; pool.swap( &user1, @@ -331,8 +362,14 @@ fn swap_should_panic_with_bad_max_spread() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -340,7 +377,10 @@ fn swap_should_panic_with_bad_max_spread() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 0i64; let pool = deploy_liquidity_pool_contract( &env, @@ -367,8 +407,14 @@ fn swap_with_high_fee() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -376,10 +422,16 @@ fn swap_with_high_fee() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let swap_fees = 1_000i64; // 10% bps - let fee_recipient = Address::random(&env); + let fee_recipient = Address::from_string(&String::from_str( + &env, + "CCWOWNUBYTZTUEVNMA3KYCNQKBJ23QUSSJTVSLTFWVAJMZKLCDO37JVI", + )); let pool = deploy_liquidity_pool_contract( &env, None, @@ -451,8 +503,20 @@ fn swap_simulation_even_pool() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut token1 = deploy_token_contract(&env, &Address::random(&env)); - let mut token2 = deploy_token_contract(&env, &Address::random(&env)); + let mut token1 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )), + ); + let mut token2 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )), + ); if token2.address < token1.address { std::mem::swap(&mut token1, &mut token2); } @@ -463,13 +527,19 @@ fn swap_simulation_even_pool() { None, (&token1.address, &token2.address), swap_fees, - Address::random(&env), + Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )), None, None, ); let initial_liquidity = 1_000_000i128; - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CCWOWNUBYTZTUEVNMA3KYCNQKBJ23QUSSJTVSLTFWVAJMZKLCDO37JVI", + )); token1.mint(&user1, &initial_liquidity); token2.mint(&user1, &initial_liquidity); pool.provide_liquidity( @@ -551,8 +621,20 @@ fn swap_simulation_one_third_pool() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut token1 = deploy_token_contract(&env, &Address::random(&env)); - let mut token2 = deploy_token_contract(&env, &Address::random(&env)); + let mut token1 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )), + ); + let mut token2 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )), + ); if token2.address < token1.address { std::mem::swap(&mut token1, &mut token2); } @@ -563,13 +645,19 @@ fn swap_simulation_one_third_pool() { None, (&token1.address, &token2.address), swap_fees, - Address::random(&env), + Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )), None, None, ); let initial_liquidity = 1_000_000i128; - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CCWOWNUBYTZTUEVNMA3KYCNQKBJ23QUSSJTVSLTFWVAJMZKLCDO37JVI", + )); token1.mint(&user1, &initial_liquidity); token2.mint(&user1, &(3 * initial_liquidity)); pool.provide_liquidity( @@ -652,8 +740,20 @@ fn test_swap_fee_variants(swap_fees: i64, commission_fee: i128) { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut token1 = deploy_token_contract(&env, &Address::random(&env)); - let mut token2 = deploy_token_contract(&env, &Address::random(&env)); + let mut token1 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )), + ); + let mut token2 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )), + ); if token2.address < token1.address { std::mem::swap(&mut token1, &mut token2); } @@ -663,13 +763,19 @@ fn test_swap_fee_variants(swap_fees: i64, commission_fee: i128) { None, (&token1.address, &token2.address), swap_fees, - Address::random(&env), + Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )), 10_000i64, 10_000i64, ); let initial_liquidity = 110_358_880_127; // taken from the current amount of tokens in pool - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CCWOWNUBYTZTUEVNMA3KYCNQKBJ23QUSSJTVSLTFWVAJMZKLCDO37JVI", + )); token1.mint(&user1, &initial_liquidity); token2.mint(&user1, &initial_liquidity); pool.provide_liquidity( diff --git a/contracts/pool_stable/src/tests/config.rs b/contracts/pool_stable/src/tests/config.rs index 7e2486e4f..d3f04c425 100644 --- a/contracts/pool_stable/src/tests/config.rs +++ b/contracts/pool_stable/src/tests/config.rs @@ -1,5 +1,5 @@ extern crate std; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; use super::setup::{deploy_stable_liquidity_pool_contract, deploy_token_contract}; use crate::storage::{Config, PairType}; @@ -10,8 +10,14 @@ fn update_config() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -19,7 +25,10 @@ fn update_config() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -97,8 +106,14 @@ fn update_config_unauthorized() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -106,7 +121,10 @@ fn update_config_unauthorized() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -119,7 +137,10 @@ fn update_config_unauthorized() { ); pool.update_config( - &Address::random(&env), + &Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )), &None, &Some(500i64), // 5% fees &Some(admin2.clone()), @@ -134,8 +155,14 @@ fn update_config_update_admin() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -143,7 +170,10 @@ fn update_config_update_admin() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -185,8 +215,14 @@ fn update_config_too_high_fees() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -194,7 +230,10 @@ fn update_config_too_high_fees() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, diff --git a/contracts/pool_stable/src/tests/liquidity.rs b/contracts/pool_stable/src/tests/liquidity.rs index d25cfa0de..a278b1d9e 100644 --- a/contracts/pool_stable/src/tests/liquidity.rs +++ b/contracts/pool_stable/src/tests/liquidity.rs @@ -3,7 +3,7 @@ extern crate std; use pretty_assertions::assert_eq; use soroban_sdk::testutils::{AuthorizedFunction, AuthorizedInvocation}; -use soroban_sdk::{symbol_short, testutils::Address as _, Address, Env, IntoVal, Symbol}; +use soroban_sdk::{symbol_short, testutils::Address as _, Address, Env, IntoVal, String, Symbol}; use super::setup::{deploy_stable_liquidity_pool_contract, deploy_token_contract}; use crate::{ @@ -18,8 +18,8 @@ fn provide_liqudity() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::generate(&env); + let mut admin2 = Address::generate(&env); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -27,7 +27,7 @@ fn provide_liqudity() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::generate(&env); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -130,8 +130,14 @@ fn withdraw_liquidity() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -139,7 +145,10 @@ fn withdraw_liquidity() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -234,8 +243,14 @@ fn provide_liqudity_single_asset_on_empty_pool() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -243,7 +258,10 @@ fn provide_liqudity_single_asset_on_empty_pool() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -274,8 +292,14 @@ fn provide_liqudity_single_asset_equal() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -283,7 +307,10 @@ fn provide_liqudity_single_asset_equal() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -342,8 +369,14 @@ fn provide_liqudity_single_asset_equal_with_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -351,7 +384,10 @@ fn provide_liqudity_single_asset_equal_with_fees() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 1_000i64; // 10% bps let pool = deploy_stable_liquidity_pool_contract( &env, @@ -419,8 +455,14 @@ fn provide_liqudity_single_asset_one_third() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -428,7 +470,10 @@ fn provide_liqudity_single_asset_one_third() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -483,8 +528,14 @@ fn provide_liqudity_single_asset_one_third_with_fees() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -492,7 +543,10 @@ fn provide_liqudity_single_asset_one_third_with_fees() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 1_000i64; // 10% bps let pool = deploy_stable_liquidity_pool_contract( &env, @@ -544,8 +598,14 @@ fn provide_liqudity_too_high_fees() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -573,8 +633,14 @@ fn swap_with_no_amounts() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -582,7 +648,10 @@ fn swap_with_no_amounts() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -608,8 +677,14 @@ fn withdraw_liqudity_below_min() { let env = Env::default(); env.mock_all_auths(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -617,7 +692,10 @@ fn withdraw_liqudity_below_min() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, diff --git a/contracts/pool_stable/src/tests/setup.rs b/contracts/pool_stable/src/tests/setup.rs index 95695b417..58f5301b0 100644 --- a/contracts/pool_stable/src/tests/setup.rs +++ b/contracts/pool_stable/src/tests/setup.rs @@ -35,12 +35,14 @@ pub fn deploy_stable_liquidity_pool_contract<'a>( max_allowed_slippage_bps: impl Into>, max_allowed_spread_bps: impl Into>, ) -> StableLiquidityPoolClient<'a> { - let admin = admin.into().unwrap_or(Address::random(env)); + let admin = admin.into().unwrap_or(Address::generate(env)); let pool = StableLiquidityPoolClient::new(env, &env.register_contract(None, StableLiquidityPool {})); let token_wasm_hash = install_token_wasm(env); let stake_wasm_hash = install_stake_wasm(env); - let fee_recipient = fee_recipient.into().unwrap_or_else(|| Address::random(env)); + let fee_recipient = fee_recipient + .into() + .unwrap_or_else(|| Address::generate(env)); let max_allowed_slippage = max_allowed_slippage_bps.into().unwrap_or(5_000); // 50% if not specified let max_allowed_spread = max_allowed_spread_bps.into().unwrap_or(500); // 5% if not specified let share_token_decimals = 7u32; diff --git a/contracts/pool_stable/src/tests/stake_deployment.rs b/contracts/pool_stable/src/tests/stake_deployment.rs index 73feb71d6..619fe0d7d 100644 --- a/contracts/pool_stable/src/tests/stake_deployment.rs +++ b/contracts/pool_stable/src/tests/stake_deployment.rs @@ -1,6 +1,6 @@ extern crate std; use phoenix::utils::{StakeInitInfo, TokenInitInfo}; -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; use super::setup::{deploy_stable_liquidity_pool_contract, deploy_token_contract}; use crate::contract::{StableLiquidityPool, StableLiquidityPoolClient}; @@ -16,8 +16,14 @@ fn confirm_stake_contract_deployment() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -25,7 +31,10 @@ fn confirm_stake_contract_deployment() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -76,9 +85,18 @@ fn second_pool_stable_deployment_should_fail() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); - let user = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); diff --git a/contracts/pool_stable/src/tests/swap.rs b/contracts/pool_stable/src/tests/swap.rs index f514d07ea..a40d9d86c 100644 --- a/contracts/pool_stable/src/tests/swap.rs +++ b/contracts/pool_stable/src/tests/swap.rs @@ -2,7 +2,7 @@ extern crate std; use pretty_assertions::assert_eq; use soroban_sdk::testutils::{AuthorizedFunction, AuthorizedInvocation}; -use soroban_sdk::{symbol_short, testutils::Address as _, Address, Env, IntoVal}; +use soroban_sdk::{symbol_short, testutils::Address as _, Address, Env, IntoVal, String}; use super::setup::{deploy_stable_liquidity_pool_contract, deploy_token_contract}; use crate::storage::{Asset, PoolResponse, SimulateReverseSwapResponse, SimulateSwapResponse}; @@ -14,8 +14,8 @@ fn simple_swap() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::generate(&env); + let mut admin2 = Address::generate(&env); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -23,7 +23,7 @@ fn simple_swap() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::generate(&env); let swap_fees = 0i64; let pool = deploy_stable_liquidity_pool_contract( &env, @@ -128,8 +128,14 @@ fn swap_with_high_fee() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut admin1 = Address::random(&env); - let mut admin2 = Address::random(&env); + let mut admin1 = Address::from_string(&String::from_str( + &env, + "CALWS6SICRS42D6CANHJKDHFJWXL7M64W4MMV2TK4CQG5XTB2E5MYB44", + )); + let mut admin2 = Address::from_string(&String::from_str( + &env, + "CA6UCNJZDNEGR5QBZ5QSXZZO5FULEZNM6QIHRRABLX6WH4KIFF4OUIYN", + )); let mut token1 = deploy_token_contract(&env, &admin1); let mut token2 = deploy_token_contract(&env, &admin2); @@ -137,10 +143,16 @@ fn swap_with_high_fee() { std::mem::swap(&mut token1, &mut token2); std::mem::swap(&mut admin1, &mut admin2); } - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); let swap_fees = 1_000i64; // 10% bps - let fee_recipient = Address::random(&env); + let fee_recipient = Address::from_string(&String::from_str( + &env, + "CC4W4EIZMCCUG2R5FHQGQDSBZY6S2V2CIIJQZ5XBXCKUVVSBR7HC6267", + )); let pool = deploy_stable_liquidity_pool_contract( &env, None, @@ -204,8 +216,20 @@ fn swap_simulation_even_pool() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut token1 = deploy_token_contract(&env, &Address::random(&env)); - let mut token2 = deploy_token_contract(&env, &Address::random(&env)); + let mut token1 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CAO3QRJ36VDS5IIA3XFO6EQTWFRDDB6SUYYXCKMTVIQRS75NSVLRRRRQ", + )), + ); + let mut token2 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )), + ); if token2.address < token1.address { std::mem::swap(&mut token1, &mut token2); } @@ -216,13 +240,19 @@ fn swap_simulation_even_pool() { None, (&token1.address, &token2.address), swap_fees, - Address::random(&env), + Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )), None, None, ); let initial_liquidity = 1_000_000i128; - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); token1.mint(&user1, &initial_liquidity); token2.mint(&user1, &initial_liquidity); pool.provide_liquidity( @@ -304,8 +334,20 @@ fn swap_simulation_one_third_pool() { env.mock_all_auths(); env.budget().reset_unlimited(); - let mut token1 = deploy_token_contract(&env, &Address::random(&env)); - let mut token2 = deploy_token_contract(&env, &Address::random(&env)); + let mut token1 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CAO3QRJ36VDS5IIA3XFO6EQTWFRDDB6SUYYXCKMTVIQRS75NSVLRRRRQ", + )), + ); + let mut token2 = deploy_token_contract( + &env, + &Address::from_string(&String::from_str( + &env, + "CBGJMPOZ573XUTIRRFWGWTGSIAOGKJRVMIKBTFYEWTEIU7AEDWKDYMUX", + )), + ); if token2.address < token1.address { std::mem::swap(&mut token1, &mut token2); } @@ -316,13 +358,19 @@ fn swap_simulation_one_third_pool() { None, (&token1.address, &token2.address), swap_fees, - Address::random(&env), + Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )), None, None, ); let initial_liquidity = 1_000_000i128; - let user1 = Address::random(&env); + let user1 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); token1.mint(&user1, &initial_liquidity); token2.mint(&user1, &(3 * initial_liquidity)); pool.provide_liquidity( diff --git a/contracts/stake/src/contract.rs b/contracts/stake/src/contract.rs index 5989f3ac8..047e3b6f6 100644 --- a/contracts/stake/src/contract.rs +++ b/contracts/stake/src/contract.rs @@ -412,7 +412,7 @@ impl StakingTrait for Staking { if total_rewards_power == 0 { aprs.push_back(AnnualizedReward { asset: distribution_address.clone(), - amount: String::from_slice(&env, "0"), + amount: String::from_str(&env, "0"), }); continue; } diff --git a/contracts/stake/src/tests/bond.rs b/contracts/stake/src/tests/bond.rs index edcbc601f..87d3b7dbe 100644 --- a/contracts/stake/src/tests/bond.rs +++ b/contracts/stake/src/tests/bond.rs @@ -1,7 +1,7 @@ use pretty_assertions::assert_eq; use soroban_sdk::{ testutils::{Address as _, Ledger}, - vec, Address, Env, + vec, Address, Env, String, }; use super::setup::{deploy_staking_contract, deploy_token_contract}; @@ -16,7 +16,10 @@ fn initializa_staking_contract() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "GCHM6Y4BYTUJZQ4KABLTC73IWDZNFBZ2NML5W4AQG7XAJEOMLF5I774H", + )); let lp_token = deploy_token_contract(&env, &admin); let staking = deploy_staking_contract(&env, admin.clone(), &lp_token.address); @@ -44,7 +47,10 @@ fn test_deploying_stake_twice_should_fail() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "GCHM6Y4BYTUJZQ4KABLTC73IWDZNFBZ2NML5W4AQG7XAJEOMLF5I774H", + )); let lp_token = deploy_token_contract(&env, &admin); let first = deploy_staking_contract(&env, admin.clone(), &lp_token.address); @@ -59,8 +65,8 @@ fn bond_too_few() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); + let admin = Address::generate(&env); + let user = Address::generate(&env); let lp_token = deploy_token_contract(&env, &admin); let staking = deploy_staking_contract(&env, admin.clone(), &lp_token.address); @@ -75,8 +81,8 @@ fn bond_simple() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); + let admin = Address::generate(&env); + let user = Address::generate(&env); let lp_token = deploy_token_contract(&env, &admin); let staking = deploy_staking_contract(&env, admin.clone(), &lp_token.address); @@ -107,9 +113,9 @@ fn unbond_simple() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); - let user2 = Address::random(&env); + let admin = Address::generate(&env); + let user = Address::generate(&env); + let user2 = Address::generate(&env); let lp_token = deploy_token_contract(&env, &admin); let staking = deploy_staking_contract(&env, admin.clone(), &lp_token.address); @@ -165,7 +171,10 @@ fn initializing_contract_sets_total_staked_var() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "GCHM6Y4BYTUJZQ4KABLTC73IWDZNFBZ2NML5W4AQG7XAJEOMLF5I774H", + )); let lp_token = deploy_token_contract(&env, &admin); let staking = deploy_staking_contract(&env, admin.clone(), &lp_token.address); @@ -179,9 +188,9 @@ fn unbond_wrong_user_stake_not_found() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); - let user2 = Address::random(&env); + let admin = Address::generate(&env); + let user = Address::generate(&env); + let user2 = Address::generate(&env); let lp_token = deploy_token_contract(&env, &admin); let staking = deploy_staking_contract(&env, admin.clone(), &lp_token.address); diff --git a/contracts/stake/src/tests/distribution.rs b/contracts/stake/src/tests/distribution.rs index 32ee4d95a..f1d5e7d33 100644 --- a/contracts/stake/src/tests/distribution.rs +++ b/contracts/stake/src/tests/distribution.rs @@ -1,7 +1,4 @@ -use soroban_sdk::{ - testutils::{Address as _, Ledger}, - vec, Address, Env, String, -}; +use soroban_sdk::{testutils::Ledger, vec, Address, Env, String}; use super::setup::{deploy_staking_contract, deploy_token_contract}; @@ -14,8 +11,14 @@ fn add_distribution_and_distribute_reward() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -84,8 +87,14 @@ fn two_distributions() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); let reward_token_2 = deploy_token_contract(&env, &admin); @@ -200,11 +209,26 @@ fn four_users_with_different_stakes() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); - let user2 = Address::random(&env); - let user3 = Address::random(&env); - let user4 = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + let user2 = Address::from_string(&String::from_str( + &env, + "CC7I4N5BYWO33MJ2G7OWZCAQ57SWETJOEUUR7GPVKMWKUXJFVBZWHOIR", + )); + let user3 = Address::from_string(&String::from_str( + &env, + "CAM3XZFCVAG6KJQUIAW2YWCGZQJ6CR6QIAQ5MAWU7GMM4ZZZCJ7JVDSH", + )); + let user4 = Address::from_string(&String::from_str( + &env, + "CB6ODXXWE24XPHGTAVRKHCGKAEQS56BQF6EA7Q3MNSODFDWALW2LYTWF", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -310,9 +334,18 @@ fn two_users_one_starts_after_distribution_begins() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); - let user2 = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + let user2 = Address::from_string(&String::from_str( + &env, + "CC7I4N5BYWO33MJ2G7OWZCAQ57SWETJOEUUR7GPVKMWKUXJFVBZWHOIR", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -406,9 +439,18 @@ fn two_users_both_bonds_after_distribution_starts() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); - let user2 = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); + let user2 = Address::from_string(&String::from_str( + &env, + "CC7I4N5BYWO33MJ2G7OWZCAQ57SWETJOEUUR7GPVKMWKUXJFVBZWHOIR", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -531,7 +573,10 @@ fn fund_rewards_without_establishing_distribution() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -548,8 +593,14 @@ fn try_to_withdraw_rewards_without_bonding() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -606,7 +657,10 @@ fn fund_distribution_starting_before_current_timestamp() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -637,7 +691,10 @@ fn fund_distribution_with_reward_below_required_minimum() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -660,8 +717,14 @@ fn calculate_apr() { let env = Env::default(); env.mock_all_auths(); - let admin = Address::random(&env); - let user = Address::random(&env); + let admin = Address::from_string(&String::from_str( + &env, + "CBT4WEAHQ72AYRD7WZFNYE6HGZEIX25754NG37LBLXTTRMWKQNKIUR6O", + )); + let user = Address::from_string(&String::from_str( + &env, + "CDUK25UHLE7LUDQZ4UTTNWMXABJHW76Q74SKOK6BMWGKDHIJ6MIBOK6N", + )); let lp_token = deploy_token_contract(&env, &admin); let reward_token = deploy_token_contract(&env, &admin); @@ -694,7 +757,7 @@ fn calculate_apr() { &env, AnnualizedReward { asset: reward_token.address.clone(), - amount: String::from_slice(&env, "0") + amount: String::from_str(&env, "0") } ] } @@ -712,7 +775,7 @@ fn calculate_apr() { &env, AnnualizedReward { asset: reward_token.address.clone(), - amount: String::from_slice(&env, "100") + amount: String::from_str(&env, "100") } ] } @@ -737,7 +800,7 @@ fn calculate_apr() { &env, AnnualizedReward { asset: reward_token.address.clone(), - amount: String::from_slice(&env, "150") + amount: String::from_str(&env, "150") } ] } diff --git a/contracts/stake/src/tests/setup.rs b/contracts/stake/src/tests/setup.rs index eb73b5aaa..7b9d247a8 100644 --- a/contracts/stake/src/tests/setup.rs +++ b/contracts/stake/src/tests/setup.rs @@ -1,4 +1,4 @@ -use soroban_sdk::{testutils::Address as _, Address, Env}; +use soroban_sdk::{Address, Env, String}; use crate::{ contract::{Staking, StakingClient}, @@ -19,7 +19,12 @@ pub fn deploy_staking_contract<'a>( admin: impl Into>, lp_token: &Address, ) -> StakingClient<'a> { - let admin = admin.into().unwrap_or(Address::random(env)); + let admin = admin + .into() + .unwrap_or(Address::from_string(&String::from_str( + env, + "CDALIOEQHREN5DJANC3O6WN3KF2MVRXAYAWCKF3XJIBQJTFVXJHI6HWE", + ))); let staking = StakingClient::new(env, &env.register_contract(None, Staking {})); staking.initialize(&admin, lp_token, &MIN_BOND, &MAX_DISTRIBUTIONS, &MIN_REWARD); diff --git a/contracts/token/Cargo.lock b/contracts/token/Cargo.lock index 44afda6e4..b867afc26 100644 --- a/contracts/token/Cargo.lock +++ b/contracts/token/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "addr2line" -version = "0.19.0" +version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" dependencies = [ "gimli", ] @@ -28,9 +28,9 @@ dependencies = [ [[package]] name = "arbitrary" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" dependencies = [ "derive_arbitrary", ] @@ -43,9 +43,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "backtrace" -version = "0.3.67" +version = "0.3.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" dependencies = [ "addr2line", "cc", @@ -110,7 +110,7 @@ dependencies = [ "num-bigint", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -209,14 +209,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1586fa608b1dab41f667475b4a41faec5ba680aee428bfa5de4ea520fdc6e901" dependencies = [ "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] name = "curve25519-dalek" -version = "4.0.0" +version = "4.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f711ade317dd348950a9910f81c5947e3d8907ebd2b83f76203ff1807e6a2bc2" +checksum = "e89b8c6a2e4b1f45971ad09761aafb85514a84744b67a95e32c3cc1352d1f65c" dependencies = [ "cfg-if", "cpufeatures", @@ -237,7 +237,7 @@ checksum = "83fdaf97f4804dcebfa5862639bc9ce4121e82140bec2a987ac5140294865b5b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -264,7 +264,7 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -281,7 +281,7 @@ checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -305,7 +305,7 @@ dependencies = [ "proc-macro2", "quote", "strsim", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -316,7 +316,7 @@ checksum = "29a358ff9f12ec09c3e61fef9b5a9902623a695a46a917b07f269bff1445611a" dependencies = [ "darling_core", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -331,13 +331,13 @@ dependencies = [ [[package]] name = "derive_arbitrary" -version = "1.3.0" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7" +checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.39", ] [[package]] @@ -421,11 +421,23 @@ dependencies = [ "zeroize", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[package]] +name = "escape-bytes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bfcf67fea2815c2fc3b90873fae90957be12ff417335dfadc7f52927feb03b2" + [[package]] name = "ethnum" -version = "1.3.2" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0198b9d0078e0f30dedc7acbb21c974e838fc8fae3ee170128658a98cb2c1c04" +checksum = "b90ca2580b73ab6a1f724b76ca11ab632df820fd6040c336200d2c1df7b3c82c" [[package]] name = "ff" @@ -439,9 +451,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.20" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" +checksum = "27573eac26f4dd11e2b1916c3fe1baa56407c83c71a773a8ba17ec0bca03b6b7" [[package]] name = "fnv" @@ -462,9 +474,9 @@ dependencies = [ [[package]] name = "getrandom" -version = "0.2.10" +version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427" +checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f" dependencies = [ "cfg-if", "js-sys", @@ -475,9 +487,9 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.2" +version = "0.28.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" [[package]] name = "group" @@ -496,6 +508,12 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" + [[package]] name = "hex" version = "0.4.3" @@ -505,6 +523,12 @@ dependencies = [ "serde", ] +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + [[package]] name = "hmac" version = "0.12.1" @@ -551,7 +575,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d530e1a18b1cb4c484e6e34556a0d948706958449fca0cab753d649f2bce3d1f" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", "serde", ] @@ -563,9 +598,9 @@ checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" [[package]] name = "itertools" -version = "0.10.5" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" dependencies = [ "either", ] @@ -610,9 +645,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.147" +version = "0.2.150" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c" [[package]] name = "libm" @@ -646,9 +681,9 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "miniz_oxide" -version = "0.6.2" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" dependencies = [ "adler", ] @@ -666,13 +701,13 @@ dependencies = [ [[package]] name = "num-derive" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" +checksum = "cfb77679af88f8b125209d354a202862602672222e7f2313fdd6dc349bad4712" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -687,18 +722,18 @@ dependencies = [ [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" dependencies = [ "autocfg", ] [[package]] name = "object" -version = "0.30.3" +version = "0.32.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "memchr", ] @@ -744,23 +779,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1ceca8aaf45b5c46ec7ed39fff75f57290368c1846d33d24a122ca81416ab058" dependencies = [ "proc-macro2", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] name = "proc-macro2" -version = "1.0.56" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +checksum = "134c189feb4956b20f6f547d2cf727d4c0fe06722b20a0eec87ed445a97f92da" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.26" +version = "1.0.33" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" dependencies = [ "proc-macro2", ] @@ -854,29 +889,29 @@ checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" [[package]] name = "serde" -version = "1.0.160" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" +checksum = "bca2a08484b285dcb282d0f67b26cadc0df8b19f8c12502c13d966bf9482f001" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.160" +version = "1.0.192" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" +checksum = "d6c7207fbec9faa48073f3e3074cbe553af6ea512d7c21ba46e434e70ea9fbc1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] name = "serde_json" -version = "1.0.96" +version = "1.0.108" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" dependencies = [ "itoa", "ryu", @@ -885,14 +920,15 @@ dependencies = [ [[package]] name = "serde_with" -version = "3.0.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f02d8aa6e3c385bf084924f660ce2a3a6bd333ba55b35e8590b321f35d88513" +checksum = "64cd236ccc1b7a29e7e2739f27c0b2dd199804abc4290e32f59f3b68d6405c23" dependencies = [ "base64 0.21.0", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", + "indexmap 2.1.0", "serde", "serde_json", "serde_with_macros", @@ -901,21 +937,21 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.0.0" +version = "3.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edc7d5d3932fb12ce722ee5e64dd38c504efba37567f0c402f6ca728c3b8b070" +checksum = "93634eb5f75a2323b16de4748022ac4297f9e76b6dced2be287a099f41b5e788" dependencies = [ "darling", "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -948,11 +984,23 @@ version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" +[[package]] +name = "soroban-builtin-sdk-macros" +version = "20.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b42487d6b0268748f753feeb579c6f7908dbb002faf20b703e6a7185b12f0527" +dependencies = [ + "itertools", + "proc-macro2", + "quote", + "syn 2.0.39", +] + [[package]] name = "soroban-env-common" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2508a41765935d3bef43b2264667c4603725cf7ddd851321f1dc2b3bca8bb88" +checksum = "5bb493483fa3e3ebfb4c081472495d14b0abcfbe04ba142a56ff63056cc62700" dependencies = [ "arbitrary", "crate-git-revision", @@ -968,9 +1016,9 @@ dependencies = [ [[package]] name = "soroban-env-guest" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b41f1b3ebb747487ff9920822112a5816030e053734ed63c05f1a7db476f2768" +checksum = "3f31a738ef5faf4084c4b1824a8e3f93dfff0261a3909e86060f818e728479a3" dependencies = [ "soroban-env-common", "static_assertions", @@ -978,13 +1026,16 @@ dependencies = [ [[package]] name = "soroban-env-host" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "347fc729270de2fc8e312ba1872ef90fdc8dfcd0dacdd07a3bb7a038c41ea6d6" +checksum = "bdd1172a76c0bc2ce67ec7f28ca37dddbe9fefabe583f80434f5f60aaee3547e" dependencies = [ "backtrace", + "curve25519-dalek", "ed25519-dalek", "getrandom", + "hex-literal", + "hmac", "k256", "num-derive", "num-integer", @@ -993,8 +1044,8 @@ dependencies = [ "rand_chacha", "sha2", "sha3", + "soroban-builtin-sdk-macros", "soroban-env-common", - "soroban-native-sdk-macros", "soroban-wasmi", "static_assertions", "stellar-strkey", @@ -1002,9 +1053,9 @@ dependencies = [ [[package]] name = "soroban-env-macros" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f16b7a75d77ae47143a07f92a35661c21e965f63bb4362d8491188a993687745" +checksum = "5c0536648cea69ab3bae1801d35f92c0a31e7449cd2c7d14a18fb5e413f43279" dependencies = [ "itertools", "proc-macro2", @@ -1012,45 +1063,36 @@ dependencies = [ "serde", "serde_json", "stellar-xdr", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] name = "soroban-ledger-snapshot" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d202c5870aeec1cb97bfd06a94b8fe691c513ba6da8638deb07d8660e90056ba" +checksum = "37960eec21d7dc5dbd976fa16e38c056429663a89243798486b07afbb263c9b5" dependencies = [ "serde", "serde_json", + "serde_with", "soroban-env-common", "soroban-env-host", "thiserror", ] -[[package]] -name = "soroban-native-sdk-macros" -version = "20.0.0-rc2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe8cf96e5c9308347bc6fa0735d0591475a20b43ed00f96ad2df623bbe9c1e88" -dependencies = [ - "itertools", - "proc-macro2", - "quote", - "syn 2.0.15", -] - [[package]] name = "soroban-sdk" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d771d43a66ba0df14ff28ac1b37a6568da00afa12f28273a67fe92853ab28f8" +checksum = "f08e1fdb18dbee88160ea6640962faf021a49f22eb1bd212c4d8b0cef32c582c" dependencies = [ "arbitrary", "bytes-lit", "ctor", "ed25519-dalek", "rand", + "serde", + "serde_json", "soroban-env-guest", "soroban-env-host", "soroban-ledger-snapshot", @@ -1060,9 +1102,9 @@ dependencies = [ [[package]] name = "soroban-sdk-macros" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf5a6dd2e08217fdd75f3f849256dda2614badda9095df233a47c7c8f9783493" +checksum = "6c5cae44f304f2fd32f9cfa9a31a9b58eb1c10aa07a7d5b591921cf7fa649e44" dependencies = [ "crate-git-revision", "darling", @@ -1075,14 +1117,14 @@ dependencies = [ "soroban-spec", "soroban-spec-rust", "stellar-xdr", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] name = "soroban-spec" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e2a55aab81d7cd1df66f85de3d815fb08fc5fa412270dc374e031e27528c711" +checksum = "7539cfa0abe36f3d33c49fe1253f6b652c91c9a9841fe83dedc1799b7f4bb55f" dependencies = [ "base64 0.13.1", "stellar-xdr", @@ -1092,9 +1134,9 @@ dependencies = [ [[package]] name = "soroban-spec-rust" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bcfa549d3362e6eafa3a51ad29d571f3dbae2cb9fe33d9f94c00a9f742f71df" +checksum = "eb6189ef3ede0061db14b0cf9fa2692a2cb6c6e8d941689f0c9ca82b68c47ab2" dependencies = [ "prettyplease", "proc-macro2", @@ -1102,7 +1144,7 @@ dependencies = [ "sha2", "soroban-spec", "stellar-xdr", - "syn 2.0.15", + "syn 2.0.39", "thiserror", ] @@ -1116,18 +1158,18 @@ dependencies = [ [[package]] name = "soroban-token-sdk" -version = "20.0.0-rc2" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7294182d2197ac4da58163ca8f9c2e4df2045e5b81752928d82da9289ef366ee" +checksum = "9675d01424e718340a4d9121c67a1a2d10d91ddce7cf9c00d432b2010e4c65a5" dependencies = [ "soroban-sdk", ] [[package]] name = "soroban-wasmi" -version = "0.31.0-soroban1" +version = "0.31.1-soroban.20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6e3e79c1f227ec98ea1e8fbf43d0267b9ca748616c9c8c0162fa2a8ca4d5d2" +checksum = "c1aaa682a67cbd2173f1d60cb1e7b951d490d7c4e0b7b6f5387cbb952e963c46" dependencies = [ "smallvec", "spin", @@ -1160,26 +1202,29 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" [[package]] name = "stellar-strkey" -version = "0.0.7" +version = "0.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0689070126ca7f2effc2c5726584446db52190f0cef043c02eb4040a711c11" +checksum = "12d2bf45e114117ea91d820a846fd1afbe3ba7d717988fee094ce8227a3bf8bd" dependencies = [ "base32", + "crate-git-revision", "thiserror", ] [[package]] name = "stellar-xdr" -version = "20.0.0-rc1" +version = "20.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e09a3734914a7427dbcd4f06b6dcd2b1cf38e934202f6abe4d73658f718b6113" +checksum = "9595b775539e475da4179fa46212b11e4575f526d57b13308989a8c1dd59238c" dependencies = [ "arbitrary", "base64 0.13.1", "crate-git-revision", + "escape-bytes", "hex", "serde", "serde_with", + "stellar-strkey", ] [[package]] @@ -1207,9 +1252,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.15" +version = "2.0.39" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" dependencies = [ "proc-macro2", "quote", @@ -1242,7 +1287,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.15", + "syn 2.0.39", ] [[package]] @@ -1380,7 +1425,7 @@ version = "0.88.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fb8cf7dd82407fe68161bedcd57fde15596f32ebf6e9b3bdbf3ae1da20e38e5e" dependencies = [ - "indexmap", + "indexmap 1.9.3", ] [[package]] diff --git a/contracts/token/Cargo.toml b/contracts/token/Cargo.toml index 3ce6856fe..10e5e0001 100644 --- a/contracts/token/Cargo.toml +++ b/contracts/token/Cargo.toml @@ -13,4 +13,3 @@ soroban-token-sdk = { workspace = true } [dev_dependencies] soroban-sdk = { workspace = true, features = ["testutils"] } -pretty_assertions = { workspace = true } \ No newline at end of file diff --git a/contracts/token/Makefile b/contracts/token/Makefile index 338f2b357..6c7c1e8fd 100644 --- a/contracts/token/Makefile +++ b/contracts/token/Makefile @@ -8,11 +8,11 @@ test: build build: cargo build --target wasm32-unknown-unknown --release -clippy: - cargo clippy --all-targets -- -D warnings - fmt: cargo fmt --all +clippy: build + cargo clippy --all-targets -- -D warnings + clean: cargo clean diff --git a/contracts/token/src/allowance.rs b/contracts/token/src/allowance.rs index 550665ea8..ad7468716 100644 --- a/contracts/token/src/allowance.rs +++ b/contracts/token/src/allowance.rs @@ -44,7 +44,7 @@ pub fn write_allowance( .checked_sub(e.ledger().sequence()) .unwrap(); - e.storage().temporary().bump(&key, live_for, live_for) + e.storage().temporary().extend_ttl(&key, live_for, live_for) } } diff --git a/contracts/token/src/balance.rs b/contracts/token/src/balance.rs index 40a730402..76134e8d8 100644 --- a/contracts/token/src/balance.rs +++ b/contracts/token/src/balance.rs @@ -6,7 +6,7 @@ pub fn read_balance(e: &Env, addr: Address) -> i128 { if let Some(balance) = e.storage().persistent().get::(&key) { e.storage() .persistent() - .bump(&key, BALANCE_LIFETIME_THRESHOLD, BALANCE_BUMP_AMOUNT); + .extend_ttl(&key, BALANCE_LIFETIME_THRESHOLD, BALANCE_BUMP_AMOUNT); balance } else { 0 @@ -18,7 +18,7 @@ fn write_balance(e: &Env, addr: Address, amount: i128) { e.storage().persistent().set(&key, &amount); e.storage() .persistent() - .bump(&key, BALANCE_LIFETIME_THRESHOLD, BALANCE_BUMP_AMOUNT); + .extend_ttl(&key, BALANCE_LIFETIME_THRESHOLD, BALANCE_BUMP_AMOUNT); } pub fn receive_balance(e: &Env, addr: Address, amount: i128) { diff --git a/contracts/token/src/contract.rs b/contracts/token/src/contract.rs index 828fa271b..002dca9bc 100644 --- a/contracts/token/src/contract.rs +++ b/contracts/token/src/contract.rs @@ -49,7 +49,7 @@ impl Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); receive_balance(&e, to.clone(), amount); TokenUtils::new(&e).events().mint(admin, to, amount); @@ -62,7 +62,7 @@ impl Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); write_administrator(&e, &new_admin); TokenUtils::new(&e).events().set_admin(admin, new_admin); @@ -74,7 +74,7 @@ impl token::Interface for Token { fn allowance(e: Env, from: Address, spender: Address) -> i128 { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); read_allowance(&e, from, spender).amount } @@ -85,7 +85,7 @@ impl token::Interface for Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); write_allowance(&e, from.clone(), spender.clone(), amount, expiration_ledger); TokenUtils::new(&e) @@ -96,14 +96,7 @@ impl token::Interface for Token { fn balance(e: Env, id: Address) -> i128 { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); - read_balance(&e, id) - } - - fn spendable_balance(e: Env, id: Address) -> i128 { - e.storage() - .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); read_balance(&e, id) } @@ -114,7 +107,7 @@ impl token::Interface for Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); spend_balance(&e, from.clone(), amount); receive_balance(&e, to.clone(), amount); @@ -128,7 +121,7 @@ impl token::Interface for Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); spend_allowance(&e, from.clone(), spender, amount); spend_balance(&e, from.clone(), amount); @@ -143,7 +136,7 @@ impl token::Interface for Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); spend_balance(&e, from.clone(), amount); TokenUtils::new(&e).events().burn(from, amount); @@ -156,7 +149,7 @@ impl token::Interface for Token { e.storage() .instance() - .bump(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); + .extend_ttl(INSTANCE_LIFETIME_THRESHOLD, INSTANCE_BUMP_AMOUNT); spend_allowance(&e, from.clone(), spender, amount); spend_balance(&e, from.clone(), amount); diff --git a/contracts/token/src/test.rs b/contracts/token/src/test.rs index 9aae46eba..dbdb17a33 100644 --- a/contracts/token/src/test.rs +++ b/contracts/token/src/test.rs @@ -19,11 +19,11 @@ fn test() { let e = Env::default(); e.mock_all_auths(); - let admin1 = Address::random(&e); - let admin2 = Address::random(&e); - let user1 = Address::random(&e); - let user2 = Address::random(&e); - let user3 = Address::random(&e); + let admin1 = Address::generate(&e); + let admin2 = Address::generate(&e); + let user1 = Address::generate(&e); + let user2 = Address::generate(&e); + let user3 = Address::generate(&e); let token = create_token(&e, &admin1); token.mint(&user1, &1000); @@ -142,9 +142,9 @@ fn test_burn() { let e = Env::default(); e.mock_all_auths(); - let admin = Address::random(&e); - let user1 = Address::random(&e); - let user2 = Address::random(&e); + let admin = Address::generate(&e); + let user1 = Address::generate(&e); + let user2 = Address::generate(&e); let token = create_token(&e, &admin); token.mint(&user1, &1000); @@ -199,9 +199,9 @@ fn transfer_insufficient_balance() { let e = Env::default(); e.mock_all_auths(); - let admin = Address::random(&e); - let user1 = Address::random(&e); - let user2 = Address::random(&e); + let admin = Address::generate(&e); + let user1 = Address::generate(&e); + let user2 = Address::generate(&e); let token = create_token(&e, &admin); token.mint(&user1, &1000); @@ -216,10 +216,10 @@ fn transfer_from_insufficient_allowance() { let e = Env::default(); e.mock_all_auths(); - let admin = Address::random(&e); - let user1 = Address::random(&e); - let user2 = Address::random(&e); - let user3 = Address::random(&e); + let admin = Address::generate(&e); + let user1 = Address::generate(&e); + let user2 = Address::generate(&e); + let user3 = Address::generate(&e); let token = create_token(&e, &admin); token.mint(&user1, &1000); @@ -235,7 +235,7 @@ fn transfer_from_insufficient_allowance() { #[should_panic(expected = "already initialized")] fn initialize_already_initialized() { let e = Env::default(); - let admin = Address::random(&e); + let admin = Address::generate(&e); let token = create_token(&e, &admin); token.initialize(&admin, &10, &"name".into_val(&e), &"symbol".into_val(&e)); @@ -245,7 +245,7 @@ fn initialize_already_initialized() { #[should_panic(expected = "Decimal must fit in a u8")] fn decimal_is_over_max() { let e = Env::default(); - let admin = Address::random(&e); + let admin = Address::generate(&e); let token = TokenClient::new(&e, &e.register_contract(None, Token {})); token.initialize( &admin, diff --git a/packages/curve/src/lib.rs b/packages/curve/src/lib.rs index a4ecb3930..fa1d725fe 100644 --- a/packages/curve/src/lib.rs +++ b/packages/curve/src/lib.rs @@ -460,7 +460,6 @@ impl PiecewiseLinear { // map to full coordinates let mut steps = soroban_sdk::Vec::new(env); for x_val in x { - let x_val = x_val; steps.push_back(Step { time: x_val, value: self.value(x_val) + other.value(x_val), diff --git a/packages/decimal/src/lib.rs b/packages/decimal/src/lib.rs index 00792c7bc..d8387d1b9 100644 --- a/packages/decimal/src/lib.rs +++ b/packages/decimal/src/lib.rs @@ -222,7 +222,7 @@ impl Decimal { } pub fn to_string(&self, env: &Env) -> String { - String::from_slice(env, alloc::format!("{}", self).as_str()) + String::from_str(env, alloc::format!("{}", self).as_str()) } }