diff --git a/ci-test.sh b/ci-test.sh index c05d3b9cc..20008b219 100755 --- a/ci-test.sh +++ b/ci-test.sh @@ -10,6 +10,11 @@ else cargo generate-lockfile + ### this is section for packages, refusing to work with 1.69 + cargo update -p clap@4.4.0 --precise 4.3.24 + cargo update -p clap_lex@0.5.1 --precise 0.5.0 + ### end of 1.69 threshold section + cp Cargo.toml{,.bak} cp Cargo.lock{,.bak} diff --git a/examples/adder/Cargo.lock b/examples/adder/Cargo.lock index 2fd86a749..6b9ab6ffb 100644 --- a/examples/adder/Cargo.lock +++ b/examples/adder/Cargo.lock @@ -58,6 +58,7 @@ name = "adder" version = "0.1.0" dependencies = [ "anyhow", + "borsh 1.0.0-alpha.3", "near-abi", "near-sdk", "schemars", @@ -450,6 +451,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -458,7 +469,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -471,11 +482,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -605,6 +630,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -1000,6 +1031,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1276,7 +1313,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1307,6 +1344,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1503,6 +1546,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1730,10 +1783,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -2084,7 +2136,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2246,9 +2298,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2396,7 +2448,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2487,6 +2539,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -3022,7 +3108,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3047,7 +3133,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3232,6 +3318,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3460,6 +3558,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3511,7 +3626,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4052,6 +4167,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/adder/Cargo.toml b/examples/adder/Cargo.toml index d3027c20a..aa28d453a 100644 --- a/examples/adder/Cargo.toml +++ b/examples/adder/Cargo.toml @@ -10,6 +10,7 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../near-sdk", features = ["unstable"] } serde = { version = "1", features = ["derive"] } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } schemars = "0.8" [dev-dependencies] @@ -17,7 +18,7 @@ workspaces = "0.7.0" serde_json = "1.0" tokio = { version = "1.14", features = ["full"] } anyhow = "1.0" -near-abi = "0.3.0" +near-abi = { version = "0.3.0", git = "https://github.com/dj8yfo/near-abi-rs.git", branch = "borsh_update" } zstd = "0.11" [profile.release] diff --git a/examples/adder/src/lib.rs b/examples/adder/src/lib.rs index ef038d9d3..74af3e3dc 100644 --- a/examples/adder/src/lib.rs +++ b/examples/adder/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::{near_bindgen, NearSchema}; diff --git a/examples/callback-results/Cargo.lock b/examples/callback-results/Cargo.lock index b645c3463..f327d526f 100644 --- a/examples/callback-results/Cargo.lock +++ b/examples/callback-results/Cargo.lock @@ -435,6 +435,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -443,7 +453,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -456,11 +466,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -598,6 +622,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -993,6 +1023,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1269,7 +1305,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1300,6 +1336,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1496,6 +1538,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1714,10 +1766,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -2068,7 +2119,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2230,9 +2281,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2380,7 +2431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2471,6 +2522,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -3006,7 +3091,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3031,7 +3116,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3216,6 +3301,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3444,6 +3541,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3495,7 +3609,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4036,6 +4150,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/cross-contract-calls/Cargo.lock b/examples/cross-contract-calls/Cargo.lock index 7d6757335..92dd4be70 100644 --- a/examples/cross-contract-calls/Cargo.lock +++ b/examples/cross-contract-calls/Cargo.lock @@ -441,6 +441,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -449,7 +459,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -462,11 +472,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -593,6 +617,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -725,6 +755,7 @@ dependencies = [ name = "cross-contract-high-level" version = "1.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -732,6 +763,7 @@ dependencies = [ name = "cross-contract-low-level" version = "1.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -1017,6 +1049,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1293,7 +1331,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1324,6 +1362,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1520,6 +1564,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1738,10 +1792,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -2092,7 +2145,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2296,9 +2349,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2446,7 +2499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2537,6 +2590,16 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -3096,7 +3159,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3121,7 +3184,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3306,6 +3369,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3556,6 +3631,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3607,7 +3699,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4148,6 +4240,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/cross-contract-calls/high-level/Cargo.toml b/examples/cross-contract-calls/high-level/Cargo.toml index 0f188089a..904d6b25f 100644 --- a/examples/cross-contract-calls/high-level/Cargo.toml +++ b/examples/cross-contract-calls/high-level/Cargo.toml @@ -9,3 +9,4 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } diff --git a/examples/cross-contract-calls/high-level/src/lib.rs b/examples/cross-contract-calls/high-level/src/lib.rs index b4aacceb6..5dba44df3 100644 --- a/examples/cross-contract-calls/high-level/src/lib.rs +++ b/examples/cross-contract-calls/high-level/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::env; use near_sdk::{log, near_bindgen, PromiseOrValue}; diff --git a/examples/cross-contract-calls/low-level/Cargo.toml b/examples/cross-contract-calls/low-level/Cargo.toml index 0b86d16b2..3cc84287f 100644 --- a/examples/cross-contract-calls/low-level/Cargo.toml +++ b/examples/cross-contract-calls/low-level/Cargo.toml @@ -9,3 +9,4 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } diff --git a/examples/cross-contract-calls/low-level/src/lib.rs b/examples/cross-contract-calls/low-level/src/lib.rs index 66174cd97..87747f804 100644 --- a/examples/cross-contract-calls/low-level/src/lib.rs +++ b/examples/cross-contract-calls/low-level/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde_json; use near_sdk::{env, near_bindgen, require, Gas, PromiseResult}; diff --git a/examples/factory-contract/Cargo.lock b/examples/factory-contract/Cargo.lock index 8b20cc522..beb8ecb9d 100644 --- a/examples/factory-contract/Cargo.lock +++ b/examples/factory-contract/Cargo.lock @@ -441,6 +441,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -449,7 +459,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -462,11 +472,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -593,6 +617,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -988,6 +1018,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1019,6 +1055,7 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" name = "factory-contract-high-level" version = "1.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -1026,6 +1063,7 @@ dependencies = [ name = "factory-contract-low-level" version = "1.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -1293,7 +1331,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1324,6 +1362,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1520,6 +1564,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1738,10 +1792,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -2092,7 +2145,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2296,9 +2349,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2446,7 +2499,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2537,6 +2590,16 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -3096,7 +3159,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3121,7 +3184,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3306,6 +3369,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3556,6 +3631,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3607,7 +3699,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4148,6 +4240,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/factory-contract/high-level/Cargo.toml b/examples/factory-contract/high-level/Cargo.toml index ae04ffca5..8614ec689 100644 --- a/examples/factory-contract/high-level/Cargo.toml +++ b/examples/factory-contract/high-level/Cargo.toml @@ -9,3 +9,4 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } diff --git a/examples/factory-contract/high-level/src/lib.rs b/examples/factory-contract/high-level/src/lib.rs index bf2edb117..f86c44ad0 100644 --- a/examples/factory-contract/high-level/src/lib.rs +++ b/examples/factory-contract/high-level/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::PromiseError; use near_sdk::{env, ext_contract, json_types::U128, near_bindgen, AccountId, Promise}; diff --git a/examples/factory-contract/low-level/Cargo.toml b/examples/factory-contract/low-level/Cargo.toml index 27a11bfb0..fffe077de 100644 --- a/examples/factory-contract/low-level/Cargo.toml +++ b/examples/factory-contract/low-level/Cargo.toml @@ -9,3 +9,4 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } diff --git a/examples/factory-contract/low-level/src/lib.rs b/examples/factory-contract/low-level/src/lib.rs index 3a239e98a..b8f502e4e 100644 --- a/examples/factory-contract/low-level/src/lib.rs +++ b/examples/factory-contract/low-level/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::serde_json; use near_sdk::{env, near_bindgen, AccountId, Gas, PromiseResult}; diff --git a/examples/fungible-token/Cargo.lock b/examples/fungible-token/Cargo.lock index 80df77eed..dc7a2e2dd 100644 --- a/examples/fungible-token/Cargo.lock +++ b/examples/fungible-token/Cargo.lock @@ -441,6 +441,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -449,7 +459,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -462,11 +472,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -593,6 +617,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -848,6 +878,7 @@ dependencies = [ name = "defi" version = "0.0.1" dependencies = [ + "borsh 1.0.0-alpha.3", "near-contract-standards", "near-sdk", "schemars", @@ -997,6 +1028,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1136,6 +1173,7 @@ dependencies = [ name = "fungible-token" version = "1.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-contract-standards", "near-sdk", "schemars", @@ -1298,7 +1336,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1329,6 +1367,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1525,6 +1569,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1743,10 +1797,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -1807,6 +1860,7 @@ dependencies = [ name = "near-contract-standards" version = "4.1.1" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", "schemars", "serde", @@ -2107,7 +2161,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2311,9 +2365,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2461,7 +2515,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2552,6 +2606,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -3087,7 +3175,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3112,7 +3200,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3297,6 +3385,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3525,6 +3625,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3576,7 +3693,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4117,6 +4234,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/fungible-token/ft/Cargo.toml b/examples/fungible-token/ft/Cargo.toml index 0f7f98ec7..8fbc3d161 100644 --- a/examples/fungible-token/ft/Cargo.toml +++ b/examples/fungible-token/ft/Cargo.toml @@ -9,5 +9,6 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } near-contract-standards = { path = "../../../near-contract-standards" } schemars = "0.8" diff --git a/examples/fungible-token/ft/src/lib.rs b/examples/fungible-token/ft/src/lib.rs index aa3c87da3..76acbd8a1 100644 --- a/examples/fungible-token/ft/src/lib.rs +++ b/examples/fungible-token/ft/src/lib.rs @@ -24,7 +24,7 @@ use near_contract_standards::fungible_token::{ use near_contract_standards::storage_management::{ StorageBalance, StorageBalanceBounds, StorageManagement, }; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::collections::LazyOption; use near_sdk::json_types::U128; use near_sdk::{ diff --git a/examples/fungible-token/test-contract-defi/Cargo.toml b/examples/fungible-token/test-contract-defi/Cargo.toml index f7aa87af0..2db39cc7e 100644 --- a/examples/fungible-token/test-contract-defi/Cargo.toml +++ b/examples/fungible-token/test-contract-defi/Cargo.toml @@ -9,5 +9,6 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } near-contract-standards = { path = "../../../near-contract-standards" } schemars = "0.8" diff --git a/examples/fungible-token/test-contract-defi/src/lib.rs b/examples/fungible-token/test-contract-defi/src/lib.rs index a762f7cf5..e222ff049 100644 --- a/examples/fungible-token/test-contract-defi/src/lib.rs +++ b/examples/fungible-token/test-contract-defi/src/lib.rs @@ -2,7 +2,7 @@ Some hypothetical DeFi contract that will do smart things with the transferred tokens */ use near_contract_standards::fungible_token::receiver::FungibleTokenReceiver; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::{ env, log, near_bindgen, require, AccountId, Balance, Gas, PanicOnDefault, PromiseOrValue, diff --git a/examples/lockable-fungible-token/Cargo.lock b/examples/lockable-fungible-token/Cargo.lock index 63317ec59..e9eced37e 100644 --- a/examples/lockable-fungible-token/Cargo.lock +++ b/examples/lockable-fungible-token/Cargo.lock @@ -441,6 +441,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -449,7 +459,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -462,11 +472,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -593,6 +617,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -988,6 +1018,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1264,7 +1300,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1295,6 +1331,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1491,6 +1533,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1625,6 +1677,7 @@ name = "lockable-fungible-token" version = "0.1.0" dependencies = [ "anyhow", + "borsh 1.0.0-alpha.3", "near-primitives 0.17.0", "near-sdk", "near-units", @@ -1722,10 +1775,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -2076,7 +2128,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2280,9 +2332,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2430,7 +2482,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2521,6 +2573,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -3056,7 +3142,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3081,7 +3167,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3266,6 +3352,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3494,6 +3592,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3545,7 +3660,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4086,6 +4201,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/lockable-fungible-token/Cargo.toml b/examples/lockable-fungible-token/Cargo.toml index 029d153ea..31f6bd903 100644 --- a/examples/lockable-fungible-token/Cargo.toml +++ b/examples/lockable-fungible-token/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } [dev-dependencies] anyhow = "1.0" diff --git a/examples/lockable-fungible-token/src/lib.rs b/examples/lockable-fungible-token/src/lib.rs index 1ad4c225f..225b11843 100644 --- a/examples/lockable-fungible-token/src/lib.rs +++ b/examples/lockable-fungible-token/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::collections::UnorderedMap; use near_sdk::{env, near_bindgen, AccountId, Balance, PanicOnDefault}; use std::collections::HashMap; diff --git a/examples/mission-control/Cargo.lock b/examples/mission-control/Cargo.lock index 81a23798e..7876e84d9 100644 --- a/examples/mission-control/Cargo.lock +++ b/examples/mission-control/Cargo.lock @@ -280,6 +280,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -288,7 +298,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -301,11 +311,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -411,6 +435,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -702,6 +732,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -883,7 +919,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -914,6 +950,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1072,6 +1114,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1216,6 +1268,7 @@ dependencies = [ name = "mission-control" version = "0.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -1228,10 +1281,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -1408,7 +1460,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto", @@ -1548,9 +1600,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -1648,7 +1700,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -1708,6 +1760,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -2097,7 +2183,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -2122,7 +2208,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -2291,6 +2377,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "tempfile" version = "3.5.0" @@ -2460,6 +2558,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -2511,7 +2626,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -2961,6 +3076,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "zeroize" version = "1.3.0" diff --git a/examples/mission-control/Cargo.toml b/examples/mission-control/Cargo.toml index 00d51fdac..46ee3eea3 100644 --- a/examples/mission-control/Cargo.toml +++ b/examples/mission-control/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } [profile.release] codegen-units = 1 diff --git a/examples/mission-control/src/account.rs b/examples/mission-control/src/account.rs index d5c2dd056..56888ac15 100644 --- a/examples/mission-control/src/account.rs +++ b/examples/mission-control/src/account.rs @@ -1,6 +1,6 @@ use crate::asset::*; use crate::rate::*; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; use std::collections::HashMap; use std::ops; diff --git a/examples/mission-control/src/agent.rs b/examples/mission-control/src/agent.rs index 2dd31186c..e233277a7 100644 --- a/examples/mission-control/src/agent.rs +++ b/examples/mission-control/src/agent.rs @@ -1,7 +1,7 @@ use crate::account::*; use crate::asset::*; use crate::rate::*; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; use std::collections::HashMap; diff --git a/examples/mission-control/src/asset.rs b/examples/mission-control/src/asset.rs index 2b5ba63df..4e1df6a06 100644 --- a/examples/mission-control/src/asset.rs +++ b/examples/mission-control/src/asset.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; #[derive( diff --git a/examples/mission-control/src/mission_control.rs b/examples/mission-control/src/mission_control.rs index aa52e91fc..b40293598 100644 --- a/examples/mission-control/src/mission_control.rs +++ b/examples/mission-control/src/mission_control.rs @@ -3,7 +3,7 @@ use crate::agent::Agent; use crate::asset::*; use crate::rate::*; use near_sdk::AccountId; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::{env, near_bindgen}; use std::collections::HashMap; diff --git a/examples/mission-control/src/rate.rs b/examples/mission-control/src/rate.rs index 3f5946be6..c14f70ae5 100644 --- a/examples/mission-control/src/rate.rs +++ b/examples/mission-control/src/rate.rs @@ -1,6 +1,6 @@ use crate::account::*; use crate::asset::*; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::serde::{Deserialize, Serialize}; use std::collections::HashMap; diff --git a/examples/non-fungible-token/Cargo.lock b/examples/non-fungible-token/Cargo.lock index 6a2085167..14c2b795c 100644 --- a/examples/non-fungible-token/Cargo.lock +++ b/examples/non-fungible-token/Cargo.lock @@ -173,6 +173,7 @@ checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" name = "approval-receiver" version = "0.0.1" dependencies = [ + "borsh 1.0.0-alpha.3", "near-contract-standards", "near-sdk", ] @@ -449,6 +450,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -457,7 +468,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -470,11 +481,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -601,6 +626,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -996,6 +1027,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -1272,7 +1309,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -1303,6 +1340,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1499,6 +1542,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1717,10 +1770,9 @@ dependencies = [ [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -1781,6 +1833,7 @@ dependencies = [ name = "near-contract-standards" version = "4.1.1" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", "schemars", "serde", @@ -2081,7 +2134,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto 0.17.0", @@ -2205,6 +2258,7 @@ dependencies = [ name = "non-fungible-token" version = "1.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-contract-standards", "near-sdk", ] @@ -2307,9 +2361,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -2457,7 +2511,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -2548,6 +2602,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -3083,7 +3171,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex 0.4.3", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -3108,7 +3196,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -3293,6 +3381,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "synstructure" version = "0.12.6" @@ -3416,6 +3516,7 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" name = "token-receiver" version = "0.0.1" dependencies = [ + "borsh 1.0.0-alpha.3", "near-contract-standards", "near-sdk", ] @@ -3529,6 +3630,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -3580,7 +3698,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -4121,6 +4239,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "winreg" version = "0.10.1" diff --git a/examples/non-fungible-token/nft/Cargo.toml b/examples/non-fungible-token/nft/Cargo.toml index 16fd40d50..a17af5df9 100644 --- a/examples/non-fungible-token/nft/Cargo.toml +++ b/examples/non-fungible-token/nft/Cargo.toml @@ -9,4 +9,5 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } near-contract-standards = { path = "../../../near-contract-standards" } diff --git a/examples/non-fungible-token/nft/src/lib.rs b/examples/non-fungible-token/nft/src/lib.rs index b89f580b7..13b1d9819 100644 --- a/examples/non-fungible-token/nft/src/lib.rs +++ b/examples/non-fungible-token/nft/src/lib.rs @@ -24,7 +24,7 @@ use near_contract_standards::non_fungible_token::{Token, TokenId}; use near_contract_standards::non_fungible_token::approval::NonFungibleTokenApproval; use near_contract_standards::non_fungible_token::core::{NonFungibleTokenCore, NonFungibleTokenResolver}; use near_contract_standards::non_fungible_token::enumeration::NonFungibleTokenEnumeration; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::collections::LazyOption; use near_sdk::{ env, near_bindgen, require, AccountId, BorshStorageKey, PanicOnDefault, Promise, PromiseOrValue, diff --git a/examples/non-fungible-token/test-approval-receiver/Cargo.toml b/examples/non-fungible-token/test-approval-receiver/Cargo.toml index bbdd83128..f862ff00d 100644 --- a/examples/non-fungible-token/test-approval-receiver/Cargo.toml +++ b/examples/non-fungible-token/test-approval-receiver/Cargo.toml @@ -9,4 +9,5 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } near-contract-standards = { path = "../../../near-contract-standards" } diff --git a/examples/non-fungible-token/test-approval-receiver/src/lib.rs b/examples/non-fungible-token/test-approval-receiver/src/lib.rs index 2d5de1cf8..8407377d3 100644 --- a/examples/non-fungible-token/test-approval-receiver/src/lib.rs +++ b/examples/non-fungible-token/test-approval-receiver/src/lib.rs @@ -3,7 +3,7 @@ A stub contract that implements nft_on_approve for e2e testing nft_approve. */ use near_contract_standards::non_fungible_token::approval::NonFungibleTokenApprovalReceiver; use near_contract_standards::non_fungible_token::TokenId; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::{ env, log, near_bindgen, require, AccountId, Gas, PanicOnDefault, PromiseOrValue, diff --git a/examples/non-fungible-token/test-token-receiver/Cargo.toml b/examples/non-fungible-token/test-token-receiver/Cargo.toml index c3677f76c..a991b3472 100644 --- a/examples/non-fungible-token/test-token-receiver/Cargo.toml +++ b/examples/non-fungible-token/test-token-receiver/Cargo.toml @@ -9,4 +9,5 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } near-contract-standards = { path = "../../../near-contract-standards" } diff --git a/examples/non-fungible-token/test-token-receiver/src/lib.rs b/examples/non-fungible-token/test-token-receiver/src/lib.rs index 6fa9bf8a2..fd635d832 100644 --- a/examples/non-fungible-token/test-token-receiver/src/lib.rs +++ b/examples/non-fungible-token/test-token-receiver/src/lib.rs @@ -3,7 +3,7 @@ A stub contract that implements nft_on_transfer for simulation testing nft_trans */ use near_contract_standards::non_fungible_token::core::NonFungibleTokenReceiver; use near_contract_standards::non_fungible_token::TokenId; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::{ env, log, near_bindgen, require, AccountId, Gas, PanicOnDefault, PromiseOrValue, }; diff --git a/examples/status-message/Cargo.lock b/examples/status-message/Cargo.lock index e545e0c96..7543d4d70 100644 --- a/examples/status-message/Cargo.lock +++ b/examples/status-message/Cargo.lock @@ -280,6 +280,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -288,7 +298,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -301,11 +311,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -411,6 +435,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -702,6 +732,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -883,7 +919,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -914,6 +950,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1072,6 +1114,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1221,10 +1273,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -1401,7 +1452,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto", @@ -1541,9 +1592,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -1641,7 +1692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -1701,6 +1752,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -2090,7 +2175,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -2115,7 +2200,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -2232,6 +2317,7 @@ checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" name = "status-message" version = "0.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -2291,6 +2377,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "tempfile" version = "3.5.0" @@ -2460,6 +2558,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -2511,7 +2626,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -2961,6 +3076,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "zeroize" version = "1.3.0" diff --git a/examples/status-message/Cargo.toml b/examples/status-message/Cargo.toml index f3bb5745e..7629c7488 100644 --- a/examples/status-message/Cargo.toml +++ b/examples/status-message/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } [profile.release] codegen-units = 1 diff --git a/examples/status-message/src/lib.rs b/examples/status-message/src/lib.rs index bf196b9a3..9c097ef90 100644 --- a/examples/status-message/src/lib.rs +++ b/examples/status-message/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::collections::LookupMap; use near_sdk::{env, log, near_bindgen, AccountId, BorshStorageKey}; diff --git a/examples/test-contract/Cargo.lock b/examples/test-contract/Cargo.lock index c1411c003..265c56ad5 100644 --- a/examples/test-contract/Cargo.lock +++ b/examples/test-contract/Cargo.lock @@ -280,6 +280,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -288,7 +298,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -301,11 +311,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -411,6 +435,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -702,6 +732,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -883,7 +919,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -914,6 +950,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1072,6 +1114,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1221,10 +1273,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -1401,7 +1452,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto", @@ -1541,9 +1592,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -1641,7 +1692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -1701,6 +1752,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -2090,7 +2175,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -2115,7 +2200,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -2284,6 +2369,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "tempfile" version = "3.5.0" @@ -2301,6 +2398,7 @@ dependencies = [ name = "test-contract" version = "0.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -2460,6 +2558,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -2511,7 +2626,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -2961,6 +3076,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "zeroize" version = "1.3.0" diff --git a/examples/test-contract/Cargo.toml b/examples/test-contract/Cargo.toml index 700d35855..5631aa594 100644 --- a/examples/test-contract/Cargo.toml +++ b/examples/test-contract/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../near-sdk" } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } [profile.release] codegen-units = 1 diff --git a/examples/test-contract/src/lib.rs b/examples/test-contract/src/lib.rs index 63f965ec0..99bb472a2 100644 --- a/examples/test-contract/src/lib.rs +++ b/examples/test-contract/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::{env, near_bindgen}; #[near_bindgen] diff --git a/examples/versioned/Cargo.lock b/examples/versioned/Cargo.lock index d01238a11..0a7f84364 100644 --- a/examples/versioned/Cargo.lock +++ b/examples/versioned/Cargo.lock @@ -280,6 +280,16 @@ dependencies = [ "hashbrown 0.13.2", ] +[[package]] +name = "borsh" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1acb549fd0db3b4150957daa838fa9bbd26c18f18b32f24c9678de4b8ca4f7" +dependencies = [ + "borsh-derive 1.0.0-alpha.3", + "cfg_aliases", +] + [[package]] name = "borsh-derive" version = "0.9.3" @@ -288,7 +298,7 @@ checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" dependencies = [ "borsh-derive-internal 0.9.3", "borsh-schema-derive-internal 0.9.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] @@ -301,11 +311,25 @@ checksum = "0754613691538d51f329cce9af41d7b7ca150bc973056f1156611489475f54f7" dependencies = [ "borsh-derive-internal 0.10.3", "borsh-schema-derive-internal 0.10.3", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] +[[package]] +name = "borsh-derive" +version = "1.0.0-alpha.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e6d4b2eff15f3f87c5d0844180621f6eb0688e68820d76cf17149a02eef1c78" +dependencies = [ + "once_cell", + "proc-macro-crate 1.3.1", + "proc-macro2", + "quote", + "syn 2.0.18", + "syn_derive", +] + [[package]] name = "borsh-derive-internal" version = "0.9.3" @@ -411,6 +435,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e" + [[package]] name = "chrono" version = "0.4.26" @@ -702,6 +732,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + [[package]] name = "errno" version = "0.3.1" @@ -883,7 +919,7 @@ dependencies = [ "futures-sink", "futures-util", "http", - "indexmap", + "indexmap 1.9.3", "slab", "tokio", "tokio-util 0.7.8", @@ -914,6 +950,12 @@ dependencies = [ "ahash 0.8.3", ] +[[package]] +name = "hashbrown" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" + [[package]] name = "heck" version = "0.3.3" @@ -1072,6 +1114,16 @@ dependencies = [ "serde", ] +[[package]] +name = "indexmap" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +dependencies = [ + "equivalent", + "hashbrown 0.14.0", +] + [[package]] name = "instant" version = "0.1.12" @@ -1221,10 +1273,9 @@ checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" [[package]] name = "near-abi" version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "885db39b08518fa700b73fa2214e8adbbfba316ba82dd510f50519173eadaf73" +source = "git+https://github.com/dj8yfo/near-abi-rs.git?branch=borsh_update#fb57a26524e30f8a18683415e1d9d549824091ca" dependencies = [ - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "schemars", "semver", "serde", @@ -1401,7 +1452,7 @@ name = "near-sdk" version = "4.1.1" dependencies = [ "base64 0.13.1", - "borsh 0.9.3", + "borsh 1.0.0-alpha.3", "bs58", "near-abi", "near-crypto", @@ -1541,9 +1592,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.17.2" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b" +checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" [[package]] name = "opaque-debug" @@ -1641,7 +1692,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", - "indexmap", + "indexmap 1.9.3", ] [[package]] @@ -1701,6 +1752,40 @@ dependencies = [ "toml", ] +[[package]] +name = "proc-macro-crate" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" +dependencies = [ + "once_cell", + "toml_edit", +] + +[[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", +] + [[package]] name = "proc-macro2" version = "1.0.59" @@ -2090,7 +2175,7 @@ dependencies = [ "base64 0.21.2", "chrono", "hex", - "indexmap", + "indexmap 1.9.3", "serde", "serde_json", "serde_with_macros", @@ -2115,7 +2200,7 @@ version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9d684e3ec7de3bf5466b32bd75303ac16f0736426e5a4e0d6e489559ce1249c" dependencies = [ - "indexmap", + "indexmap 1.9.3", "itoa", "ryu", "serde", @@ -2284,6 +2369,18 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn_derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8128874d02f9a114ade6d9ad252078cb32d3cb240e26477ac73d7e9c495c605e" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "tempfile" version = "3.5.0" @@ -2453,6 +2550,23 @@ dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b" + +[[package]] +name = "toml_edit" +version = "0.19.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +dependencies = [ + "indexmap 2.0.0", + "toml_datetime", + "winnow", +] + [[package]] name = "tonic" version = "0.6.2" @@ -2504,7 +2618,7 @@ checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" dependencies = [ "futures-core", "futures-util", - "indexmap", + "indexmap 1.9.3", "pin-project", "pin-project-lite", "rand 0.8.5", @@ -2690,6 +2804,7 @@ checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" name = "versioned" version = "0.1.0" dependencies = [ + "borsh 1.0.0-alpha.3", "near-sdk", ] @@ -2961,6 +3076,15 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" +[[package]] +name = "winnow" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" +dependencies = [ + "memchr", +] + [[package]] name = "zeroize" version = "1.3.0" diff --git a/examples/versioned/Cargo.toml b/examples/versioned/Cargo.toml index cc78a70d7..f878633a4 100644 --- a/examples/versioned/Cargo.toml +++ b/examples/versioned/Cargo.toml @@ -9,6 +9,7 @@ crate-type = ["cdylib"] [dependencies] near-sdk = { path = "../../near-sdk", features = ["unstable"] } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } [profile.release] codegen-units = 1 diff --git a/examples/versioned/src/lib.rs b/examples/versioned/src/lib.rs index f6b6d6fd4..1242dec30 100644 --- a/examples/versioned/src/lib.rs +++ b/examples/versioned/src/lib.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::store::UnorderedMap; use near_sdk::{env, log, near_bindgen, AccountId, Balance}; diff --git a/near-contract-standards/Cargo.toml b/near-contract-standards/Cargo.toml index 263deee55..ea6af993a 100644 --- a/near-contract-standards/Cargo.toml +++ b/near-contract-standards/Cargo.toml @@ -14,6 +14,7 @@ NEAR smart contracts standard library. [dependencies] near-sdk = { path = "../near-sdk", version = "~4.1.1", default-features = false, features = ["legacy"] } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } serde = "1" serde_json = "1" schemars = "0.8" diff --git a/near-contract-standards/src/fungible_token/core.rs b/near-contract-standards/src/fungible_token/core.rs index 03143c08b..1790886fa 100644 --- a/near-contract-standards/src/fungible_token/core.rs +++ b/near-contract-standards/src/fungible_token/core.rs @@ -9,7 +9,7 @@ use near_sdk::PromiseOrValue; /// /// ``` /// use near_sdk::{near_bindgen, PanicOnDefault, AccountId, PromiseOrValue}; -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::collections::LazyOption; /// use near_sdk::json_types::U128; /// use near_contract_standards::fungible_token::{FungibleToken, FungibleTokenCore}; diff --git a/near-contract-standards/src/fungible_token/core_impl.rs b/near-contract-standards/src/fungible_token/core_impl.rs index c4580f017..d61ee8e73 100644 --- a/near-contract-standards/src/fungible_token/core_impl.rs +++ b/near-contract-standards/src/fungible_token/core_impl.rs @@ -2,7 +2,7 @@ use crate::fungible_token::core::FungibleTokenCore; use crate::fungible_token::events::{FtBurn, FtTransfer}; use crate::fungible_token::receiver::ext_ft_receiver; use crate::fungible_token::resolver::{ext_ft_resolver, FungibleTokenResolver}; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::collections::LookupMap; use near_sdk::json_types::U128; use near_sdk::{ diff --git a/near-contract-standards/src/fungible_token/metadata.rs b/near-contract-standards/src/fungible_token/metadata.rs index 3f1e1c231..29a0ff498 100644 --- a/near-contract-standards/src/fungible_token/metadata.rs +++ b/near-contract-standards/src/fungible_token/metadata.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::json_types::Base64VecU8; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::{ext_contract, require}; diff --git a/near-contract-standards/src/fungible_token/resolver.rs b/near-contract-standards/src/fungible_token/resolver.rs index f0b82e68f..fc3228274 100644 --- a/near-contract-standards/src/fungible_token/resolver.rs +++ b/near-contract-standards/src/fungible_token/resolver.rs @@ -6,7 +6,7 @@ use near_sdk::{ext_contract, json_types::U128, AccountId}; /// /// ``` /// use near_sdk::{near_bindgen, PanicOnDefault, AccountId, Balance, log}; -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::collections::LazyOption; /// use near_sdk::json_types::U128; /// use near_contract_standards::fungible_token::{FungibleToken, FungibleTokenResolver}; diff --git a/near-contract-standards/src/non_fungible_token/approval/mod.rs b/near-contract-standards/src/non_fungible_token/approval/mod.rs index 735698ac8..e77f561b2 100644 --- a/near-contract-standards/src/non_fungible_token/approval/mod.rs +++ b/near-contract-standards/src/non_fungible_token/approval/mod.rs @@ -22,7 +22,7 @@ use near_sdk::Promise; /// /// ``` /// use std::collections::HashMap; -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::{PanicOnDefault, AccountId, PromiseOrValue, near_bindgen, Promise}; /// use near_contract_standards::non_fungible_token::{TokenId, NonFungibleToken, NonFungibleTokenApproval}; /// diff --git a/near-contract-standards/src/non_fungible_token/core/core_impl.rs b/near-contract-standards/src/non_fungible_token/core/core_impl.rs index 22f1c04e7..25fa8ef99 100644 --- a/near-contract-standards/src/non_fungible_token/core/core_impl.rs +++ b/near-contract-standards/src/non_fungible_token/core/core_impl.rs @@ -6,7 +6,7 @@ use crate::non_fungible_token::events::{NftMint, NftTransfer}; use crate::non_fungible_token::metadata::TokenMetadata; use crate::non_fungible_token::token::{Token, TokenId}; use crate::non_fungible_token::utils::{refund_approved_account_ids, refund_deposit_to_account}; -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::collections::{LookupMap, TreeMap, UnorderedSet}; use near_sdk::json_types::Base64VecU8; use near_sdk::{ diff --git a/near-contract-standards/src/non_fungible_token/core/mod.rs b/near-contract-standards/src/non_fungible_token/core/mod.rs index 659de459d..09254b8b6 100644 --- a/near-contract-standards/src/non_fungible_token/core/mod.rs +++ b/near-contract-standards/src/non_fungible_token/core/mod.rs @@ -23,7 +23,7 @@ use near_sdk::PromiseOrValue; /// # Examples /// /// ``` -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::{PanicOnDefault, AccountId, PromiseOrValue, near_bindgen}; /// use near_contract_standards::non_fungible_token::{core::NonFungibleTokenCore, NonFungibleToken, TokenId, Token}; /// diff --git a/near-contract-standards/src/non_fungible_token/core/resolver.rs b/near-contract-standards/src/non_fungible_token/core/resolver.rs index 63b2da4ad..812138918 100644 --- a/near-contract-standards/src/non_fungible_token/core/resolver.rs +++ b/near-contract-standards/src/non_fungible_token/core/resolver.rs @@ -8,7 +8,7 @@ use std::collections::HashMap; /// /// ``` /// use std::collections::HashMap; -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::{PanicOnDefault, AccountId, PromiseOrValue, near_bindgen}; /// use near_contract_standards::non_fungible_token::{NonFungibleToken, NonFungibleTokenResolver, TokenId}; /// diff --git a/near-contract-standards/src/non_fungible_token/enumeration/mod.rs b/near-contract-standards/src/non_fungible_token/enumeration/mod.rs index 0711ff12d..c34360378 100644 --- a/near-contract-standards/src/non_fungible_token/enumeration/mod.rs +++ b/near-contract-standards/src/non_fungible_token/enumeration/mod.rs @@ -10,7 +10,7 @@ use near_sdk::AccountId; /// /// ``` /// use std::collections::HashMap; -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::{PanicOnDefault, AccountId, PromiseOrValue, near_bindgen, Promise}; /// use near_contract_standards::non_fungible_token::{NonFungibleToken, NonFungibleTokenEnumeration, TokenId, Token}; /// use near_sdk::json_types::U128; diff --git a/near-contract-standards/src/non_fungible_token/metadata.rs b/near-contract-standards/src/non_fungible_token/metadata.rs index f3f91a909..610ce65c6 100644 --- a/near-contract-standards/src/non_fungible_token/metadata.rs +++ b/near-contract-standards/src/non_fungible_token/metadata.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::json_types::Base64VecU8; use near_sdk::require; use near_sdk::serde::{Deserialize, Serialize}; diff --git a/near-contract-standards/src/storage_management/mod.rs b/near-contract-standards/src/storage_management/mod.rs index 6b704129d..168e2cb54 100644 --- a/near-contract-standards/src/storage_management/mod.rs +++ b/near-contract-standards/src/storage_management/mod.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U128; use near_sdk::serde::{Deserialize, Serialize}; use near_sdk::AccountId; @@ -29,7 +29,7 @@ pub struct StorageBalanceBounds { /// /// ``` /// use near_sdk::{near_bindgen, PanicOnDefault, AccountId, Balance, log}; -/// use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +/// use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; /// use near_sdk::collections::LazyOption; /// use near_sdk::json_types::U128; /// use near_contract_standards::fungible_token::FungibleToken; diff --git a/near-contract-standards/src/upgrade/mod.rs b/near-contract-standards/src/upgrade/mod.rs index 06ef72d6a..234cbb0db 100644 --- a/near-contract-standards/src/upgrade/mod.rs +++ b/near-contract-standards/src/upgrade/mod.rs @@ -1,4 +1,4 @@ -use near_sdk::borsh::{self, BorshDeserialize, BorshSerialize}; +use near_sdk::borsh::{BorshDeserialize, BorshSerialize}; use near_sdk::json_types::U64; use near_sdk::{env, require, AccountId, Duration, Promise, Timestamp}; diff --git a/near-sdk-macros/src/lib.rs b/near-sdk-macros/src/lib.rs index 37081425b..e37aff333 100644 --- a/near-sdk-macros/src/lib.rs +++ b/near-sdk-macros/src/lib.rs @@ -277,7 +277,7 @@ pub fn metadata(item: TokenStream) -> TokenStream { } #[cfg(feature = "abi")] -#[proc_macro_derive(NearSchema, attributes(abi, serde, borsh_skip, schemars, validate))] +#[proc_macro_derive(NearSchema, attributes(abi, serde, borsh, schemars, validate))] pub fn derive_near_schema(input: TokenStream) -> TokenStream { let mut input = syn::parse_macro_input!(input as syn::DeriveInput); @@ -334,9 +334,7 @@ pub fn derive_near_schema(input: TokenStream) -> TokenStream { let strip_unknown_attr = |attrs: &mut Vec| { attrs.retain(|attr| { - ["serde", "schemars", "validate", "borsh_skip"] - .iter() - .any(|&path| attr.path.is_ident(path)) + ["serde", "schemars", "validate", "borsh"].iter().any(|&path| attr.path.is_ident(path)) }); }; @@ -411,14 +409,14 @@ pub fn derive_near_schema(input: TokenStream) -> TokenStream { quote! { #[automatically_derived] impl borsh::BorshSchema for #input_ident_proxy { - fn declaration() -> ::std::string::String { + fn declaration() -> borsh::schema::Declaration { stringify!(#input_ident).to_string() } fn add_definitions_recursively( - definitions: &mut borsh::maybestd::collections::HashMap< + definitions: &mut borsh::__private::maybestd::collections::BTreeMap< borsh::schema::Declaration, - borsh::schema::Definition, + borsh::schema::Definition >, ) { <#input_ident as borsh::BorshSchema>::add_definitions_recursively(definitions); diff --git a/near-sdk/Cargo.toml b/near-sdk/Cargo.toml index a015a641e..b1ea2a0f4 100644 --- a/near-sdk/Cargo.toml +++ b/near-sdk/Cargo.toml @@ -24,7 +24,7 @@ serde_json = "1" near-sdk-macros = { path = "../near-sdk-macros", version = "~4.1.1" } near-sys = { path = "../near-sys", version = "0.2" } base64 = "0.13" -borsh = { version = "0.9", features = ["const-generics"] } +borsh = { version = "1.0.0-alpha.3", features = ["derive"] } bs58 = "0.4" schemars = { version = "0.8.8", optional = true } # Export dependencies for contracts @@ -33,7 +33,8 @@ wee_alloc = { version = "0.4.5", default-features = false, optional = true } # Used for caching, might be worth porting only functionality needed. once_cell = { version = "1.17", default-features = false } -near-abi = { version = "0.3.0", features = ["__chunked-entries"], optional = true } +# near-abi = { version = "0.3.0", features = ["__chunked-entries"], optional = true } +near-abi = { version = "0.3.0", git = "https://github.com/dj8yfo/near-abi-rs.git", branch = "borsh_update", features = ["__chunked-entries"], optional = true } [target.'cfg(not(target_arch = "wasm32"))'.dependencies] near-vm-logic = { version = "0.17", optional = true } @@ -56,7 +57,7 @@ default = ["wee_alloc", "unit-testing", "legacy", "abi"] expensive-debug = [] unstable = [] legacy = [] -abi = ["near-abi", "schemars", "near-sdk-macros/abi"] +abi = ["near-abi", "schemars", "near-sdk-macros/abi", "borsh/schema"] unit-testing = ["near-vm-logic", "near-primitives-core", "near-primitives", "near-crypto"] __abi-embed = ["near-sdk-macros/__abi-embed"] diff --git a/near-sdk/compilation_tests/all.rs b/near-sdk/compilation_tests/all.rs index 8acd10db3..bbbb59912 100644 --- a/near-sdk/compilation_tests/all.rs +++ b/near-sdk/compilation_tests/all.rs @@ -21,7 +21,6 @@ fn compilation_tests() { t.pass("compilation_tests/function_error.rs"); t.pass("compilation_tests/enum_near_bindgen.rs"); t.pass("compilation_tests/schema_derive.rs"); - t.compile_fail("compilation_tests/schema_derive_invalids.rs"); t.compile_fail("compilation_tests/generic_function.rs"); t.compile_fail("compilation_tests/generic_const_function.rs"); t.pass("compilation_tests/self_support.rs"); @@ -32,3 +31,10 @@ fn compilation_tests() { // t.compile_fail("compilation_tests/self_forbidden_in_non_init_fn_arg.rs"); t.pass("compilation_tests/private_init_method.rs"); } + +#[rustversion::since(1.72)] +#[test] +fn compilation_tests_only_latest() { + let t = trybuild::TestCases::new(); + t.compile_fail("compilation_tests/schema_derive_invalids.rs"); +} diff --git a/near-sdk/compilation_tests/schema_derive.rs b/near-sdk/compilation_tests/schema_derive.rs index 3fbe559b7..37f1224e2 100644 --- a/near-sdk/compilation_tests/schema_derive.rs +++ b/near-sdk/compilation_tests/schema_derive.rs @@ -168,12 +168,10 @@ pub fn borsh_schema_spec() { #[abi(borsh)] pub enum EnumNoSchemaSpec { NoAttrs, - #[borsh_skip] + #[borsh(skip)] BorshSkip, Nested { - #[borsh_skip] - // fixme! rust complains of an unread field here - // fixme! https://github.com/near/borsh-rs/issues/111 + #[borsh(skip)] nested: UnitEnumNoSchemaSpec, }, } @@ -185,7 +183,7 @@ pub fn borsh_schema_spec() { #[abi(borsh)] struct StructNoSchemaSpec { var1: EnumNoSchemaSpec, - #[borsh_skip] + #[borsh(skip)] var2: EnumNoSchemaSpec, } @@ -215,22 +213,20 @@ pub fn json_borsh_schema_spec() { #[serde(rename = "NoSchemaSpecENUM")] pub enum EnumNoSchemaSpec { NoAttrs, - #[borsh_skip] + #[borsh(skip)] BorshSkip, #[serde(rename = "serde_via_schemars")] Serde, - #[borsh_skip] + #[borsh(skip)] #[serde(skip)] BorshSerde, #[serde(skip)] - #[borsh_skip] + #[borsh(skip)] SerdeBorsh, #[serde(rename_all = "SCREAMING_SNAKE_CASE")] Nested { - #[borsh_skip] - // fixme! borsh doesn't play well with nested attributes - // fixme! https://github.com/near/borsh-rs/issues/110 - // #[serde(alias = "inner_inner_hehe")] + #[borsh(skip)] + #[serde(alias = "inner_inner_hehe")] nested: UnitEnumNoSchemaSpec, }, } @@ -243,7 +239,7 @@ pub fn json_borsh_schema_spec() { #[serde(rename = "NoSchemaSpecSTRUCT")] struct StructNoSchemaSpec { var1: EnumNoSchemaSpec, - #[borsh_skip] + #[borsh(skip)] var2: EnumNoSchemaSpec, } diff --git a/near-sdk/compilation_tests/schema_derive_invalids.stderr b/near-sdk/compilation_tests/schema_derive_invalids.stderr index 62635e119..8a842a534 100644 --- a/near-sdk/compilation_tests/schema_derive_invalids.stderr +++ b/near-sdk/compilation_tests/schema_derive_invalids.stderr @@ -68,23 +68,23 @@ error: `NearSchema` does not support derive for unions | |_^ error[E0277]: the trait bound `Inner: JsonSchema` is not satisfied - --> compilation_tests/schema_derive_invalids.rs:6:14 - | -6 | struct Outer(Inner); - | ^^^^^ the trait `JsonSchema` is not implemented for `Inner` - | - = help: the following other types implement trait `JsonSchema`: - &'a T - &'a mut T - () - (T0, T1) - (T0, T1, T2) - (T0, T1, T2, T3) - (T0, T1, T2, T3, T4) - (T0, T1, T2, T3, T4, T5) - and 165 others + --> compilation_tests/schema_derive_invalids.rs:6:14 + | +6 | struct Outer(Inner); + | ^^^^^ the trait `JsonSchema` is not implemented for `Inner` + | + = help: the following other types implement trait `JsonSchema`: + bool + char + isize + i8 + i16 + i32 + i64 + i128 + and $N others note: required by a bound in `SchemaGenerator::subschema_for` - --> $CARGO/schemars-0.8.12/src/gen.rs - | - | pub fn subschema_for(&mut self) -> Schema { - | ^^^^^^^^^^ required by this bound in `SchemaGenerator::subschema_for` + --> $CARGO/schemars-0.8.13/src/gen.rs + | + | pub fn subschema_for(&mut self) -> Schema { + | ^^^^^^^^^^ required by this bound in `SchemaGenerator::subschema_for` diff --git a/near-sdk/src/collections/lazy_option.rs b/near-sdk/src/collections/lazy_option.rs index 04e79fb03..f4ea0dcca 100644 --- a/near-sdk/src/collections/lazy_option.rs +++ b/near-sdk/src/collections/lazy_option.rs @@ -17,7 +17,7 @@ const ERR_VALUE_DESERIALIZATION: &str = "Cannot deserialize value with Borsh"; #[derive(BorshSerialize, BorshDeserialize)] pub struct LazyOption { storage_key: Vec, - #[borsh_skip] + #[borsh(skip)] el: PhantomData, } diff --git a/near-sdk/src/collections/lookup_map.rs b/near-sdk/src/collections/lookup_map.rs index 77d51d5ac..4405333fa 100644 --- a/near-sdk/src/collections/lookup_map.rs +++ b/near-sdk/src/collections/lookup_map.rs @@ -16,7 +16,7 @@ const ERR_VALUE_SERIALIZATION: &str = "Cannot serialize value with Borsh"; #[derive(BorshSerialize, BorshDeserialize)] pub struct LookupMap { key_prefix: Vec, - #[borsh_skip] + #[borsh(skip)] el: PhantomData<(K, V)>, } diff --git a/near-sdk/src/collections/lookup_set.rs b/near-sdk/src/collections/lookup_set.rs index 182ea699a..9ba98aa70 100644 --- a/near-sdk/src/collections/lookup_set.rs +++ b/near-sdk/src/collections/lookup_set.rs @@ -17,7 +17,7 @@ const ERR_ELEMENT_SERIALIZATION: &str = "Cannot serialize element with Borsh"; #[derive(BorshSerialize, BorshDeserialize)] pub struct LookupSet { element_prefix: Vec, - #[borsh_skip] + #[borsh(skip)] el: PhantomData, } diff --git a/near-sdk/src/collections/tree_map.rs b/near-sdk/src/collections/tree_map.rs index 13a79b976..e88f620f3 100644 --- a/near-sdk/src/collections/tree_map.rs +++ b/near-sdk/src/collections/tree_map.rs @@ -1377,8 +1377,8 @@ mod tests { #[test] fn test_insert_8_remove_4_regression() { - let insert = vec![882, 398, 161, 76]; - let remove = vec![242, 687, 860, 811]; + let insert = [882, 398, 161, 76]; + let remove = [242, 687, 860, 811]; let mut map: TreeMap = TreeMap::new(next_trie_id()); diff --git a/near-sdk/src/collections/unordered_map/mod.rs b/near-sdk/src/collections/unordered_map/mod.rs index d3ba8d581..aab31a4f7 100644 --- a/near-sdk/src/collections/unordered_map/mod.rs +++ b/near-sdk/src/collections/unordered_map/mod.rs @@ -510,9 +510,9 @@ mod tests { struct DeserializeCounter(u64); impl BorshDeserialize for DeserializeCounter { - fn deserialize(buf: &mut &[u8]) -> std::io::Result { + fn deserialize_reader(reader: &mut R) -> std::io::Result { DES_COUNT.fetch_add(1, Ordering::SeqCst); - u64::deserialize(buf).map(DeserializeCounter) + u64::deserialize_reader(reader).map(DeserializeCounter) } } diff --git a/near-sdk/src/collections/vector.rs b/near-sdk/src/collections/vector.rs index 865a0b187..21a14869f 100644 --- a/near-sdk/src/collections/vector.rs +++ b/near-sdk/src/collections/vector.rs @@ -24,7 +24,7 @@ fn expect_consistent_state(val: Option) -> T { pub struct Vector { len: u64, prefix: Vec, - #[borsh_skip] + #[borsh(skip)] el: PhantomData, } diff --git a/near-sdk/src/promise.rs b/near-sdk/src/promise.rs index f8afe560b..a43056816 100644 --- a/near-sdk/src/promise.rs +++ b/near-sdk/src/promise.rs @@ -1,6 +1,6 @@ use borsh::BorshSchema; use std::cell::RefCell; -use std::collections::HashMap; +use std::collections::BTreeMap; use std::io::{Error, Write}; use std::num::NonZeroU128; use std::rc::Rc; @@ -229,7 +229,7 @@ pub struct Promise { /// Until we implement strongly typed promises we serialize them as unit struct. impl BorshSchema for Promise { fn add_definitions_recursively( - definitions: &mut HashMap, + definitions: &mut BTreeMap, ) { <()>::add_definitions_recursively(definitions); } @@ -574,7 +574,7 @@ where T: BorshSchema, { fn add_definitions_recursively( - definitions: &mut HashMap, + definitions: &mut BTreeMap, ) { T::add_definitions_recursively(definitions); } diff --git a/near-sdk/src/store/free_list/mod.rs b/near-sdk/src/store/free_list/mod.rs index 7d551d3ab..d0c78491a 100644 --- a/near-sdk/src/store/free_list/mod.rs +++ b/near-sdk/src/store/free_list/mod.rs @@ -30,10 +30,7 @@ impl BorshSerialize for FreeList where T: BorshSerialize, { - fn serialize( - &self, - writer: &mut W, - ) -> Result<(), borsh::maybestd::io::Error> { + fn serialize(&self, writer: &mut W) -> Result<(), std::io::Error> { BorshSerialize::serialize(&self.first_free, writer)?; BorshSerialize::serialize(&self.occupied_count, writer)?; BorshSerialize::serialize(&self.elements, writer)?; @@ -45,11 +42,11 @@ impl BorshDeserialize for FreeList where T: BorshSerialize, { - fn deserialize(buf: &mut &[u8]) -> Result { + fn deserialize_reader(reader: &mut R) -> Result { Ok(Self { - first_free: BorshDeserialize::deserialize(buf)?, - occupied_count: BorshDeserialize::deserialize(buf)?, - elements: BorshDeserialize::deserialize(buf)?, + first_free: BorshDeserialize::deserialize_reader(reader)?, + occupied_count: BorshDeserialize::deserialize_reader(reader)?, + elements: BorshDeserialize::deserialize_reader(reader)?, }) } } diff --git a/near-sdk/src/store/index_map.rs b/near-sdk/src/store/index_map.rs index 1c2f5c6c0..7d1df75c8 100644 --- a/near-sdk/src/store/index_map.rs +++ b/near-sdk/src/store/index_map.rs @@ -21,7 +21,7 @@ where /// /// Note: u32 indices are used over usize to have consistent functionality across architectures. /// Some functionality would be different from tests to Wasm if exceeding 32-bit length. - #[borsh_skip] + #[borsh(skip, bound(deserialize = ""))] pub(crate) cache: StableMap>>, } diff --git a/near-sdk/src/store/lazy/mod.rs b/near-sdk/src/store/lazy/mod.rs index 9606d645b..7df7ee419 100644 --- a/near-sdk/src/store/lazy/mod.rs +++ b/near-sdk/src/store/lazy/mod.rs @@ -66,7 +66,7 @@ where { /// Key bytes to index the contract's storage. storage_key: Box<[u8]>, - #[borsh_skip] + #[borsh(skip, bound(deserialize = ""))] /// Cached value which is lazily loaded and deserialized from storage. cache: OnceCell>, } diff --git a/near-sdk/src/store/lazy_option/mod.rs b/near-sdk/src/store/lazy_option/mod.rs index d50b56c8a..6971a58db 100644 --- a/near-sdk/src/store/lazy_option/mod.rs +++ b/near-sdk/src/store/lazy_option/mod.rs @@ -40,7 +40,7 @@ where prefix: Box<[u8]>, /// Cached value which is lazily loaded and deserialized from storage. - #[borsh_skip] + #[borsh(skip, bound(deserialize = ""))] cache: OnceCell>, } diff --git a/near-sdk/src/store/lookup_map/mod.rs b/near-sdk/src/store/lookup_map/mod.rs index 36a101f73..927b2d65a 100644 --- a/near-sdk/src/store/lookup_map/mod.rs +++ b/near-sdk/src/store/lookup_map/mod.rs @@ -86,7 +86,7 @@ where /// Cache for loads and intermediate changes to the underlying vector. /// The cached entries are wrapped in a [`Box`] to avoid existing pointers from being /// invalidated. - #[borsh_skip] + #[borsh(skip, bound(deserialize = ""))] cache: StableMap>, } diff --git a/near-sdk/src/store/lookup_set/mod.rs b/near-sdk/src/store/lookup_set/mod.rs index 762956a8d..b2d1ac07e 100644 --- a/near-sdk/src/store/lookup_set/mod.rs +++ b/near-sdk/src/store/lookup_set/mod.rs @@ -52,7 +52,7 @@ where { prefix: Box<[u8]>, - #[borsh_skip] + #[borsh(skip)] hasher: PhantomData (T, H)>, } diff --git a/near-sdk/src/store/tree_map/iter.rs b/near-sdk/src/store/tree_map/iter.rs index 88489c903..e52c79e3f 100644 --- a/near-sdk/src/store/tree_map/iter.rs +++ b/near-sdk/src/store/tree_map/iter.rs @@ -981,7 +981,7 @@ where } } -#[derive(BorshDeserialize, BorshSerialize, Debug, Copy, Clone)] +#[derive(Debug, Copy, Clone)] enum Find { /// Find the first element based on bound. First { bound: Bound }, diff --git a/near-sdk/src/store/tree_map/mod.rs b/near-sdk/src/store/tree_map/mod.rs index 38c3d8b82..a902c53c9 100644 --- a/near-sdk/src/store/tree_map/mod.rs +++ b/near-sdk/src/store/tree_map/mod.rs @@ -71,10 +71,7 @@ where V: BorshSerialize, H: ToKey, { - fn serialize( - &self, - writer: &mut W, - ) -> Result<(), borsh::maybestd::io::Error> { + fn serialize(&self, writer: &mut W) -> Result<(), std::io::Error> { BorshSerialize::serialize(&self.values, writer)?; BorshSerialize::serialize(&self.tree, writer)?; Ok(()) @@ -87,10 +84,10 @@ where V: BorshSerialize, H: ToKey, { - fn deserialize(buf: &mut &[u8]) -> Result { + fn deserialize_reader(reader: &mut R) -> Result { Ok(Self { - values: BorshDeserialize::deserialize(buf)?, - tree: BorshDeserialize::deserialize(buf)?, + values: BorshDeserialize::deserialize_reader(reader)?, + tree: BorshDeserialize::deserialize_reader(reader)?, }) } } @@ -101,6 +98,7 @@ where K: BorshSerialize, { root: Option, + #[borsh(bound(deserialize = ""))] nodes: FreeList>, } @@ -1471,8 +1469,8 @@ mod tests { #[test] fn test_insert_8_remove_4_regression() { - let insert = vec![882, 398, 161, 76]; - let remove = vec![242, 687, 860, 811]; + let insert = [882, 398, 161, 76]; + let remove = [242, 687, 860, 811]; let mut map: TreeMap = TreeMap::new(next_trie_id()); diff --git a/near-sdk/src/store/unordered_map/mod.rs b/near-sdk/src/store/unordered_map/mod.rs index 426ff02ac..110eff1c8 100644 --- a/near-sdk/src/store/unordered_map/mod.rs +++ b/near-sdk/src/store/unordered_map/mod.rs @@ -99,10 +99,7 @@ where V: BorshSerialize, H: ToKey, { - fn serialize( - &self, - writer: &mut W, - ) -> Result<(), borsh::maybestd::io::Error> { + fn serialize(&self, writer: &mut W) -> Result<(), std::io::Error> { BorshSerialize::serialize(&self.keys, writer)?; BorshSerialize::serialize(&self.values, writer)?; Ok(()) @@ -115,10 +112,10 @@ where V: BorshSerialize, H: ToKey, { - fn deserialize(buf: &mut &[u8]) -> Result { + fn deserialize_reader(reader: &mut R) -> Result { Ok(Self { - keys: BorshDeserialize::deserialize(buf)?, - values: BorshDeserialize::deserialize(buf)?, + keys: BorshDeserialize::deserialize_reader(reader)?, + values: BorshDeserialize::deserialize_reader(reader)?, }) } } diff --git a/near-sdk/src/store/unordered_set/mod.rs b/near-sdk/src/store/unordered_set/mod.rs index 45045800c..571eac152 100644 --- a/near-sdk/src/store/unordered_set/mod.rs +++ b/near-sdk/src/store/unordered_set/mod.rs @@ -84,7 +84,9 @@ where T: BorshSerialize + Ord, H: ToKey, { + #[borsh(bound(serialize = "", deserialize = ""))] elements: FreeList, + #[borsh(bound(serialize = "", deserialize = ""))] index: LookupMap, } @@ -602,11 +604,11 @@ mod tests { assert_eq!( set1.difference(&set2).collect::>(), - ["a".to_string(), "d".to_string()].iter().collect() + ["a".to_string(), "d".to_string()].iter().collect::>() ); assert_eq!( set2.difference(&set1).collect::>(), - ["e".to_string()].iter().collect() + ["e".to_string()].iter().collect::>() ); assert!(set1.difference(&set2).nth(1).is_some()); assert!(set1.difference(&set2).nth(2).is_none()); @@ -642,11 +644,11 @@ mod tests { assert_eq!( set1.symmetric_difference(&set2).collect::>(), - ["a".to_string(), "d".to_string()].iter().collect() + ["a".to_string(), "d".to_string()].iter().collect::>() ); assert_eq!( set2.symmetric_difference(&set1).collect::>(), - ["a".to_string(), "d".to_string()].iter().collect() + ["a".to_string(), "d".to_string()].iter().collect::>() ); } @@ -679,11 +681,11 @@ mod tests { assert_eq!( set1.intersection(&set2).collect::>(), - ["b".to_string(), "c".to_string()].iter().collect() + ["b".to_string(), "c".to_string()].iter().collect::>() ); assert_eq!( set2.intersection(&set1).collect::>(), - ["b".to_string(), "c".to_string()].iter().collect() + ["b".to_string(), "c".to_string()].iter().collect::>() ); assert!(set1.intersection(&set2).nth(1).is_some()); assert!(set1.intersection(&set2).nth(2).is_none()); @@ -718,11 +720,15 @@ mod tests { assert_eq!( set1.union(&set2).collect::>(), - ["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()].iter().collect() + ["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()] + .iter() + .collect::>() ); assert_eq!( set2.union(&set1).collect::>(), - ["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()].iter().collect() + ["a".to_string(), "b".to_string(), "c".to_string(), "d".to_string()] + .iter() + .collect::>() ); } diff --git a/near-sdk/src/store/vec/mod.rs b/near-sdk/src/store/vec/mod.rs index 4362c19f7..725bdd3af 100644 --- a/near-sdk/src/store/vec/mod.rs +++ b/near-sdk/src/store/vec/mod.rs @@ -125,10 +125,7 @@ impl BorshSerialize for Vector where T: BorshSerialize, { - fn serialize( - &self, - writer: &mut W, - ) -> Result<(), borsh::maybestd::io::Error> { + fn serialize(&self, writer: &mut W) -> Result<(), std::io::Error> { BorshSerialize::serialize(&self.len, writer)?; BorshSerialize::serialize(&self.values, writer)?; Ok(()) @@ -139,10 +136,10 @@ impl BorshDeserialize for Vector where T: BorshSerialize, { - fn deserialize(buf: &mut &[u8]) -> Result { + fn deserialize_reader(reader: &mut R) -> Result { Ok(Self { - len: BorshDeserialize::deserialize(buf)?, - values: BorshDeserialize::deserialize(buf)?, + len: BorshDeserialize::deserialize_reader(reader)?, + values: BorshDeserialize::deserialize_reader(reader)?, }) } } diff --git a/near-sdk/src/types/account_id.rs b/near-sdk/src/types/account_id.rs index a338b5ca9..3da417a02 100644 --- a/near-sdk/src/types/account_id.rs +++ b/near-sdk/src/types/account_id.rs @@ -1,7 +1,7 @@ -use borsh::{maybestd::io, BorshDeserialize, BorshSchema, BorshSerialize}; +use borsh::{BorshDeserialize, BorshSchema, BorshSerialize}; use serde::{de, Deserialize, Serialize}; use std::convert::TryFrom; -use std::fmt; +use std::{fmt, io}; use crate::env::is_valid_account_id; @@ -86,8 +86,8 @@ impl<'de> Deserialize<'de> for AccountId { } impl BorshDeserialize for AccountId { - fn deserialize(buf: &mut &[u8]) -> io::Result { - ::deserialize(buf).and_then(|s| { + fn deserialize_reader(reader: &mut R) -> io::Result { + ::deserialize_reader(reader).and_then(|s| { Self::try_from(s).map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e)) }) } diff --git a/near-sdk/src/types/public_key.rs b/near-sdk/src/types/public_key.rs index 30ebd4367..c7ae51039 100644 --- a/near-sdk/src/types/public_key.rs +++ b/near-sdk/src/types/public_key.rs @@ -1,10 +1,11 @@ -use borsh::{maybestd::io, BorshDeserialize, BorshSerialize}; +use borsh::{BorshDeserialize, BorshSerialize}; use bs58::decode::Error as B58Error; -use std::convert::TryFrom; +use std::{convert::TryFrom, io}; /// PublicKey curve #[derive(Debug, Clone, Copy, PartialOrd, Ord, Eq, PartialEq, BorshDeserialize, BorshSerialize)] #[repr(u8)] +#[borsh(use_discriminant = true)] pub enum CurveType { ED25519 = 0, SECP256K1 = 1, @@ -142,8 +143,8 @@ impl serde::Serialize for PublicKey { } impl BorshDeserialize for PublicKey { - fn deserialize(buf: &mut &[u8]) -> io::Result { - as BorshDeserialize>::deserialize(buf).and_then(|s| { + fn deserialize_reader(reader: &mut R) -> io::Result { + as BorshDeserialize>::deserialize_reader(reader).and_then(|s| { Self::try_from(s).map_err(|e| io::Error::new(io::ErrorKind::InvalidData, e)) }) }